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

  • 相关阅读:
    小团队Git协作管理
    android用MediaCodeC将opengl绘制内容录制为一个mp4
    非对称加密算法RSA 学习
    .obj 和 .mtl格式详解
    “m3u8格式简析”与“视频秒开优化”
    Jenkins Android打包(Mac平台)
    java引用Arcface,实现人脸识别(demo)
    ArcFace Demo [Android]
    C# ArcFace 免费人脸识别 2.0 demo
    [Windows][C#][.NET][WPF]基于ArcFace2.0+红外双目摄像头的活体检测
  • 原文地址:https://www.cnblogs.com/ottll/p/9275011.html
Copyright © 2011-2022 走看看