KNN,即k-近邻算法。
概念
k近邻是一种监督学习算法,其工作机制简单:给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这k个“邻居”的信息来进行预测。
通常,分类任务中可使用“投票法”,即选择这k个样本中出现最多的类别标记作为预测结果,在回归任务中可使用“平均法”,即将这k个样本的实值输出标记的平均值作为预测结果,还可基于距离远近进行加权平均或加权投票,距离越近样本权重越大。
k近邻分类:一个样本在特征空间中,总会有k个最相似的样本。其中大多数的样本属于某个类别,则该样本也属于某个类别。
一般应用于客户流失预测、欺诈侦测,更适用于稀有事件的分类问题。
计算步骤
1.算距离:给定测试对象,计算它与训练集中每个对象的距离
2.找邻居:圈定距离最近的k个对象,作为测试对象的邻居
3.做分类:根据这k个对象的主要类别,来给测试对象分类
k-近邻是一种懒惰学习算法,考试才临阵磨枪,似乎没有显式的训练过程。
模型简单,计算开销大。
假设能够恰当的做出k个近邻,我们来对“最近邻分类器”(1NN,即k=1)在二分类问题上的性能做一个简单的讨论。
给定测试样本,若其最近邻样本为,则最近邻分类器出错的概率就是与类别标记不同的概率,即:
最近邻分类器虽简单,但它的泛化错误率不超过贝叶斯最优分类器的错误率的两倍。