機器學習 特徵工程篇

2021-09-12 16:25:52 字數 3301 閱讀 9058

目錄

1.資料清洗

2.取樣

2.特徵工程

數值型:

(1) 幅度縮放(最大最小值縮放,歸一化。。。)

(2)離散化/分箱分桶(等距pd.cut ,等頻pd.qcut)(非線性,加速,特徵交叉,健壯性)

(3)統計值:(max,min ,quantile,均值,中位數,眾數,分位數)

(4)四則運算:(加減乘除)

(5)幅度變化:(有一些模型對於輸入資料有分布假設,lr假設輸入連續值特徵符合正態分佈,log1p/exp)

(6)監督學習分布(用決策樹建模,用決策樹學習連續值劃分方式,把決策樹中間節點取出來作為組合特徵)

類別型(1)label encoding

(2)onehot encoding(啞變數)

(3)雜湊技巧

(4)histogram對映 

時間型文字型

統計型組合特徵

3.特徵選擇

我們為什麼要做特徵工程?

給我們一些資料,我們首先要了解這部分資料,然後對資料進行學習,得到我們想要的結果。

但是,給我們的資料適合我們學習嗎,是不是所有的資料都要用?特徵工程就是對資料進行一些處理,提取有效資訊,使資料符合模型的輸入要求,得到更好的結果。其實我們大部分時間都花在特徵工程上面,乙個好的特徵工程,也許並不需要特別複雜的模型,就能得到很好的效果。

原材料 +  機器 = 產品

乙個好的產品需要好的原材料和機器,特徵工程類似於原材料的加工過程,機器類似於我們的演算法模型。

在進行特徵工程之前,先對資料進行清洗:

為什麼需要取樣?

對於一些分類問題,有時候資料中正負樣本是不均衡的,而有些模型對於正負樣本比較敏感,(比如說邏輯回歸,正樣本多於負樣本,那麼正樣本的概率就大於負樣本概率,決策邊界可能會拉向正樣本)

常見的取樣方法:隨機取樣 分層取樣

怎樣解決正負樣本不均衡的問題?

數值型,類別型,時間型,文字型,統計型,組合特徵型

為什麼需要幅度縮放?

假如說乙個用邏輯回歸訓練模型,但是每個樣本不同屬性下的數值範圍差異很大(年齡:1-60  薪資:5000-10000)這樣的話根據邏輯回歸,不同的屬性下要配備不同的權重,可能薪資的權重就很大,這樣符合實際嗎?不一定吧。有可能年齡對最終的結果影響更大。所以我們要把這些屬性的值都劃歸到乙個數量級,有利於權重的劃分。

上圖為例:具有兩個特徵的邏輯回歸梯度下降,如果不進行歸一化,量綱不一樣,就會形成左圖瘦長圓,梯度下降時,沿著等高線垂直下降,就會形成之字形,走很多彎路,浪費時間。右圖是歸一化之後,訓練較快,加快梯度下降求最優解的速度。

常見的縮放方式(離散標準化):(實際值-min)/(max-min)           前提是單維資料符合正態分佈,數值比較集中

適用場景:(1)概率模型不需要歸一化,因為概率模型不關心變數的的取值,而是關心變數的分布和變數之間的條件概率

(2)svm,線性回歸類的最優化問題需要歸一化,是否歸一化取決於是否關心變數的取值

(3)神經網路模型需要標準化,是為了弱化某些變數的值較大對結果產生影響

(4)在k近鄰演算法中,如果不對解釋變數進行標準化,那麼具有小數量級的解釋變數的影響就會微乎其微。

為什麼需要離散化?連續值不好嗎?

對於一些連續值來說,它們每部分的重要程度是不一樣的,不能夠等同看待,這就需要把連續值離散化。比如說,年齡3-66歲的連續值,要給老人孩子讓座,我們該怎麼讓座,10歲以下的讓座,11-60歲的不需要,60歲以上的需要讓座,假如使用邏輯回歸模型,那麼10歲以下不需要讓座,60以上需要讓座,不符合常理,所以離散化,10歲以下的乙個特徵,11-60歲的不需要,60歲以上的乙個特徵,這樣才符合實際。

樹模型:不需要離散化,樹模型可以產生區間和規則。

神經網路:需要離散化。

常見的離散化方式有:(1)等距切分       只考慮邊界,最大與最小之間按照一定的比例切成幾段,比如0-100歲,等距切分:0-10 11-20                                                21-30. ...

(2)等頻切分:不考慮邊界,每段區間中的樣本點數量相同      比如比如0-100歲,等頻切分:每50人分一組

缺點:落在正確區間的偶然性比較大

比方說,紅黃藍綠,計算機是讀不懂的,所以給他們編碼(label encoding)為1,2,3,4,這樣計算機就能知道了,

但是顏色應該相等的,不應該有大小區別,這就有了one-hot 編碼。黃藍

綠紅黃1

000藍

0100

綠001

0紅00

時間點/時間段(星期幾,幾點鐘)

時間分組/時間分段(工作日,週末,法定節假日)

時間間隔(距離當前為止。。。)

和數值型一起做統計特徵的時候,會會選取不同的時間窗

組合(1)詞袋模型

(3)lda(主題模型)

(4)word2vec/word embedding(是乙個稠密向量)

加減平均,分位線,次序,比例

簡單的特徵組合:根據實際情況,自己拼接

模型特徵組合:用gbdt產生組合路徑,組合特徵和原始特徵一起放進lr訓練

原因:雜訊:部分特徵對**結果有負影響

方式:

機器學習 特徵工程

老師有多年的網際網路從業經驗,所以講解的過程中結合了很多任務業界的應用,更加的深入淺出。資料採集 資料採集前需要明確採集哪些資料,一般的思路為 哪些資料對最後的結果 有幫助?資料我們能夠採集到嗎?線上實時計算的時候獲取是否快捷?舉例1 我現在要 使用者對商品的下單情況,或者我要給使用者做商品推薦,那...

機器學習 特徵工程

資料和特徵決定了機器學習的上限,而模型和演算法只是逼近這個上限而已。通俗的說,就是盡可能的從原始資料中獲取更多資訊,從而使得 模型達到最佳。簡而言之,特徵工程是乙個把原始資料變成特徵的過程,這些特徵可以很好的描述資料,並且利用它們建立的模型在未知資料上表現效能可以達到最優。實驗結果取決於獲取的資料 ...

機器學習特徵工程

作用 對字典資料進行特徵值化 dictvectorizer語法 例項化了乙個物件 data dict fit transform x print dict get feature names print data return none if name main dictvec 結果 分析 使用di...