当前位置: 首页 > >

机器学*算法(三):K*邻(k-nearest neighbors)初探

发布时间:

机器学*算法(三):K*邻(k-nearest neighbors)初探

机器学*训练营:
https://tianchi.aliyun.com/s/20d6735792ef867814c90698221d1499


1 KNN介绍

???kNN(k-nearest neighbors),中文翻译K*邻。我们常常听到一个故事:如果要了解一个人的经济水*,只需要知道他最好的5个朋友的经济能力, 对他的这五个人的经济水*求*均就是这个人的经济水*。这句话里面就包含着kNN的算法思想。


    KNN建立过程

1 给定测试样本,计算它与训练集中的每一个样本的距离。
2 找出距离*期的K个训练样本。作为测试样本的*邻。
3 依据这K个*邻归属的类别来确定样本的类别。


    类别的判定

①投票决定,少数服从多数。取类别最多的为测试样本类别。


②加权投票法,依据计算得出距离的远*,对*邻的投票进行加权,距离越*则权重越大,设定权重为距离*方的倒数。


2 KNN应用

KNN即能做分类又能做回归, 还能用来做数据预处理的缺失值填充。


3 KNN原理

???在KNN中,通过计算对象间距离来作为各个对象之间的非相似性指标,避免了对象之间的匹配问题,在这里距离一般使用欧氏距离或曼哈顿距离:


距离量度

样本空间内的两个点之间的距离量度表示两个样本点之间的相似程度:距离越短,表示相似程度越高;反之,相似程度越低。


常用的距离量度方式包括:


闵可夫斯基距离


欧氏距离


曼哈顿距离


切比雪夫距离


余弦距离


1)闵可夫斯基距离

闵可夫斯基距离本身不是一种距离,而是一类距离的定义。对于n维空间中的两个点x(x1,x2,…,xn)和y(y1,y2,…,yn),x和y之间的闵可夫斯基距离可以表示为:

其中,p是一个可变参数:


当p=1时,被称为曼哈顿距离;


当p=2时,被称为欧氏距离;


当p=infty时,被称为切比雪夫距离。


2)欧氏距离


欧氏距离(L2范数)是最易于理解的一种距离计算方法,源自欧氏空间中两点间的距离公式,也是最常用的距离量度。


3)曼哈顿距离

根据闵可夫斯基距离定义,曼哈顿距离的计算公式可以写为:


学*链接:
https://blog.csdn.net/hajk2017/article/details/82862788



友情链接: