数据分类:特征处理
特征處理
問題1:連續特征和離散特征同時存在時如何處理?
quora上有人問到了這方面的問題:What are good ways to deal with problems where you have both discrete and continous features?主要的思路是對離散的特征進行二值化處理,比如答案中舉的例子:
由于上面產品的類別有3種可能的取值,所以我們可以用3個虛擬的變量來特換掉種類類別這個特征,這種特征處理方式跟自然語言處理的one-hot處理方式一樣,所以我們可以將上面的特征進行處理后每個樣本可以用一個4維的向量來表示:
[35.99 1 0 0] [42.95 0 1 0] [10.50 1 0 0] [74.99 0 0 1]特征經過上面的預處理后,便可以使用這些特征做回歸啊等機器學習任務,如果使用線性回歸的話,我們需要學習5個權重(每一個特征對應一個權重,偏執項也可以視為一個權重,(w1x1+w2x2+w3x3+w4x4+w0)(w1x1+w2x2+w3x3+w4x4+w0)。此外,我們還需要對每一列的特征進行均值歸一化,即(xcoli?μ)/σ(xcoli?μ)/σ。 。其實對樣本種類類別,我們可以只用兩個維度的進行表示也可以可行的,即以如下方式進行表示:
[35.99 0 0] [42.95 0 1] [10.50 0 0] [74.99 1 0]一般對于特征中既包含有連續特征又包含有離散特征,對于離散特征差不多都采用這種方式進行處理,但是這種方式有一個比較大的問題,就是當離散特征可能的取值比較多時,會導致通過這種方式處理后的特征維度非常高(one-hot表示方法都有這樣一種特點),向量非常的稀疏,在存儲以及運算的時候,可以通過使用一些支持稀疏表示的矩陣庫進行處理(比如Armadillo有稀疏矩陣的表示)。
一些不同的回歸模型比較:
1.?7 Types of Regression Techniques you should know
2.?10 types of regressions. Which one to use?
3.?Regression analysis using Python
4.?scikit learn logistic regression
from:?http://yongyuan.name/blog/feature-engineering-note.html
總結
- 上一篇: 用Hadoop1.0.3实现KMeans
- 下一篇: 日本常用姓氏表