K 近邻算法(k-nearest neighbors, KNN)是一种很基本的机器学习方法
算法步骤:给定样本,寻找最近的 K 个样本进行(分类/回归)预测
KNN的 3 个核心要素:
- K 值的选择,较小时容易过拟合;较大时泛化性好,但训练误差大
- 距离度量方式,比如欧氏距离、曼哈顿距离(常见距离测度)
- 决策规则,分类问题常用投票法,回归问题常用平均法
KNN 的主要优点:
- 理论成熟,思想简单,既可以用来做(非线性)分类也可以用来做回归
- 训练时间复杂度比支持向量机之类的算法低,仅为 O (n)
- 和朴素贝叶斯之类的算法比,对数据没有假设,准确度高,对异常点不敏感
- 对于类域的交叉或重叠较多