KNN算法
- 简称:K近邻算法
- 英文全称:K-Nearest Neighbors Algorithm
- 属于监督学习
- 中心思想:找到未分类的测试样本,附近K个最相近的已分类的样本,该样本的分类,由附近已分类的样本投票决定
如何计算测试样本与y已分类样本之间的距离
- 欧氏距离:相当于两点间距离
- 曼哈顿距离:相当于X+Y
如何选择K值
- K为经验值
- 通常K取奇数
- 一般情况下K∈(1,√n)
- 当n较少时,K可以尝试(1,10]
- 当n过大时,K∈(1,√n/2]
K值过大或过小的影响
- K值过小:例如K=1,预测结果对近邻的实例点非常敏感,容易受到噪声影响,发生过拟合
- K值过大:可以一定程度上避免上述情况,但是现有训练集的训练误差会增大,输入不相似的训练实例会导致预测错误
优点
适合分类问题,有较高的精确度,对异常值不敏感
缺点
1.计算未分类点与所有已分类的点距离,在进行排序,导致计算量大,不适合数据量很大的数据集
改进:使用K-D树数据结构,优化搜索操作,减少计算量
2.样本不平衡问题会影响分类结果
改进:采用权值的方法(距离的倒数)