Re:从零开始的机器学习 – 深入浅出KNN
本文主要介绍一个被广泛使用的机器学习 分类算法 ,K-nearest neighbors(KNN),中文叫K近邻算法。
KNN
k近邻算法是一种基本分类和回归方法。
KNN实际上也可以用于回归问题,不过在工业界使用得比较广泛的还是分类问题
KNN的核心思想也非常简单, 如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别 ,比如下图,当K=3时,节点会被预测属于红色椭圆类。有点“近朱者赤,近墨者黑”的感觉。
算法的原理非常简单,但这其中隐藏了一些值得被探讨的点:
k该如何取值?
距离最近中的“距离”是什幺,怎幺计算会更好?
如果对于一个数据要计算它与模型中所有点的距离,那当数据量很大的时候性能会很差,怎幺改善?
在一些情况下明明数据离某一个点特别近,但有另外两个同类的点离得很远但被K包含在内了,这种情况把数据划为这两个点的同类是不是不太合理?
如果训练数据不均衡(Imbalance data)怎幺办?
特征的纬度量纲跨越很