KNN算法

目录

1、KNN的理论内容 

1.1、算法流程:

1.2、输入输出:

1.3、数学原理:

1.4、与其他算法的联系:

1.5、优缺点:

1.6、应用场合:

2、KNN的代码实现


KNN(K-近邻)算法是一种简单但有效的机器学习算法,主要用于分类任务。其基本思想是:如果一个新样本在特征空间中的K个最近邻的绝大多数属于某类别,则该样本也属于这个类别。

1、KNN的理论内容 

1.1、算法流程:

   - 输入:训练数据集D,测试数据集T,邻居数量K。
   - 输出:测试数据集T中每个样本的类别标签。
   - 过程:对于T中的每个样本,找到D中与之最近的K个样本,根据这K个样本的类别标签进行投票,多数决定的类别即为测试样本的类别。

1.2、输入输出:

     - 输入:
     - 训练数据集D:包含N个样本,每个样本特征向量为x,类别标签为y。
     - 测试数据集T:包含M个样本,每个样本特征向量为t,需要预测其类别标签。
     - 参数K:整数,指定邻居的数量。
     - 输出:
     - 对测试集T中的每个样本,输出其预测的类别标签。

1.3、数学原理:

   - KNN算法基于闵可夫斯基距离(Minkowski distance),通常使用欧氏距离或曼哈顿距离。距离公式为:

EuclideanDistance(d)=\sqrt{(x_{2}-x_{1} )^{^{2}}+(y_{2}-y_{1} )^{^{2}}}

ManhattanDistance(d)=\left | x_{2}-x_{1} \right |+\left | y_{2}-y_{1} \right |


   - 类别预测依据距离度量,距离越近,相似度越高。

1.4、与其他算法的联系:

   - KNN与决策树、支持向量机(SVM)等算法相比,KNN简单直观,易于实现,但可能需要大量的训练数据来获得较好的泛化能力。
   - KNN与神经网络有一定的相似性,尤其是在神经网络的训练过程中,通过调整权重来寻找输入数据的近邻。

1.5、优缺点:

   - 优点:不需要训练,避免过拟合,对噪声数据有较好的鲁棒性。
   - 缺点:计算量大,对数据量敏感,对特征维度敏感,可能在小数据集上表现不佳。

1.6、应用场合:

   - 分类问题:图像识别、文本分类等。
   - 回归问题:最近邻回归(K-近邻回归)。

通过以上方面的深入理解,可以帮助我们更好地把握KNN算法的核心思想和应用范围。在实际应用中,根据具体问题调整K值和距离度量方法,可以使得KNN算法在不同领域发挥更好的效果。

2、KNN的代码实现

下面是使用Python实现KNN算法的一个简单例子。我们将使用`scikit-learn`库,因为它提供了高效的KNN实现,并处理了许多细节,例如距离计算和投票逻辑。

from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.datasets import load_iris
import numpy as np

# 加载数据集
iris = load_iris()
X, y = iris.data, iris.target

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建KNN分类器实例,设置K值为3
knn = KNeighborsClassifier(n_neighbors=3)

# 训练模型
knn.fit(X_train, y_train)

# 预测测试集
y_pred = knn.predict(X_test)

# 输出预测结果
print("预测结果:", y_pred)

# 评估模型
from sklearn.metrics import accuracy_score
print("准确率:", accuracy_score(y_test, y_pred))
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值