knn算法的原理:
存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一个数据与所属分类的对应关系。输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。一般来说,我们只选择样本数据几种前K个最相似的数据,这就是K-近邻算法中K的出处,通常K是不大于20的整数。最后,选择K个最相似数据中出现次数最多的分类,作为新数据的分类。
简单地说,Knn算法采用测量不同特征值之间的距离方法进行分类。
优点:精度高、对异常值不敏感、无数据输入假定
缺点:时间复杂度高、空间复杂度高
适用数据范围:数值型和标称型。
机器学习代码的套路:
1. 准备好训练数据,要求一定是二维的
2. 创建算法的实例对象
3. 进行训练
4. 准备好预测数据
5. 进行预测
6. 评估或者可视化
欧几里得距离(Euclidean Distance)
公式如下:
knn算法预测结果可视化的方式:
1. 交叉表
2. 图形可视化
优化knn算法的方式有:
1. 对数据进行优化
(1) 可以使用标准化对数据进行处理(比较常用的方式)
(2) 也可以使用正则化对数据进行处理