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

独热编码(One-Hot)的理解的更多相关文章

  1. 【转】数据预处理之独热编码(One-Hot Encoding)

    原文链接:http://blog.csdn.net/dulingtingzi/article/details/51374487 问题由来 在很多机器学习任务中,特征并不总是连续值,而有可能是分类值. ...

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

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

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

    python机器学习-sklearn挖掘乳腺癌细胞( 博主亲自录制) 网易云观看地址 https://study.163.com/course/introduction.htm?courseId=10 ...

  4. 数据预处理:独热编码(One-Hot Encoding)和 LabelEncoder标签编码

    一.问题由来 在很多机器学习任务中,特征并不总是连续值,而有可能是分类值. 离散特征的编码分为两种情况: 1.离散特征的取值之间没有大小的意义,比如color:[red,blue],那么就使用one- ...

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

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

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

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

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

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

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

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

  9. One-Hot Encoding(独热编码)

    前几天查了一些与独热编码相关的资料后,发现看不进去...看不太懂,今天又查了一下,然后写了写代码,通过自己写例子加上别人的解释后,从结果上观察,明白了sklearn中独热编码做了什么事. 下面举个例子 ...

  10. 独热编码OneHotEncoder简介

    在分类和聚类运算中我们经常计算两个个体之间的距离,对于连续的数字(Numric)这一点不成问题,但是对于名词性(Norminal)的类别,计算距离很难.即使将类别与数字对应,例如{'A','B','C ...

随机推荐

  1. C# 序列化与反序列化之xml通过实现IXmlSerializable进行序列化的解决方案

    新建控制台console项目,添加XmlPersonIXmlSerializable类,和AddressIXmlSerializable类(实现IXmlSerializable)以及AddressIX ...

  2. Emotion Recognition Using Graph Convolutional Networks

    Emotion Recognition Using Graph Convolutional Networks 2019-10-22 09:26:56 This blog is from: https: ...

  3. Xamarin.FormsShell基础教程(6)Shell项目内容详情页面

    Xamarin.FormsShell基础教程(6)Shell项目内容详情页面 轻拍内容列表页面中的任意一项内容后,进入内容详情页面,如图1.6和图1.7所示.该页面中显示了内容项的标题和具体内容.该页 ...

  4. Xamarin.Forms Shell基础教程(1)

    Xamarin.Forms Shell基础教程(1) 什么是Xamarin.Forms Shell Shell是Visual Studio为Xamarin Forms提供的解决方案模版.本质上,She ...

  5. Python之多态案例

    class Canvas: def draw_pic(self, shape): print('--start draw--') shape.draw(self) class Rectangle: d ...

  6. SpringCloud 微服务中 @Async 注解自定义线程池 引发的aop 问题

    背景 在 使用springCloud 的@Async注解来做异步操作时,想自定义其线程池. 引发问题 自定义完线程池后,发现代码里并没有使用自定义线程池里的线程,于是新建一个demo工程,一样的配置代 ...

  7. await 只能在 async 中使用吗? 并不是

    for await (let a of [1,2,3]) { console.log(a) } ​

  8. redis-cli中文乱码

    在开发过程中,需要验证redis缓存中的数据,发现redis存储的中文全是乱码,因为默认情况下redis不转义中文.如果在平常开发中想要看到中文内容,可以在使用redis-cli 命令登陆redis服 ...

  9. 关于SET QUOTED_IDENTIFIER {ON|OFF}的问题

    SQL SERVER的联机丛书的解释:“当 SET QUOTED_IDENTIFIER 为 ON 时,标识符可以由双引号分隔,而文字必须由单引号分隔.当 SET QUOTED_IDENTIFIER 为 ...

  10. 忘记树莓派pi账户密码简单重设

    网上搜到的教程多是要修改cmdline.txt,非常繁琐,其实树莓派本身的root账户还没有启用,在root账户下重设pi的密码是很容易的,下面教你启用root账户,一切都需要在树莓派本机上操作 打开 ...