K-近邻算法及应用 代码
时间: 2024-09-29 11:07:35 浏览: 35
K-近邻算法(K-Nearest Neighbors, KNN)是一种基于实例的学习方法,用于分类和回归分析。它的基本思想是:对于新样本点,将其归为与其最近的K个训练样例所属类别中最常见的那个。K值的选择对结果有很大影响。
**应用**:
1. 图像识别:如人脸识别、手写数字识别等,通过比较测试图像像素与已知样本的距离来进行分类。
2. 推荐系统:商品推荐,用户可能会购买与其历史购买行为最相似的其他用户的推荐物品。
3. 医疗领域:疾病诊断,通过比较病人的症状与已有的病例数据,预测患者可能患的疾病。
**简单Python代码示例**(假设我们有鸢尾花数据集):
```python
from sklearn.datasets import load_iris
from sklearn.neighbors import KNeighborsClassifier
# 加载数据
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2)
# 创建KNN模型
knn = KNeighborsClassifier(n_neighbors=3) # k=3作为示例
# 训练模型
knn.fit(X_train, y_train)
# 预测
predictions = knn.predict(X_test)
# 评估
accuracy = accuracy_score(y_test, predictions)
```
在这个例子中,`train_test_split()`用于划分训练集和测试集,`KNeighborsClassifier`则是KNN算法的核心组件。`fit()`用于学习邻居间的距离,`predict()`则根据测试样本找到最近的K个邻居并返回多数类别。
阅读全文