参考书籍:《机器学习实战》
第二章:k-近邻算法
k-近邻算法属于分类算法,采用测量不同特征值之间的距离方法进行分类。
其训练样本形式:(x1,x2,,...,xn,Y),其中x1到xn是样本的n个不同的特征,Y是样本的类别变量。
考虑n个不同的特征值是连续性变量,而Y是标称性变量(离散的有限的变量)
k-近邻算法(kNN):
1.需要分类的检验样本1(x1,x2,...,xn)与m个已知类别的训练样本(x1,x2,...,xn,Y)
2.分别计算检验样本与m个已知类别的训练样本的距离,距离的计算后叙
3.将距离按照单调递增的方式排序,因为距离越小,表示比较的两个样本有更大的相似性
4.选出前k个距离的样本(kNN中的k含义),并分别计算不同类别的样本个数
5.第四步中的最大样本个数的类别就是检验样本的类别
kNN算法中的第二步中的距离计算:
考虑的特征值是连续性变量,故采用欧氏距离来计算。
如样本1(x1,x2),样本2(t1,t2)【此处类别变量并不参与计算,只是特征值参与计算】,则距离计算为:
distance = sqrt((x1 - t1)^2 + (x2 - t2)^2)
kNN算法的缺点是显而易见的: