用机器学习里的knn算法
时间: 2024-04-07 19:08:41 浏览: 120
机器学习之knn算法及代码
5星 · 资源好评率100%
KNN算法(K-Nearest Neighbor)是一种基于实例的学习,也称懒惰学习(lazy learning)或基于最近邻的学习(instance-based learning)。其原理是:对于一个新的输入实例,在训练集中寻找与该实例最近的k个训练实例,然后根据这k个实例的标签进行分类或回归预测。
KNN算法的步骤如下:
1. 计算测试样本与每个训练样本之间的距离(一般使用欧氏距离或曼哈顿距离等)。
2. 选取距离最近的k个训练样本(k一般取奇数,防止出现平票)。
3. 根据这k个训练样本的标签进行分类或回归预测。
在Python中,可以使用scikit-learn库中的KNeighborsClassifier类来实现KNN算法。代码示例如下:
```python
from sklearn.neighbors import KNeighborsClassifier
# 构建KNN分类器,k取5
knn = KNeighborsClassifier(n_neighbors=5)
# 训练模型
knn.fit(X_train, y_train)
# 预测测试集
y_pred = knn.predict(X_test)
# 计算准确率
accuracy = knn.score(X_test, y_test)
```
其中,X_train和y_train分别为训练集的特征和标签,X_test和y_test分别为测试集的特征和标签。knn.fit()用于训练模型,knn.predict()用于预测测试集,knn.score()用于计算模型的准确率。
阅读全文