为什么连续值特征比离散值特征好
声明:本文是根据一篇英文博客翻译加自己总结得到的,如果造成侵权,请联系本人删除。
最近在做特征工程,看到这篇文章很受启发。原文链接:
原文的题目是——为什么连续值比类别或者离散值“好”。原文作者首先回顾什么是离散值,什么是连续值。
当我们给事物定一个名字的时候,我们就造了一个属性或者说是类别。当我们给事物计数时,我们就收集到了离散值。当我们用(理论上的)无限级衡量事物时,就有了连续值。
原文作者给出了一个总结:
- Categorical = naming or grouping data
- Discrete = count data
- Continous = measurement data
如果细究起来,其实我们对事物的描述是没有连续值的,因为总有一些值是取不到的。就像频幕上画出来一条线,看起来是连续的,但实际上还是用一个个点连起来的,对于这个问题,原文作者给出了一个他自己对离散和连续的理解。
作者认为,连续值和离散值就是一个测量单位的问题(a question of scale).例如要测量生产线上标准重量为16-盎司的谷物盒子,看它是不是至少是16-盎司,同时又不超过16.5盎司。
如果用磅为单位来测量(16盎司=1磅),那就只能得到<1磅,=1磅和大于1磅三个结果。如果用盎司作为单位测量,就能够更加精确的知道每个盒子到底离1磅差了多少。
哪些事连续值能够做到而离散值不行呢?
接着上面的例子,原文作者展现了从离散值的粗略测量到连续值的精确测量。
设定谷物盒子重量少于1磅是Bad,否则是Good,那么统计100个谷物盒子,我们能够得到下面的一个柱状图:
如果我们换一下统计方法,统计<1磅,=1磅和>1磅的情况,100个盒子的情况如下面的饼图:
比起刚才的柱状图,我们知道的细节更多了,谷物盒超重的比例更高(谷物装多了)。
更进一步,用盎司为单位测量每个盒子的重量,就能得到下面的一个图:
可以看到,盒子的平均重量是1磅,但是偏差很大,标准差是0.9,值的范围从12盎司到20盎司。
接下来,用0.001盎司作为测量单位,测量得到的数据就能够支持更多的分析了。数据能够区分出0.5盎司的重量,因此就可以看看生产线是否能够持续生产重量在16到16.5盎司之间的成品,如下图:
原文作者用的是Minitab分析工具,我没有用过,但是从上面的图上明显看到:测量值的均值并不是在16盎司,作为老板,就要去改进生产线了。
原文最后还介绍了一个I-MR control chart,我不明白是什么东西,感兴趣的可以参见原文。
原文作者提到的这个问题在我的项目中也有体会。对于推荐问题我也更多的用到连续特征:
- 有无附件->附件的词数;
- 附件类型->附件类型的重要度;
- 来源->来源重要度;
- 文种->文种比例。
等等。
我认为这样做的好处是:
1)更加精细的反应数据特性,便于模型处理
比如有无附件换成附件大小,就能够让模型根据附件大小学到一个分类界面,这个比有无附件这样的01特征肯定效果更好。
2)在特征工程阶段就将问题尽量变成线性
比如来源特征,直接加到问题里面,就是一个离散特征,要用决策树一类的方法才能处理,而且是个非线性问题,如果换成来源重要度,就变成连续值,而且是线性可分的连续特征。
3)去除不必要的特征噪声
文种->文种比例,不用关心具体文种。