匠心精神 - 良心品质腾讯认可的专业机构-IT人的高薪实战学院

咨询电话:4000806560

Python机器学习:使用Scikit-Learn实现KNN算法

Python机器学习:使用Scikit-Learn实现KNN算法

机器学习是一种很火热的技术,在这个领域,KNN算法是一个非常基础但又非常重要的算法。本文将详细介绍Python中使用Scikit-Learn库实现KNN算法的步骤。

一、KNN算法简介

KNN(K-Nearest-Neighbor,k近邻)算法是一种基本的分类和回归方法。KNN算法的基本思想是:在特征空间中,对于一个测试样本,在训练集中找到k个距离最近的样本,然后根据这k个邻居的类别来决定测试样本的类别。

KNN算法可以分为两种情况:分类和回归。分类问题实际上就是把测试样本所属的类别确定下来;回归问题则是对测试样本的一个数值进行预测。

二、使用Scikit-Learn实现KNN算法

1.准备数据集

首先,我们需要准备一个数据集。这里我们使用Scikit-Learn自带的鸢尾花数据集,该数据集包含3种不同种类的鸢尾花,每种鸢尾花有4个特征,共150个样本,如下所示:

```python
from sklearn.datasets import load_iris

iris = load_iris()
X = iris.data
y = iris.target
```

2.划分训练集和测试集

接下来,我们需要将数据集划分成训练集和测试集。Scikit-Learn提供了一个非常方便的函数train_test_split(),可以帮助我们轻松地完成数据集的划分。

```python
from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
```

该函数将数据集划分成70%的训练集和30%的测试集。其中,参数test_size表示测试集占总样本数的比例;random_state表示随机种子,保证每次划分结果都是一样的。

3.训练模型

现在我们可以开始训练模型了。Scikit-Learn提供了一个类KNeighborsClassifier,可以帮助我们方便地实现KNN算法。

```python
from sklearn.neighbors import KNeighborsClassifier

knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)
```

在这里,我们将KNN算法的参数n_neighbors设置为3。

4.评估模型

最后,我们需要对模型进行评估。在这里,我们使用测试集来评估模型的预测准确率。

```python
from sklearn.metrics import accuracy_score

y_pred = knn.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)
```

输出结果为:

```
Accuracy: 1.0
```

这说明我们的模型在测试集上的预测准确率为100%。

三、总结

本文介绍了Python中使用Scikit-Learn实现KNN算法的步骤。首先,我们准备了一个数据集,然后将数据集划分成训练集和测试集。接下来,我们使用KNeighborsClassifier类训练了一个KNN模型,并使用测试集对模型进行了评估。最终,我们得到了一个预测准确率为100%的模型。

KNN算法虽然简单,但是具有广泛的应用场景。本文的代码示例可以帮助大家快速上手实现KNN算法,更多机器学习相关的知识可以自行学习Scikit-Learn官方文档。