zoukankan      html  css  js  c++  java
  • 机器学习之特征编码总结

    原文:https://blog.csdn.net/zcc_0015/article/details/76595447

    已知三个feature,三个feature分别取值如下:
    feature1=[“male”, “female”]
    feature2=[“from Europe”, “from US”, “from Asia”]
    feature3=[“uses Firefox”, “uses Chrome”, “uses Safari”, “uses Internet Explorer”]
    如果做普通数据处理,那么我们就按0,1,2,3进行编号就行了。例如feature1=[0,1],feature2=[0,1,2],feature3=[0,1,2,3]。
    那么,如果某个样本为[“male”,“from Asia”, “uses Chrome”],它就可以表示为[0,2,1]。
    以上为普通编码方式。


    独热编码(One-hot)换了一种方式编码,先看看百科定义的:

    独热编码即 One-Hot 编码,又称一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效。
    例如对六个状态进行编码:
    自然顺序码为 000,001,010,011,100,101
    独热编码则是 000001,000010,000100,001000,010000,100000
    通过以上可以看到,独热编码每一个码的总的位数取决于状态的种类数,每一个码里的“1”的位置,就代表了哪个状态生效。
    还是回到我们最开始的例子,那么我们将它换成独热编码后,应该是:
    feature1=[01,10]
    feature2=[001,010,100]
    feature3=[0001,0010,0100,1000]
    所以,对于前边样本[“male”,“from Asia”, “uses Chrome”],经过独热编码后,它应该为:
    [01,00, 000,000,100, 0000,0010,0000,0000]
    注:上边用空格,以便看的更清晰。

    以上的独热编码可以写成简写形式: [1,0, 0,0,1, 0,1,0,0]

    最后,摘抄下独热编码的好处:

    由于分类器往往默认数据数据是连续的,并且是有序的,但是在很多机器学习任务中,存在很多离散(分类)特征,因而将特征值转化成数字时,往往也是不连续的, One-Hot 编码解决了这个问题。
    并且,经过独热编码后,特征变成了稀疏的了。这有两个好处,一是解决了分类器不好处理属性数据的问题,二是在一定程度上也起到了扩充特征的作用。

  • 相关阅读:
    Windows控制台程序“选定模式”的问题
    落网的音乐很好听的,你造么?不能下载啊,怎么破?
    记一次复杂的正则匹配——匹配但不包含
    判断浏览器是否为IE内核的最简单的方法
    Nodejs发送Post请求时出现socket hang up错误的解决办法
    Windows下通过bat脚本实现自动上传文件到ftp服务器
    jQuery对html进行Encode和Decode
    scala学习笔记:理解类继承
    scala学习笔记:理解lazy值
    scala学习笔记:match表达式
  • 原文地址:https://www.cnblogs.com/ottll/p/9275011.html
Copyright © 2011-2022 走看看