算法特性
K邻近,KNN(Kth Nearest Neighbor)
是机器学习常用的分类算法,类似的分类算法还有SVM(支持向量机 Support Vector Machine)。
基本原理是在n维空间中,距离较近的元素分为一类。
算法流程
- 数据标准化处理,各个维度的数据转为同一数量级(两种常用方法:线性归一化Min-Max scaling、0均值标准化Z-score standardization)
- 通过新值与样本的距离(欧氏距离/曼哈顿距离/余弦定理)取得最近的K个邻居
- 由K个邻居的类型投票决定,K的取值最好为3~10之间的奇数
- 通过实验观察,调整K的值到最优(训练)
基本训练过程
- 选定训练集和测试集,一般训练集占70%、测试集占30%
- 对算法进行训练,寻找最合适的K取值
- 通过调整训练集和测试集,优化参数取值(由于KNN是最简单的,一般优化范围有限)
算法的应用示例
1 |
|