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官方文档。