K近邻算法的原理以及实现
K 近邻算法 (K-Nearest Neighbors,KNN) 是一种基于实例的监督学习算法,它通过找到数据点周围的邻居,来预测新数据点的类别。KNN 算法是一种简单而有效的算法,它的核心思想是“就近”采样,即根据数据点之间的距离来确定类别。
KNN 算法的原理可以分为以下几个步骤:
1. 特征提取:对于输入数据,首先需要将其转换为特征向量。特征向量是通过计算数据点之间的距离来确定的。
2. 计算距离:KNN 算法通过计算数据点之间的距离来确定类别。具体来说,它计算所有数据点之间的距离,然后选择 k 个最近邻的数据点,根据最近邻的类别来确定新数据点的类别。
3. 预测新数据:对于未知的新数据点,KNN 算法会将其分配给距离最近的 k 个数据点的类别之和最小的类别。
下面是一个使用 Python 实现的简单 KNN 示例:
```python
import numpy as np
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
# 加载数据集
iris = load_iris()
X = iris.data
y = iris.target
# 将数据集划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建 KNN 模型
knn = KNeighborsClassifier(n_neighbors=5)
# 训练模型
knn.fit(X_train, y_train)
# 预测新数据
y_pred = knn.predict(X_test)
# 输出预测结果
print("预测结果:", y_pred)
```
在这个示例中,我们使用了 KNN 算法对鸢尾花数据集进行分类。输出结果为预测的新数据集类别。