前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >初步了解K近邻

初步了解K近邻

作者头像
用户10950404
发布2024-07-30 13:23:16
1120
发布2024-07-30 13:23:16
举报
文章被收录于专栏:人工智能

前言

上期我们介绍了拟合问题,我们发现机器学习无外乎两个问题,分类问题和回归问题,今天我们就简单的了解一下KNN算法及此算法涉及的一些概念,这个算法涉及的数学知识很少,可以说是机器学习算法中理论最简单,最好理解的算法。

1.K相邻算法原理

💡首先我们通过案例更好的理解KNN算法 

上图中每一个数据点代表一个肿瘤病历:

  • 横轴表示肿瘤大小,纵轴表示发现时间
  • 恶性肿瘤用蓝色表示,良性肿瘤用红色表示

疑问:新来了一个病人(下图绿色的点),如何判断新来的病人(即绿色点)是良性肿瘤还是恶性肿瘤? 

💡解决方法:k-近邻算法的做法如下:

(1)取一个值k=3(k值后面介绍,现在可以理解为算法的使用者根据经验取的最优值)

(2)在所有的点中找到距离绿色点最近的三个点

(3)让最近的点所属的类别进行投票

(4)最近的三个点都是蓝色的,所以该病人对应的应该也是蓝色,即恶性肿瘤。

总结一下 

✒️✒️K-近邻算法属于哪类算法?可以用来解决监督学习中的分类问题 ✒️✒️算法的思想:通过K个最近的已知分类的样本来判断未知样本的类别

KNN三要素:距离度量,K值选择,分类决策准则

 💥💥稍后我们还会在介绍完KNN算法之后详细的说距离的度量方法

2.归一化和标准化 

2.1为什么要做归一化和标准化 

样本中有多个特征,每一个特征都有自己的定义域和取值范围,他们对距离计算也是不同的,如取值较大的影响力会盖过取值较小的参数。因此,为了公平,样本参数必须做一些归一化处理,将不同的特征都缩放到相同的区间或者分布内。 

2.2归一化

 通过对原始数据进行变换,把数据映射到(默认为[0,1])之间。

❤️‍🔥❤️‍🔥scikit-learn 中实现归一化的 API: 

💢💢注意我们整个机器学习的环境需要很多库的帮助,具体我们可以去搜索页面搜索“Anaconda安装教程”去配置我们的编译环境

代码语言:javascript
复制
from sklearn.preprocessing import MinMaxScaler

def test():

    # 1. 准备数据
    data = [[90, 2, 10, 40],
            [60, 4, 15, 45],
            [75, 3, 13, 46]]

    # 2. 初始化归一化对象
    transformer = MinMaxScaler()

    # 3. 对原始特征进行变换
    data = transformer.fit_transform(data)

    # 4. 打印归一化后的结果
    print(data)

归一化受到最大值与最小值的影响,这种方法容易受到异常数据的影响, 鲁棒性较差,适合传统精确小数据场景 

2.3标准化

  • mean 为特征的平均值
  • σ 为特征的标准差

💥💥scikit-learn 中实现标准化的 API: 

代码语言:javascript
复制
from sklearn.preprocessing import StandardScaler

def test():

    # 1. 准备数据
    data = [[90, 2, 10, 40],
            [60, 4, 15, 45],
            [75, 3, 13, 46]]

    # 2. 初始化标准化对象
    transformer = StandardScaler()

    # 3. 对原始特征进行变换
    data = transformer.fit_transform(data)

    # 4. 打印归一化后的结果
    print(data)

 对于标准化来说,如果出现异常点,由于具有一定数据量,少量的异常点对于平均值的影响并不大

2.4小结 

  1. 归一化和标准化都能够将量纲不同的数据集缩放到相同范围内
  2. 归一化受到最大值与最小值的影响,这种方法容易受到异常数据的影响, 鲁棒性较差,适合传统精确小数据场景
  3. 对于标准化来说,如果出现异常点,由于具有一定数据量,少量的异常点对于平均值的影响并不大,鲁棒性更好

3.总结 

 🧡🧡友友们可能发现本期并没有太多的介绍有关KNN算法的API,而大多的去解释归一化和标准化,而贯穿整个机器学习的目的就是对于数据的处理和分析,归一化和标准化能更好的帮助我们,所以归一化和标准化是我们入门的基本功和必需品,当然机器学习还包含如何去更好的构建模型去自己预测一些数据等,所以友友们任重而道远呀,我们一起加油,下期我们就正式介绍KNN算法及相关实战案例。🧡🧡

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-07-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 1.K相邻算法原理
    • 2.归一化和标准化 
    • 2.1为什么要做归一化和标准化 
      • 2.2归一化
        • 2.3标准化
          • 2.4小结 
          • 3.总结 
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档