离散型特征编码方式:one-hot与哑变量*

  在机器学习问题中,我们通过训练数据集学习得到的其实就是一组模型的参数,然后通过学习得到的参数确定模型的表示,最后用这个模型再去进行我们后续的预测分类等工作。在模型训练过程中,我们会对训练数据集进行抽象、抽取大量特征,这些特征中有离散型特征也有连续型特征。若此时你使用的模型是简单模型(如LR),那么通常我们会对连续型特征进行离散化操作,然后再对离散的特征,进行one-hot编码或哑变量编码。这样的操作通常会使得我们模型具有较强的非线性能力。那么这两种编码方式是如何进行的呢之间是否有联系什么样的区别何提升模型的非线性能力的呢我们一一介绍:

one-hot encoding

  关于one-hot编码的具体介绍,可以参考一篇博客,博客地址:特征提取方法: one-hot 和 IF-IDF。这里,不再详细介绍。one-hot的基本思想:将离散型特征的每一种取值都看成一种状态,若你的这一特征中有N个不相同的取值,那么我们就可以将该特征抽象成N种不同的状态,one-hot编码保证了每一个取值只会使得一种状态处于“激活态”,也就是说这N种状态中只有一个状态位值为1,其他状态位都是0。举个例子,假设我们以学历为例,我们想要研究的类别为小学、中学、大学、硕士、博士五种类别,我们使用one-hot对其编码就会得到:

   

再举一个例子,假设变量“职业”的取值分别为:工人、农民、学生、企业职员、其他,5种选项,我们可以增加4个哑变量来代替“职业”这个变量,分别为D1(1=工人/0=非工人)、D2(1=农民/0=非农民)、D3(1=学生/0=非学生)、D4(1=企业职员/0=非企业职员),最后一个选项“其他”的信息已经包含在这4个变量中了,所以不需要再增加一个D5(1=其他/0=非其他)了。这个过程就是引入哑变量的过程,其实在结合分析(conjoint analysis)中,就是利用哑变量来分析各个属性的效用值的。

在线性回归分析中引入哑变量的目的是,可以考察定性因素对因变量的影响,引入哑变量有两种方式:加法方式与乘法方式。
所谓加法方式是指,哑变量作为单独的自变量,有独立的系数,从几何意义上来讲,就是只改变回归直线的截距(constant),不改变斜率(B);(PS:在这里我认为应该这样理解,假设原有的回归的方程为y(x1)=w1*x1+b,引入一个哑变量,就变成 y(x1,x2)=w1*x1+w2*x2+b,对于x1来说,加入哑变量并没有影响其斜率,而是影响了截距。乘法方式则是y(x1,x2)=w1*x1+w2*x2*x1+b=(w1+w2*x2)*x1+b,也就是影响了斜率)
而乘法方式则正好相反,不改变截距,只改变斜率,因为哑变量在回归方程中不是作为一个独立的自变量,而是与其中某一个自变量相乘后作为一个自变量。
当然,也可以同时使用加法和乘法来引入哑变量,即同时改变截距和斜率。
由于哑变量的取值只有0和1,它起到的作用像是一个“开关”的作用,它可以屏蔽掉D=0的case,使之不进入分析,在spss软件中就是filter的作用。我试验了一下,确实如此。
利用spss软件自带的data:car.sav,分析汽车的功率与100米加速时间的关系,将变量“filter_”作为哑变量,我们分别run两次线性回归分析,然后对比这2次的结果,来说明上面的想法。 *horse”作为自变量,进行线性回归分析;
第二次,利用变量“filter_=0的case,同样将“accel”作为因变量,而只将“horse”作为自变量;
两次的线性回归结果分别为:
第一次:accel=20.495-0.049*horse-0.007*”filter_
第二次:accel=21.234-0.056*horse
当filter_$=1时,第一次计算的公式正好等于第二次机算的公式。

one-hot编码和dummy编码:区别与联系

  通过上面的例子,我们可以看出它们的“思想路线”是相同的,只是哑变量编码觉得one-hot编码太罗嗦了(一些很明显的事实还说的这么清楚),所以它就很那么很明显的东西省去了。这种简化不能说到底好不好,这要看使用的场景。下面我们以一个例子来说明:

  假设我们现在获得了一个模型

这时,我们就惊奇的发现

(1)使用

式中

  这样做除了增强了模型的非线性能力外,还有什么好处呢做了我们至少不用再去对变量进行归一化,也可以加速参数的更新速度;再者使得一个很大权值管理一个特征,拆分成了许多小的权值管理这个特征多个表示,这样做降低了特征值扰动对模型为稳定性影响,也降低了异常数据对模型的影响,进而使得模型具有更好的鲁棒性

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年7月22日
下一篇 2018年7月22日

相关推荐