当前位置: 首页 >> 基本常识
knn算法详解(附练习代码)
  
  来源: www.ndemok.com 点击:1071

KNN算法

KNN算法是一种用于分类和预测数据样本的算法

KNN算法根据样本之间的距离对新样本进行分类

计算过程:计算新样本点与历史样本点中每个样本点之间的距离,取前K个最近样本点的分类结果,取分类结果频率最高的二分项作为新样本的分类。

网络搜索:手动指定不同参数的搜索范围,通过网络搜索来搜索最优的超参数或模型参数

K表示取最接近新样本的K个样本进行分类决策。

通常我们只提供90%的现有数据作为训练样本来训练分类器,并使用剩余的10%的数据来测试分类器(测试数据与总数据的不同比例也会影响算法的测试结果),并且数据划分是随机的

机械学习中的两种参数

超级参数:

在训练之前要设置的参数

?k值

?距离重量?p值

?对于寻找最优超参数的过程,我们称之为通过样本训练点的参数数据进行网络搜索

归一化:所有数据维度都映射到相同的尺度。

归一化:所有数据维度都映射到相同的尺度。

?1.最大标准化:将所有数据映射到0~1(数据边界是确定的,例如,学生分数,最低0,最高1)

?2.均值方差归一化:将数据返回均值为0、方差为1的分布(数据分布没有明确的边界,可能有极端的数据值)

?优点:

简单,易于理解,易于实现,无需参数估计和训练;

对异常值不敏感(单个噪声数据对结果影响很小);

适用于稀有事件的分类;

适用于多分类问题(多模态,对象有多个类别标签),KNN表现优于SVM;

?缺点:

?对测试样本进行分类需要大量的计算和内存开销,因为每一个要分类的文本都必须计算它到所有已知样本的距离,以得到它的k个最近邻居。目前,常用的解决方法是预先裁剪已知的样本点,去除对分类影响不大的样本。

?可解释性差,无法告诉你哪个变量更重要,无法给出像决策树这样的规则;

?k值的选择:最大的缺点是当样本不平衡时,例如,一个类别的样本量很大,而其他类别的样本量很小,当输入新的样本时,这可能导致样本的k个邻居中的大容量样本占大多数。该算法只计算“最近”的相邻样本,并且某个类中的样本数量非常大,因此这些样本要么与目标样本不接近,要么与目标样本接近。无论如何,数量不会影响操作结果。可以通过使用权重方法来改进(距离样本距离小的邻居具有较大的权重值)。

?KNN是一种消极的学习方法和懒惰的算法。

-

友情链接:
赤洲新闻网 版权所有© www.ndemok.com 技术支持:赤洲新闻网 | 网站地图