Python3入门机器学习之2.9更多有关k近邻算法的思考

Python3入门机器学习

2.9 更多有关k近邻算法的思考

通过之前的学习,我们知道了k近邻算法是可以解决分类问题的,并且天然可以解决多分类问题。不仅如此,k近邻算法思想简单、效果强大。

不仅如此,我们还可以使用k近邻算法解决回归问题。事实上scikit-learn为我们封装了KNeighborsRegressor这个类,就是为我们解决回归问题。

k近邻算法也是有缺点的:
缺点1:效率低下。
比如训练集有m个样本,n个特征,则预测每一个新的数据,需要O(m*n)的时间复杂度。但是也有优化的措施,比如使用树结构:KD-Tree,Ball-Tree。即使如此,k近邻算法的效率也非常的低。
缺点2:高度数据相关。
缺点3:预测结果不具有可解释性。
缺点4:维数灾难。
随着维度的增加,“看似相近”的两个点之间的距离越来越大。
Python3入门机器学习之2.9更多有关k近邻算法的思考
解决方法:降维。

Python3入门机器学习之2.9更多有关k近邻算法的思考