K-最近邻 (K-Nearest Neighbors, KNN) 是一种用于分类和回归的简单机器学习算法。下面是一个使用 Python 和 scikit-learn 库实现的 KNN 算法示例,用于鸢尾花数据集的分类:
# 导入所需的库
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
# 加载鸢尾花数据集
iris = datasets.load_iris()
X = iris.data
y = iris.target
# 将数据集划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 创建KNN分类器,设置K值为3
knn = KNeighborsClassifier(n_neighbors=3)
# 用训练数据拟合模型
knn.fit(X_train, y_train)
# 使用模型进行预测
y_pred = knn.predict(X_test)
# 计算模型的准确度
accuracy = accuracy_score(y_test, y_pred)
print(f'准确度: {accuracy}')
# 如果需要,你可以使用模型对新数据进行预测
new_data = [[5.1, 3.5, 1.4, 0.2]] # 这里用一个样本作为例子
predicted_class = knn.predict(new_data)
print(f'新数据的预测类别: {predicted_class}')
上述代码首先加载鸢尾花数据集,然后将数据集分成训练集和测试集。接下来,创建一个KNN分类器,设置K值为3,使用训练数据拟合模型,然后进行预测并计算准确度。最后,演示如何使用模型对新数据进行分类。
记得安装 scikit-learn 库,你可以使用以下命令:
pip install scikit-learn