1.简介
根据距离最近的n个邻居来判断属于哪一类
2.api:
python包: Scikit-Learn
sklearn.neighbors.KNeighborsClassifier
3.距离度量
1.闵可夫斯基距离:
欧式距离
d = Qrt((x1-x2)2+(y1-y2)2, 2)
曼哈顿距离(Manhattan Distance)
d = |x1-x2|+|y1-y2|
切比雪夫(Chebyshev Distance)
d= max(|x1-x2|, |y1-y2|)
缺点:
1.把各个分量单位相同看待
2.没有考虑各个分量分布不同的情况
改进:
标准化(欧式标准化公式)
2.余弦距离公式(Cosine Distance)
3.汉明距离(Hanming Distance)
字符串变换的最小替换次数
4.杰卡德距离(Jaccard Distance)
J(A, B), 通过交并集进行统计
5.马氏距离(Mahalanobis Distance)
基于样本分布的距离
4.k值的选择
k值过小: 模型复杂, 容易过拟合, 受异常点影响大
k值过大: 模型简单, 容易欠拟合, 受样本均衡的影响
当K=n(n为训练集样本个数), 模型不足取, 过于简单, 仅能预测为属于样本数最多一类