更多关于k近邻算法
最大缺点:效率低下
如果训练集有m个样本,n个特征,则预测每一个新的数据需要O(m*n)
优化方式:使用树结构:KD-Tree,Ball-Tree
缺点2:预测结果高度数据相关
尽管理论上所有机器学习算法都是数据相关的。但是k近邻算法预测样本中一旦有两个错误的值,足以让最终的预测结果产生错误,哪怕在更高的范围里,在这个空间中有更多正确的样本
缺点3:预测结果不具有可解释性
只是找到了和要预测的样本距离比较近的样本,就说这个样本属于这个类别,但是该样本为什么属于该类别根本无从知晓
缺点4:维数灾难
随着维度的增加,“看似相近”的两个点之间的距离越来越大,k近邻算法非常依赖两个点之间的距离
1维 | 0到1的距离:1 |
---|---|
2维 | (0,0)到(1,1)的距离:1.414 |
3维 | (0,0,0)到(1,1,1)的距离:1.73 |
64维 | (0,0,…0)到(1,1,…1)的距离:8 |
10000维 | (0,0,…0)到(1,1,…1)的距离:100 |
解决方法:降维
机器学习流程回顾