zoukankan      html  css  js  c++  java
  • deep_learning_Function_One-host参数

    在很多机器学习任务中,特征并不总是连续值,而有可能是分类值。比如星期类型,有星期一、星期二、……、星期日,比如浏览器类型有["uses Firefox", "uses Chrome", "uses Safari", "uses Internet Explorer"]。
    对于这些离散型特征,可以用几个数字表示特征值,如用1表示星期一,2表示星期二;也可以用one-hot编码,如用[1,0,0,0,0,0,0]表示星期一,[0,1,0,0,0,0,0]表示星期二。
    那什么情况用one-hot编码,什么情况可以不用呢?事实上,之所以用one-hot编码,是为了更合理地计算欧式距离。比如,有一个离散型特征,代表工作类型,该离散型特征,共有三个取值,不使用one-hot编码,其表示分别是x_1 = (1), x_2 = (2), x_3 = (3)。两个工作之间的距离是,(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).即每两个工作之间的距离是一样的,显得更合理。
    对于离散型特征,基于树的方法是不需要使用one-hot编码的,例如随机森林等。基于距离的模型,都是要使用one-hot编码,例如神经网络等。

    以下做个实验说明:
    一个数据如下,这是对星期类型采用[1,2,3,4,5,6,7]进行编码的方式:
    @relation 'day'
    @attribute day numeric
    @attribute class numeric
    @data
    1,1100
    2,1200
    3,1300
    4,1400
    5,1800
    6,2000
    7,1800
    1,1100
    2,1200
    3,1300
    4,1400
    5,1800
    6,2000
    7,1800
    ……

    在weka中用随机森林RandomForest算法建模,用默认的参数,并进行10折交叉验证的结果如下:
    Correlation coefficient                  1    
    Mean absolute error                      0    
    Root mean squared error                  0    
    Relative absolute error                  0      %
    Root relative squared error              0      %
    Total Number of Instances              210
    可以看出,误差为0。

    在weka中用BP神经网络MultilayerPerceptron建模,用默认的参数,并进行10折交叉验证的结果如下:
    Correlation coefficient                  0.9645
    Mean absolute error                     71.9842
    Root mean squared error                 85.2536
    Relative absolute error                 23.7056 %
    Root relative squared error             26.3015 %
    Total Number of Instances              210
    可以看出,误差比较高。

    换one-hot编码的数据如下:
    @relation 'day'
    @attribute day1 numeric
    @attribute day2 numeric
    @attribute day3 numeric
    @attribute day4 numeric
    @attribute day5 numeric
    @attribute day6 numeric
    @attribute day7 numeric
    @attribute class numeric
    @data
    1,0,0,0,0,0,0,1100
    0,1,0,0,0,0,0,1200
    0,0,1,0,0,0,0,1300
    0,0,0,1,0,0,0,1400
    0,0,0,0,1,0,0,1800
    0,0,0,0,0,1,0,2000
    0,0,0,0,0,0,1,1800
    1,0,0,0,0,0,0,1100
    0,1,0,0,0,0,0,1200
    0,0,1,0,0,0,0,1300
    0,0,0,1,0,0,0,1400
    0,0,0,0,1,0,0,1800
    0,0,0,0,0,1,0,2000
    0,0,0,0,0,0,1,1800
    ……

    在weka中用随机森林RandomForest算法建模,用默认的参数,并进行10折交叉验证的结果如下:
    Correlation coefficient                  1    
    Mean absolute error                      0    
    Root mean squared error                  0    
    Relative absolute error                  0      %
    Root relative squared error              0      %
    Total Number of Instances              210
    可以看出,误差为0。

    在weka中用BP神经网络MultilayerPerceptron建模,用默认的参数,并进行10折交叉验证的结果如下:
    Correlation coefficient                  1    
    Mean absolute error                      0    
    Root mean squared error                  0    
    Relative absolute error                  0      %
    Root relative squared error              0      %
    Total Number of Instances              210
    可以看出,误差为0。

    所以,在基于距离的模型中,对于离散型特征,应该采用one-hot编码方式,而且对于很多神经网络模型,能够很好地处理稀疏特征的情况。
    ————————————————
    原文链接:https://blog.csdn.net/lanhaier0591/article/details/78702558

  • 相关阅读:
    笔试-2020软件工程师Java(上海)中科创达(收获很多,自己基础还是不行)
    SpringCloud-Spring Cloud 2 Finchley.M9报错问题
    IDEA 实体类生成serialVersionUID
    idea创建maven项目时出现Unable to import maven project: See logs for details
    Eclipse可以执行jsp文件却无法访问Tomcat主页
    已知n个正数:wi, 1<=i<=n, 和M。要求找出{wi }的所有子集使得子集内元素之和等于M。例如: n=4, (w1,w2,w3,w4)=(11,13,24,7),M=31 则满足要求的子集是(11,13,7)和(24,7)。
    嵌入式系统外部中断实验(按下按键,LED灯依次熄灭)
    嵌入式系统按键实现(按下按钮,LED灯熄灭)
    如何跳转一个由两个框架组成的页面
    对某个页面的过滤
  • 原文地址:https://www.cnblogs.com/0405mxh/p/11603437.html
Copyright © 2011-2022 走看看