使用Peter的机器学习实战学习了knn算法
算法流程:
1.算出测试点与所有训练点直接的距离(两点直接的距离公式,如果是多个点参照两点直接的距离公式)
2.为所有距离进行升序排列
3.取排序完毕的前k个点对其标签进行统计,最多的那个则为对应的标签
使用书上0-9数据集(每个数字都有接近200个样本)进行训练和测试的时候发现,k为3时最佳,k变大时错误率会上升,越大错的越多
因为数据的某两个属性的差值可能很大,会对欧式公式的距离计算造成很大影响,所以应该先进行数据的归一化
作者使用了max-min方法进行数据归一化,使所有的数值都落在[0,1]之间其公式为
注意:这里的max和min为整个数据集