机器学习7更多关于k近邻算法的思考

文章目录

  • 一、一些总结
    • 1、缺点1:
    • 2、优化:
    • 3、缺点2:
    • 4、缺点3:
    • 5、缺点4:
  • 二、机器学习流程回顾

一、一些总结

k近邻算法是一个解决分类问题的算法,天然可以解决多分类问题;
不仅如此,k近邻算法还可以解决回归问题;

1、缺点1:

k近邻算法最大的缺点1是它的效率低下,可以想象一下如果训练集有m个样本,n个特征,则预测每一个新的数据,需要o(m*m)这么多的时间复杂度;

2、优化:

可以使用一些树的结构,比如KD-Tree,Ball-Tree等来更快的求出k近邻,但是即使如此仍然是一个效率很低的算法;

3、缺点2:

除此之外k近邻算法还有其他的问题,
缺点2:最终得到的结果是高度数据相关的;

4、缺点3:

k近邻算法的另外一个问题是缺点3:预测结果不具有可解释性,只是找到了和我们要预测样本比较近的样本,我们就说我们要预测的样本属于这个类别,但是我们要预测的样本为什么属于这个类别,我们根本无从知晓,那么在很多研究上,我们只拿到这个预测结果是远远不够的,我们希望对预测结果有一定的解释性,而我们能通过这些解释来推广或者去制作新的工具或者是以此为基础发展新的理论或者规则来改进我们生产环境中其他的方面;这些都是k近邻算法做不了的;

5、缺点4:

k近邻算法更大的缺点4就是维数灾难,所谓的维数灾难就是随着维度的增加,“看似相近”的两个点之间的距离越来越大,而k近邻算法非常依赖两个点之间距离的计算,这使得一旦我们使用k近邻算法处理一些高维度问题的时候就很有可能造成维数的灾难;如下图;
机器学习7更多关于k近邻算法的思考_第1张图片

当然维数灾难也有相应的解决方法,就是降维;
最简单的降维方式叫做PCA;

二、机器学习流程回顾

机器学习流程回顾:
机器学习7更多关于k近邻算法的思考_第2张图片

你可能感兴趣的:(机器学习,近邻算法,人工智能)