KNN算法

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 模型预测

        加载数据集

        数据集划分

        模型评估

谢谢观看,如若有出错,欢迎指正!

谢谢观看,如若有出错,欢迎指正!

谢谢观看,如若有出错,欢迎指正!

  • 27
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值