请选择 进入手机版 | 继续访问电脑版
麦粉社区
>
帖子详情

One-Hot独热编码使用

数据挖掘 发表于 2020-1-16 15:30
发表于 2020-1-16 15:30:04
1、什么是One-Hot独热编码? 独热码,在英文文献中称做 one-hot code, 又称独热编码、一位有效编码,直观来说就是有多少个状态就有多少比特,而且只有一个比特为1,其他全为0的一种码制。其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效。
离散特征:红色、黄色、蓝色、绿色
离散特征的独热编码为:1000、0100、0010、0001
2、什么情况下可以使用独热编码?
当特征值为离散值时(如果是字符型,一般变现为类型),且离散特征的取值之间没有大小的意义,例如上面提到的特征:红色、黄色、蓝色、绿色,那么就使用one-hot编码;如果离散特征的取值有大小的意义,例如鞋码大小,38、40、41,那么就使用数值的映射{38:1,40:2,41:3},不能使用独热编码。
简单说就是离散值没有大小区分,就可以用独热编码;如果有大小之分,就不可以使用独热编码
3、为什么要使用独热编码?

因为大部分算法是基于向量空间中的度量来进行计算的,为了使非偏序关系的变量取值不具有偏序性,并且到圆点是等距的。使用one-hot编码,将离散特征的取值扩展到了欧式空间,离散特征的某个取值就对应欧式空间的某个点。将离散型特征使用one-hot编码,会让特征之间的距离计算更加合理。离散特征进行one-hot编码后,编码后的特征,其实每一维度的特征都可以看做是连续的特征。就可以跟对连续型特征的归一化方法一样,对每一维特征进行归一化。比如归一化到[-1,1]或归一化到均值为0,方差为1。

为什么特征向量要映射到欧式空间?将离散特征通过one-hot编码映射到欧式空间,是因为,在回归,分类,聚类等机器学习算法中,特征之间距离的计算或相似度的计算是非常重要的,而我们常用的距离或相似度的计算都是在欧式空间的相似度计算,计算余弦相似性,基于的就是欧式空间。

4、Smartbi Mining中如何转换独热编码

Smartbi Mining提供离散特征转换为独热编码功能。当特征值是非数值型类型值时,先通过特征变换将类型转换为离散的数值,然后再对离散的数值进行独热编码转换。先将col1中的类型转换为数值col1Index,然后将col1Index特征值转换为One-Hot码特征列col1Index_OneHot。转换成后的独热编码就可以当成新的特征列在机器学习中使用了。

200325e200f3731c78.png

83635e200f676ee7d.png

416275e200fd7d8cd4.png





高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0回帖数 0关注人数 3062浏览人数
最后回复于:2020-1-16 15:30
快速回复 返回顶部 返回列表