K- 近邻算法是一种简单但广泛应用于分类和回归问题的机器学习算法。它的基本思想是使用训练数据中的最近邻居来预测新样本的类别或数值。在 Python 中,可以使用 scikit-learn 库来实现 K- 近邻算法。

一、准备数据和划分数据集
首先,需要准备用于训练和测试的数据集。数据集应该包含已知类别的样本数据,并且每个样本的特征值可以用于预测。

1. 导入所需的库
首先,需要导入所需的库,包括 numpy 和 pandas。可以使用以下代码导入它们:


import numpy as np
import pandas as pd
Python

2. 加载和准备数据
接下来,需要加载数据并将其准备为适合 K- 近邻算法的格式。数据通常是一个表格,其中每一行代表一个样本,每一列代表一个特征。

可以使用 pandas 库的 read_csv 函数加载 CSV 文件作为数据框,并使用 head 函数查看数据的前几行。例如:


data = pd.read_csv('data.csv')
print(data.head())
Python

3. 划分数据集
接下来,需要将数据集划分为训练集和测试集。训练集用于训练模型,测试集用于评估模型的性能。

可以使用 scikit-learn 库的 train_test_split 函数将数据集划分为训练集和测试集。例如:


from sklearn.model_selection import train_test_split

X = data.drop('label', axis=1)
y = data['label']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
Python

二、训练和预测
在准备好数据集之后,可以开始使用 K- 近邻算法对数据进行训练和预测。

4. 导入并初始化 K- 近邻分类器
可以使用 scikit-learn 库的 KNeighborsClassifier 类来实现 K- 近邻算法。

例如,可以使用以下代码导入并初始化一个 K- 近邻分类器:


from sklearn.neighbors import KNeighborsClassifier

knn = KNeighborsClassifier(n_neighbors=3)
Python

这里传入了一个参数 n_neighbors,表示选择的最近邻居的数量。

5. 训练模型
使用 fit 函数将训练集的特征和标签传递给 K- 近邻分类器模型以进行训练。例如:


knn.fit(X_train, y_train)
Python

模型将自动学习训练集中的模式和关联。

6. 预测
使用 predict 函数将测试集的特征传递给已训练的 K- 近邻分类器模型以进行预测。例如:


y_pred = knn.predict(X_test)
Python

模型将根据其学习到的模式预测测试集中样本的类别。

三、评估模型性能
在进行预测之后,需要评估模型的性能以了解其预测的准确程度。

7. 导入并使用性能度量函数
可以使用 scikit-learn 库的 accuracy_score 函数来计算预测准确率。

例如,可以使用以下代码导入并使用该函数:


from sklearn.metrics import accuracy_score

accuracy = accuracy_score(y_test, y_pred)
print("准确率:", accuracy)
Python

该函数将接受测试集的真实标签和预测标签作为输入,并计算它们之间的准确率。

通过以上步骤,就可以使用 Python 来实现 K- 近邻算法并应用于分类问题。根据数据的不同特点和需求,可以调整参数和选择合适的度量函数以提高模型性能。