机器学习-KNN近邻算法
参看文章: 《机器学习-周志华》 《机器学习实战-Peter Harrington》 《统计学习方法-李航》 算法介绍: k近邻学习是一种常用的 监督学习 方法,其工作机制如下,给定测试样本,基于某种距离度量( 曼哈顿距离、欧氏距离、切比雪夫距离、Lp距离、Minkowski距离 )找出训练集中与其最靠近的k个训练样本,然后基于这k个“邻居”的信息来进行预测。 argmax(f(x))是使得 f(x)取得最大值所对应的变量点x 投票法: 在 分类 任务中使用,选择k个样本出现最多的类别标记作为预测结果 平均法: 在 回归 任务中使用,即将k个样本的实值输出标记的平均值作为预测结果 距离权重法: 称为k近邻算法的优化算法,为每个点的距离增加一个权重,使得距离近的点可以得到更大的权重,既可用于 加权平均又可用于加权投票。 优点: 1.理论成熟,思想简单,既可以用来做分类又可以做回归 2.训练时间复杂度为O(n);无数据输入假定; 3.可用于数值型数据和离散型数据; 4.对异常值不敏感 缺点: 1.计算复杂度高,因无显示的训练过程 2.对k值、距离敏感,不同k值与距离计算方法可能结果不同 3.无法给出任何数据的基础结构信息 最近邻分类器(k = 1) 错误率(暂未看懂) 实现方法: 1. kd树 2. 传统法 代码: 来源: https://www.cnblogs.com/Jacon