聲明:本文是根據一篇英文博客翻譯加自己總結得到的,如果造成侵權,請聯系本人刪除。
最近在做特征工程,看到這篇文章很受啟發。原文鏈接:
原文的題目是——為什么連續值比類別或者離散值“好”。原文作者首先回顧什么是離散值,什么是連續值。
當我們給事物定一個名字的時候,我們就造了一個屬性或者說是類別。當我們給事物計數時,我們就收集到了離散值。當我們用(理論上的)無限級衡量事物時,就有了連續值。
原文作者給出了一個總結:
- 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)去除不必要的特征噪聲
文種->文種比例,不用關心具體文種。