K近邻算法理论
K近邻算法是一个有监督学习,需要提供有标签的样本进行训练,才能去预测新的样本。
K近邻算法,应该是最简单的一个机器学习算法,即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例,这K个实例的多数属于某个类,就把该输入实例分类到这个类中。(这就类似于现实生活中少数服从多数的思想)
在训练集中找寻距离测试样本最近的K个样本。通过统计这K个样本的类别,来判断测试样本的类别
如图所示,先已有三簇带有标签的数据,现在来了几个新的数据,这些数据的标签未知,k近邻算法的思想就是,选择离我当前样本最近的k个样本,选取k个样本中数量最多的样本标签作为我当前样本的标签。
图中的k=3,即当一个新的样本输入进来后,选择与当前样本最近的三个样本,选择这三个样本中数量最多的样本标签作为该样本的标签。
这里的距离度量使用最简单的欧式距离,即设point1(x1,y1), point2(x2,y2):
point1 和 point2 之间的距离 R = ( x 1 − x 2 ) 2 + ( y 1 − y 2 ) 2 R = \sqrt{(x_1-x_2)^2 + (y_1-y_2)^2} R=(x1−x2)2+(y