Python实现的knn算法示例

  • Post category:Python

Python实现的knn算法示例

K最近邻(K-Nearest Neighbor,KNN)算法是一种基本的分类和回归方法,它的基本思想是通过计算待分类本与训练集中各个样本之间的距离,选取距离最的K个样本,根据它们的类别进行投,将待分类样本归为票数最多的类别。在本攻略中,我们将介绍如何使用Python实现KNN算法。

步骤1:导入必要的库

在使用Python实现KNN算法之前,我们需要导入必要的库。在本攻略中,我们将使用numpy库来处理数组,使用pandas库来读取数据,使用sklearn库来实现KNN算法。

import numpy as np
import pandas as pd
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

在这个示例中,我们导入了numpy库、pandas库、sklearn库中的KNeighborsClassifier类、train_test_split函数和accuracy_score函数。

步骤2:读取数据

在实现KNN算法之前,我们需要读取数据。在本攻略中,我们将使用pandas库来读取数据。

data = pd.read_csv('iris.csv')

在这个示例中,我们使用read_csv()函数来读取名为iris.csv的数据文件,并将其存储在名为data的变量中。

步骤3:准备数据

在读取数据后,我们需要对数据进行预处理。在本攻略中,我们将使用numpy库来处理数据。

X = np.array(data.iloc[:, :-1])
y = np.array(data.iloc[:, -1])

在这个示例中,我们使用iloc[]函数来选择数据的特征和标签,并使用array()函数将它们转换为numpy数组。

步骤4:划分数据集

在准备数据后,我们需要将数据集划分为训练集和测试集。在本攻略中,我们将使用train_test_split()函数来划分数据集。

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

在这个示例中,我们使用train_test_split()函数将数据集划分为训练集和测试集,并将它们存储在X_train、X_test、y_train和y_test变量中。

步骤:训练模型

在划分数据集后,我们需要使用KNN算法来训练模型。在本攻略中,我们将使用sklearn库中的KNeighborsClassifier类来实现KNN算法。

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

在这个示例中,我们使用KNeighborsClassifier类来实现KNN算法,并使用fit()函数来训练模型。

步骤6:测试模型

在训练模型后,我们需要使用测试集来测试模型的确性。在本攻略中,我们将使用accuracy_score()函数来计算模型的准确性。

y_pred = knn.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print("模型的准确性为:", accuracy)

在这个示例中,我们使用predict()函数来预测测试集的标签,并使用accuracy_score()函数来算模型的准确性。

示例说明

在示例代码中,我们首先导入了必要的库,包括numpy库、pandas库和sklearn库中的KNeighborsClassifier类、train_test_split函数和accuracy_score函数。然后,我们使用read_csv()函数来读取名为iris.csv的数据文件,并其存储在名为data的变量中。接下来,我们使用iloc[]函数来选择数据的特征和标签,并使用array()函数将它们转换为numpy数组。然后,我们使用train_test_split()函数将数据集划分为训练集和测试集,并使用KNeighborsClassifier类来实现KNN算法,并使用fit()函数来训练模型。最后,我们使用predict()函数来预测测试集的标签,并使用accuracy_score()函数来计算模型的准确性。

示例2:使用不同的K值

除了使用默认的K值,我们还可以尝试使用不同的K值来训练模型。下面是一个使用K=5的示例代码。

knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(X_train, y_train)
y_pred = knn.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print("模型的准确性为:", accuracy)

在这个示例中,我们将K值设置为5,并使用KNeighborsClassifier类来实现KNN算法。然后,我们使用fit()函数来训练模型,并使用predict()函数来预测测试集的标签。最后,我们使用accuracy_score()函数来计算模型的准确性。

示例说明

在这个示例中,我们使用K=5来训练模型,并使用KNeighborsClassifier类来实现KNN算法。我们还使用了predict()函数来预测测试集的标签,并使用accuracy_score()函数来计算模型的准确性。