一.k近邻基本介绍
(1)算法原理
knn算法是一个有监督机器学习算法,可以解决分类问题,也可以解决回归问题.核心思想是未标记样本的类别,由距离其最近的k个邻居投票来决定.
假设我们有一个已经标记的数据集,即已经知道了数据集中每个样本所属的类别,此时,有一个未标记的数据样本,我们的任务是预测这个数据样本所属的类别,其基本原理是,计算待标记的数据样本和数据集中每个样本的距离,取距离最近的k个样本.待标记的数据样本所属的类别,就有这k个距离最近的样本投票产生.
假设X_test为待标记的数据样本,X_train为已标记的数据集,伪代码如下:
- 遍历X_train中的所有样本,计算每个样本与X_test的距离,并把距离保存在Distance数组中
- 对Distance数组进行排序,取距离最近的k个点,记为X_knn
- 在X_knn中统计每个类别的个数,即class0在X_knn中有几个样本,class1在X_knn中有几个样本等
- 待标记样本的类别,就是X_knn中样本个数最多的那个类别.
(2)算法优缺点
优点:准确性高,对异常和噪声有较高的容忍度
缺点:计算量较大,对内存需求也较大,从算法原理可以看出,每次对一个未标记样本进行分类时,都需要全部计算一遍距离.
(3)算法参数
其算法参数为k,参数选择需要根据数据来决定,k值越大,模型的偏差越大,对噪声数据越不敏感,当k值很大时,可能造成模型欠拟合,k值越小,模型方差越大,当k值过小,就会造成模型过拟合
(4)算法的变种
k-邻近算法变种有如下几种;
1.增加邻居的权重,默认情况下,在计算距离时,都是使用相同权重,事实上,我们可以针对不同的邻居指定不同的距离权重,如距离越近,权重越高,这个可以通过指定算法的weights参

本文详细介绍了K-近邻算法(KNN),包括算法原理、优缺点、参数选择及其变种。KNN是一个有监督学习算法,适用于分类和回归问题。其主要优点是准确性高,对异常值容忍度高,但计算量大,易受内存限制。关键参数k的选择对模型性能有很大影响。此外,文中还提到了KNN的两种变种:加权距离和固定半径内的邻居选择,并给出了KNN算法的实际分类示例。
最低0.47元/天 解锁文章
473

被折叠的 条评论
为什么被折叠?



