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 编码解决了这个问题。
    并且,经过独热编码后,特征变成了稀疏的了。这有两个好处,一是解决了分类器不好处理属性数据的问题,二是在一定程度上也起到了扩充特征的作用。

  • 相关阅读:
    毕业设计进度5(2月5日)
    毕业设计进度4(2月4日)
    Intellij IDEA 安装Scala插件 + 创建Scala项目
    中国HBase技术社区第一届Meetup资料大合集
    【大会PPT+直播回顾】HBaseCon亚洲2018峰会
    Java 中的锁原理、锁优化、CAS、AQS 详解!
    Reactor 反应堆设计模式
    IO模型
    浅析Reactor设计模式
    将IDEA工程代码提交到Github
  • 原文地址:https://www.cnblogs.com/ottll/p/9275011.html
Copyright © 2011-2022 走看看