机器学习sklearn之KNN算法思想及KD树实现原理

物以类聚、人以群分

KNN算法主要是通过K个最近样本的类型判断当前样本的类别,可用于分类和回归。他们的决策方式有所区别:做分类时,一般采用多数表决法,K个最近邻中,哪个类别占的比例多,预测样本就为哪个类别;做回归时,一般采用平均法,对K个最近邻样本输出取个平均值。由于算法简单且分类精度较高,在实际当中也有一定的应用,也是入门机器学习的一个比较典型的算法。
机器学习sklearn之KNN算法思想及KD树实现原理_第1张图片机器学习sklearn之KNN算法思想及KD树实现原理_第2张图片

很多人会把它跟K-Means算法混淆,因为都是K字头的。这里做一下简单的说明:

  • 首先,K-Means是一种无监督的聚类算法,KNN则是有监督的分类、回归算法。
  • K-Means中的K代表了将数据划分成K个簇,它的核心思想是:根据样本之间的距离大小,将样本划分成K个簇,要求簇内的样本尽量紧密,簇间的距离尽量大。它的实现过程是:随机选择K个质心(K-Means++做了改进),然后计算样本到质心的距离,将样本划分到距离最近的质心的类别,然后更新质心重新划分,直到质心的位置不在发生变化或达到迭代的次数停止。(它是有迭代训练的过程的
  • KNN中的K是K个最近邻样本点,由这K个最近邻配合决策方式得要合适的分类或回归值。它的实现过程见上图,包括暴力求解、KD树等。(它没有训练的过程

你可能感兴趣的:(机器学习)