https://www.imooc.com/article/35900

参考上面大神的原文,说的非常透彻。非常便于理解。感谢 感谢

自己做个小笔记,便于自己学习

特征值是离散的,无序的。

如:

  • 性别特征:["男","女"]

  • 祖国特征:["中国","美国,"法国"]

  • 运动特征:["足球","篮球","羽毛球","乒乓球"]

假如某个样本(某个人),他的特征是这样的["男","中国","乒乓球"],我们完全可以用 [0,0,4] 来表示。但是这样的特征处理并不能直接放入机器学习算法中。因为类别之间是无序的(运动数据就是任意排序的)。不理解没关系。

怎么转化成独热码呢?

用独热码来表示就是

男  =>  10

女  =>  01

祖国特征:["中国","美国,"法国"](这里N=3):

中国  =>  100

美国  =>  010

法国  =>  001

运动特征:["足球","篮球","羽毛球","乒乓球"](这里N=4):

足球  =>  1000

篮球  =>  0100

羽毛球  =>  0010

乒乓球  =>  0001

所以,当一个样本为["男","中国","乒乓球"]的时候,完整的特征数字化的结果为:

[1,0,1,0,0,0,0,0,1]

下图可能会更好理解:

这样做的优势 是什么呢?

对于祖国特征:["中国","美国,"法国"]

重点 重点 重点!

如果按照  中国 0 ,美国 1,法国2  普通编码的话

那么  中国和法国之间的距离是2,中国和美国的距离是1,美国和法国的距离是1,但是实际上,这种距离是因为我们编码的顺序导致的。中国和法国并不是真的 距离是2

而在机器学习中需要计算两者之间的距离(欧氏距离)。这种普通的编码方式并不能表示清楚距离。

而如果用独热码来编码

中国 1 0 0

美国 0 1 0

法国 0 0 1

相当于我搭建了一个三维的空间

那么 任意两国的距离都是 sqrt(2),距离都是相等的!      这才是关键 关键!

相当于 中国在 x+点处,美国 在y+点处,法国在 z+点处。那么三者之间的距离是不是相等呢?

关于机器学习

在one hot representation编码的每个单词都是一个维度,彼此独立。

这里我们可以看到One hot方式处理的数据

1、会产生大量冗余的稀疏矩阵

2、维度(单词)间的关系,没有得到体现

要是one hot encoding的类别数目不太多,建议优先考虑

最后再次感谢 NateHuang

转载于:https://www.cnblogs.com/duoba/p/11359654.html

独热编码(One-Hot)的理解相关推荐

  1. 【sklearn】数据预处理之独热编码(含两种实现方式+代码理解)

    最近学习机器学习,接触到独热编码相关内容,参考了一些资料,加上自己的思考,做出了如下总结: 一.什么是独热编码 独热编码,即One-Hot编码,又称一位有效编码,其方法是使用N位状态寄存器来对N个状态 ...

  2. 数据预处理之独热编码(One-Hot)

    1.前言 在机器学习算法中,我们经常会遇到分类特征,例如:人的性别有男女,祖国有中国,美国,法国等. 这些特征值并不是连续的,而是离散的,无序的.通常我们需要对其进行特征数字化. 那什么是特征数字化呢 ...

  3. 数据预处理之独热编码(One-Hot Encoding)

    问题的由来 在很多机器学习任务中,特征并不总是连续值,而有可能是分类值. 例如,考虑以下三个特征: ["male","female"] ["from ...

  4. 数据预处理之独热编码(OneHotEncoder)

    前言 ---------------------------------------- 在机器学习算法中,我们经常会遇到分类特征,例如:人的性别有男女,祖国有中国,美国,法国等. 这些特征值并不是连续 ...

  5. 机器学习:数据预处理之独热编码(One-Hot)

    前言 ---------------------------------------- 在机器学习算法中,我们经常会遇到分类特征,例如:人的性别有男女,祖国有中国,美国,法国等. 这些特征值并不是连续 ...

  6. 除了独热编码,你需要了解将分类特征转换为数字特征的17种方法--较详细说明各方法的优点

    除了独热编码,你需要了解将分类特征转换为数字特征的17种方法 - 51CTO.COM 除了独热编码,你需要了解将分类特征转换为数字特征的17种方法 分类编码是将分类列转换为一个(或多个)数字列的过程. ...

  7. 数据预处理之One-Hot(独热编码)编码

    数据预处理之One-Hot(独热编码)编码 为什么使用One-Hot编码 对于机器学习任务中,特征并不总是连续值,很多是分类值.这些分类值本身没有大小的意义.为了将数据集中一个分类变量替换为一个或多个 ...

  8. 为什么独热编码会引起维度诅咒,以及避免他的几个办法

    特征工程是数据科学模型开发的重要组成部分之一.数据科学家把大部分时间花在数据处理和特征工程上,以便训练一个鲁棒模型.数据集由各种类型的特征组成,包括类别.数字.文本.日期时间等. 由于大多数机器学习模 ...

  9. Python下数值型与字符型类别变量独热编码(One-hot Encoding)实现

    1 OneHotEncoder 2 pd.get_dummies   在数据处理与分析领域,数值型与字符型类别变量的编码是不可或缺的预处理操作.本文基于Python下OneHotEncoder与pd. ...

  10. 机器学习:数据预处理之独热编码(One-Hot)详解

    一. 什么是独热编码? ---------------------------------------- 在机器学习算法中,我们经常会遇到分类特征,例如:人的性别有男女,祖国有中国,美国,法国等. 这 ...

最新文章

  1. java映射文件是哪一种xml_java解析xml的几种方式哪种最好?
  2. mysql12----explain
  3. 010_mod_fastdfs.conf配置详情
  4. vue的slot作用域插槽使用案例
  5. call stack and stack buffer overflow
  6. gcc和g++有什么区别?
  7. 统计个人已完成的工作量_2020个人年终工作总结怎么写已完成工作?
  8. 《TensorFlow 2.0深度学习算法实战教材》学习笔记(一、人工智能绪论)
  9. 第三届人本沙龙12月活动小结
  10. 关于字节跳动小程序授权问题解决方案
  11. 前端实现在线预览pdf、word、xls、ppt等文件
  12. rs429-HI3282-HI3182笔记
  13. win10天气是英文的
  14. 龙哥库他发matlab程序,编程实现四阶龙哥库塔法解方程
  15. 如何成为一个优秀的测试工程师
  16. 6-9 计算捐款总量 (10 分)
  17. 什么是 OOD/OOP ?
  18. HTML报错:UncaughtTypeError
  19. android短信接受震动,Android中实现拨打电话、发送短信、响铃、震动和获取当前时间...
  20. 什么样的知识付费系统功能,更有利于平台与讲师发展?

热门文章

  1. 水域大小 Java_水域大小
  2. 清除扇区和低格哪个好_C++入门篇(四十五),结点删除与链表的清除
  3. 如何将两个集合合并_如何将剪切的音频文件进行合并
  4. java volatile 多线程_Java多线程之volatile
  5. linux进不了容器配置目录,linux – 在Docker容器中使用bcrypt的ELF头文件或安装问题...
  6. js和php获取页面的url信息
  7. Java开发面试题及答案,SpringBoot统一日志处理原理
  8. java数组长度怎么求,含答案解析
  9. 【Linux入门到精通系列讲解】Centos 7软件安装的三种方式
  10. python【力扣LeetCode算法题库】21- 合并两个有序链表