1.KNN概念
K-近邻算法(K Nearest Neighbor,简称KNN),如果一个样本在特征空间中的k个最相似的样本中的大多数属于某一个类别,则该样本也属于这个类别。
注:空间中两个样本的距离通过欧式距离来度量的。
2.KNN处理分类问题
(1)处理分类问题流程
a.计算未知样本到每一个训练样本的距离;
b.将训练样本根据距离大小从小到大依次排列;
c.取出距离最近的K个训练样本;
d.进行多数表决,统计K个样本中哪个类别的样本个数最多;
e.将未知样本归属于出现次数最多的类别。
(2)KNN算法API实现
3.KNN处理回归问题
(1)处理回归问题流程
a.计算未知样本到每一个训练样本的距离;
b.将训练样本根据距离从小到大进行排列;
c.取出距离最近的K个训练样本;
d.把这K个样本的目标值计算其平均值;
e.将未知的样本预测为这个平均值。
(2)KNN算法API实现
4.K值的选择
(1)K值过小:过拟合
用较小领域中的训练实例进行预测,K值的减小就意味着整体模型变得复杂,容易发生过拟合; 容易受到异常点的影响。
(2)K值过大:欠拟合
用较大的领域中的训练实例进行预测,K值的增大就意味着整体模型变得简单,容易发生欠拟合;容易受到样本均衡的影响。
(3)对K超参数进行调优
采用交叉验证,网格搜索等方法
5、距离度量 distance measure – 常见距离公式
• 欧氏距离 Euclidean Distance
直观的距离度量方法,
两个点在空间中的距离一般都是指欧氏距离
• 闵可夫斯基距离 Minkowski Distance 闵氏距离
不是一种新的距离的度量方式。
是对多个距离度量公式的概括性的表述
两个n维变量a(x11 ,x12, ..., x1n) 与 b(x21, x22,..., x2n)间的闵可夫斯基距离定义为
其中p是一个变参数:
当 p=1 时,就是曼哈顿距离;
当 p=2 时,就是欧氏距离;
当 p→∞ 时,就是切比雪夫距离
根据 p 的不同,闵氏距离可表示某一类种的距离
6、特征预处理
数据归一化API
如果出现异常点,影响了最大值和最小值,那么结果显然会发生改变
◆ 应用场景:最大值与最小值非常容易受异常点影响,鲁棒性较差,只适合传统精确小数据场景
◆ sklearn.preprocessing.MinMaxScaler(feature_range=(0,1)... )
数据标准化API
◆ 如果出现异常点,由于具有一定数据量,少量的异常点对于平均值的影响并不大
◆ 应用场景:适合现代嘈杂大数据场景。
◆ sklearn.preprocessing.StandardScaler( )
7、利用KNN算法对鸢尾花分类
实现流程:1 获取数据集 2 数据基本处理 3 数据集预处理-数据标准化 4 机器学习(模型训练) 5 模型评估 6 模型预测
加载数据集
数据集划分
模型评估
谢谢观看,如若有出错,欢迎指正!
谢谢观看,如若有出错,欢迎指正!
谢谢观看,如若有出错,欢迎指正!