zoukankan      html  css  js  c++  java
  • 独热编码

    在机器学习算法中,我们经常会遇到分类特征,例如:人的性别有男女,祖国有中国,美国,法国等。
    这些特征值并不是连续的,而是离散的,无序的。通常我们需要对其进行特征数字化。

    那什么是特征数字化呢?例子如下:

    性别特征:["男","女"]----[0,1]
    祖国特征:["中国","美国,"法国"]----[0,1,2]
    运动特征:["足球","篮球","羽毛球","乒乓球"]----[0,1,2,3]

    现在有'某人'={
                "男"
                "中国"
                "乒乓球"
                }
    

    那么这个人数字化特征就是[0,0,4]来表示,但是这样的特征处理并不能直接放入机器学习算法中。因为类别之间是无序的(运动数据就是任意排序的),也就是算法识别的0无序,所以无法的值特征是哪一个?如此执意训练,造成负训练效果

    独热编码又称为一位有效编码

    —————————————————————————————————————————————————
    性别:

    男 => 10
    女 => 01

    祖国特征:["中国","美国,"法国"](这里N=3):

    中国 => 100
    美国 => 010
    法国 => 001

    运动特征:["足球","篮球","羽毛球","乒乓球"](这里N=4):

    足球 => 1000
    篮球 => 0100
    羽毛球 => 0010
    乒乓球 => 0001

    所以,当一个样本为["男","中国","乒乓球"]的时候,完整的特征数字化的结果为:

    [1,0,1,0,0,0,0,0,1]

    为什么使用one-hot编码来处理离散型特征?

    —————————————————————————————————————————————
    将离散型特征使用one-hot编码,确实会让特征之间的距离计算更加合理。

    比如,有一个离散型特征,代表工作类型,该离散型特征,共有三个取值,不使用one-hot编码,其表示分别是

    x_1 = (1)
    x_2 = (2)
    x_3 = (3)

    两个工作之间的距离是:

    d(x_1, x_2) = 1
    d(x_2, x_3) = 1
    d(x_1, x_3) = 2

    那么x_1和x_3工作之间就越不相似吗?显然这样的表示,计算出来的特征的距离是不合理。那如果使用one-hot编码,则得到:

    x_1 = (1, 0, 0)
    x_2 = (0, 1, 0)
    x_3 = (0, 0, 1)

    那么两个工作之间的距离就都是sqrt(2).即每两个工作之间的距离是一样的,显得更合理

  • 相关阅读:
    微信小程序中的app.js-清除缓存
    微信小程序中的app.js-清除缓存
    小程序左右标签滑块排行榜
    小程序九宫格
    小程序九宫格
    小程序上传wx.uploadFile
    小程序上传wx.uploadFile
    微信小程序消息通知-打卡考勤
    微信小程序消息通知-打卡考勤
    如何解决微信小程序界面适配问题-引用-生命周期回调函数-优化机制-样式引入
  • 原文地址:https://www.cnblogs.com/thgpddl/p/12907369.html
Copyright © 2011-2022 走看看