IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> <机器学习><详解> KNN最邻近分类算法 -> 正文阅读

[人工智能]<机器学习><详解> KNN最邻近分类算法

K-Nearest neighbor algorithm

回顾:

Distance measures 的两种方法:

Euclidean distance(本节使用): D ( A , B ) = ( a 0 ? b 0 ) 2 + ( a 1 ? b 1 ) 2 + . . . + ( a n + b n ) 2 D(A,B) = \sqrt{(a_0 - b_0)^2 + (a_1 - b_1)^2+ ... +(a_n + b_n)^2} D(A,B)=(a0??b0?)2+(a1??b1?)2+...+(an?+bn?)2 ?
Manhattan distance: D ( A , B ) = ∣ a 1 + b 1 ∣ + ∣ a 2 + b 2 ∣ + . . . + ∣ a n + b n ∣ D(A,B) = |a_1 + b_1| + |a_2 + b_2| + ... + |a_n + b_n| D(A,B)=a1?+b1?+a2?+b2?+...+an?+bn?

Classification Task

属于Supervised Learning的一种。在Supervised Learning中,我们得到了一个Data set,并且已经知道了正确Output应该是什么样子,并且知道Input和Output之间存在关系。

  • 监督学习问题分为*“regression”“classification”*问题
    • Regression Task:我们试图在连续输出中预测结果,这意味着我们试图将输入变量映射到某个连续函数
    • Classification Task:我们试图在离散输出中预测结果。换句话说,我们试图将输入变量映射到离散函数中。

K-Nearest neighbor algorithm

使用 Nearest neighbor algorithm 需要的已知条件:

  1. Test Dataset: 记录所有 Attributes 但没有记录 Class 的 Dataset
  2. Training Dataset: 已知记录的 Attributes 以及 Class
  3. 计算距离的方法(一般使用 Euclidean distance)
    在这里插入图片描述

使用 Nearest neighbor algorithm的操作步骤:

  1. 计算Test Dataset中的一条数据与所有Training Set之间的distance

    • 计算Distance中需要进行Normalization

      x ′ = x ? m i n ( x ) m a x ( x ) ? m i n ( x ) x' = {x - min(x) \over max(x) - min(x)} x=max(x)?min(x)x?min(x)?
      eg:

    • Calculating distance for nominal attributes(计算非数字的attributes之间的距离)

      • 需要根据任务和数据类型的类型有多种选择; 需要领域专业知识

        eg:

        • difference = 0 if attribute values are the same
        • difference = 1 if they are not
    • Weighted nearest neighbor

      • 目的:预测时,让近邻比远亲占比重更大,从而优 化预测结果

      • 步骤:按照距离来衡量每个样本在最后vote的时候 所占权重
        w e i g h t = 1 d 2 weight = {1\over d^2} weight=d21?

      • 实现:在选出K个最近邻后,将他们按如上公式分 别计算权重,并加到对应的类别上,最后比对类别 所占总的权重大小,而不是看票数

      • 问题:对noise更敏感

  2. 定义K的值

    1. 如果最近邻类别1:1怎么办?
      K取奇数
    2. K值取得太小会怎么样?
      影响模型的鲁棒性( Robust ),对噪音点敏感
    3. K值取得太大会怎么样?
      最近邻可能包含其他类的成员
  3. 使用K条Nearest neighbor来定义Test set中数据的类别

    • 距离最接近k条数据的class定义为此条数据的class

Decision boundary of 1-nearest neighbor

  1. 每个数据点都拥有一块Voronoi region,在这之 中的数据点都是离它最近的,故可以当做1- nearest neighbor的决策边界

  2. 每根线都是某两个数据点的垂直平分线的一截

K-nearest neighbor - 讨论

  1. 通常十分准确

  2. 对K的值非常敏感

  3. 需要Nomolization:KNN算法依靠距离来实现分类,所以某些特征的值过大会极大地影响算法 准确率,可能不得不进行归一化以防止距离度量被某些特征所控制

  4. Lasy learner:

    • 没有建立模型
    • 预测的时间成本很高,尤其是数据量很大的时候,所以需要使用高效的数据结构eg. KD tree
  5. 对于高维数组不友好

    • 时间成本太高
    • 需要降纬处理
  6. 可以生成由 Voronoi 边的子集定义的任意形状的决策边界

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-09-13 09:16:52  更:2021-09-13 09:17:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/22 8:35:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码