特徵工程入門與實踐--學習筆記(0)

數據和特徵決定了機器學習算法的上限,而模型和算法只是不斷的逼近這個上限而已。

一、特徵工程

將數據轉換爲能更好的表示潛在問題的特徵,從而提高機器學習性能。

二、特徵工程具體包含

0、轉換數據的過程

不特指數據原始數據或未過濾數據的,它適用於任何階段的數據;一般來說要處理的數據都已經在一定程度上被清洗和組織過了

1、特徵

特徵是對機器學習有意義的數據屬性。

2、更好地表示潛在問題

我們要使用的數據一定代表了某個領域的某個問題。轉換數據的目的是要更好地表達更大的問題。

3、提高機器學習性能

執行特徵工程不僅是要獲得更乾淨的數據,而且最終要在機器學習流水線中使用這些數據

三、機器學習的基礎知識

大體上,我們把機器學習分爲兩類:監督學習和無監督學習

0.監督學習

也叫預測分析;監督學習算法專門處理預測一個值的任務,通常是用數據中的其他屬性來預測餘下的一個屬性

在監督學習中,我們一般將數據集中希望預測的屬性(一般只有一個)叫作響應( response),其餘屬性叫作特徵( feature)

也可以認爲,監督學習是一種利用數據結構的算法。機器學習算法會試圖從很漂亮整潔的數據中提取模式,而進入流水線的數據則需要特徵工程進行處理。

1.無監督學習

監督學習的目的是預測。我們利用數據的特徵對響應進行預測,提供有用的信息。如果不是
要通過探索結構進行預測,那就是想從數據中提取結構。要做到後者,一般對數據的數值矩陣或
迭代過程
應用數學變換,提取新的特徵。

  • 無監督學習的例子:市場細分

        這是營銷數據集的一個樣本,每行代表一個顧客,每人有 3 個基本屬性。我們的目標是將這
個數據集細分成不同的類型或聚類,讓執行分析的公司更好地理解客戶資料。

        這裏只顯示了 100 萬行數據的前 8 行,如果想把 100 萬人劃分爲不同的類型,方便市場部門更好地理解不同的消費人羣、爲每類人更精準地投放廣告呢?

        每種類型的顧客都有獨一無二的特徵。例如,有可能 20%的顧客屬於年輕富裕階層,他們的
年齡較小、買的商品數量較多。

        此類分析和類型的創建屬於無監督學習的一個特殊類別,稱作聚類,以後將詳細討論這種
機器學習算法。目前我們知道,聚類會創造一個新的特徵,將顧客劃分到不同類型或聚類中。

        以上是應用聚類算法後的數據集。注意在最後有一個新的聚類特徵,表示這個算法認爲此人
屬於哪個類型。我們的想法是,同一類型的人行爲相似(年齡、性別和購買行爲等相仿)。也許
聚類 6 可以叫作年輕消費者。
        這個聚類的例子顯示,我們不一定需要輸出預測值,可以只是深入瞭解數據,添加有價值的
新特徵,甚至刪除不相關的特徵。
 

注意,這裏將所有的列都稱爲特徵,因爲無監督學習沒有響應,我們沒有做預測。
 

四、機器學習算法和特徵工程的評估

        在文獻中, 特徵和屬性通常有明顯的區分。 屬性一般是表格數據的列, 特徵則一般只指代對機器學習算法有益的屬性。也就是說,某些屬性對機器學習系統不一定有益,甚至有害。例如,當預測二手車下次維修的時間時,車的顏色應該不會對預測有什麼幫助。

        書中,我們一般將所有的列都稱爲特徵,直到證明某些列是無用或有害的。之後,我們會
用代碼將這些屬性拋棄。那麼,對這種決定做出評估就是至關重要的。如何評估機器學習系統和
特徵工程呢?

0、特徵工程的例子:真的有人能預測天氣嗎?

        

        考慮一個用於預測天氣的機器學習流水線。爲簡化起見,假設我們的算法直接從傳感器獲取
大氣數據,並預測兩個值之一: 晴天或雨天。很明顯,這條流水線是分類流水線,只能輸出兩個
答案中的一個。我們每天早上運行這個流水線。如果算法輸出晴天而且這天基本是晴朗的,則算
法正確;同理,如果輸出雨天而且這天下雨了,那麼算法也是正確的。對於其他任何情況,輸出
都是錯的。我們在一個月的每一天都運行算法,這樣會收集差不多 30 個預測值和實際觀測到的
天氣值。然後就可以計算出算法的準確率。也許算法在 30 天內正確預測了 20 次,那麼準確率是
三分之二,大約爲 67%。利用這個標準化的值或準確率,我們可以調整算法,觀察準確率上升還
是下降。
        這個例子過度簡化了,但是思路很明確:對於任何機器學習流水線而言,如果不能使
用一套標準指標評估其性能,那麼它就是沒用的。因此,特徵工程不可能沒有評估過程。本書將
多次審視這種思路,但是目前先簡單談一下,如何進行該操作。
 

五、特徵工程的評估步驟
 

(1) 在應用任何特徵工程之前,得到機器學習模型的基準性能;
(2) 應用一種或多種特徵工程;
(3) 對於每種特徵工程,獲取一個性能指標,並與基準性能進行對比;
(4) 如果性能的增量(變化)大於某個閾值(一般由我們定義),則認爲這種特徵工程是有益的,並在機器學習流水線上應用;
(5) 性能的改變一般以百分比計算(如果基準性能從 40%的準確率提升到 76%的準確率,那麼改變是 90%)。
 

因爲本書的重點並不在於機器學習,而是理解和轉換特徵,所以我們會在例子中用機器學習算法的基準性能評估特徵工程


0、評估監督學習算法

當進行預測建模(即監督學習)時,性能直接與模型利用數據結構的能力,以及使用數據結構進行恰當預測的能力有關。一般而言,可以將監督學習分爲兩種更具體的類型: 分類(預測定性響應)和迴歸(預測定量響應)。

評估分類問題時,直接用 5 折交叉驗證計算邏輯迴歸模型的準確率:
 

# 評估分類問題的例子 僞代碼
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import cross_val_score
X = some_data_in_tabular_format
y = response_variable
lr = LinearRegression()
scores = cross_val_score(lr, X, y, cv=5, scoring='accuracy')
scores
>> [.765, .67, .8, .62, .99]

與之類似,對於迴歸問題,我們用線性迴歸的均方誤差( MSE, mean squared error)進行評
估,同樣使用 5 折交叉驗證:
 

# 評估迴歸問題的例子 僞代碼
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import cross_val_score
X = some_data_in_tabular_format
y = response_variable
lr = LinearRegression()
scores = cross_val_score(lr, X, y, cv=5, scoring='mean_squared_error')
scores
>> [31.543, 29.5433, 32.543, 32.43, 27.5432]

我們用這兩個線性模型,而不是出於速度和低方差的考慮使用更新、更高級的模型。這樣可以更加確定,性能的增長直接與特徵工程相關,而不是因爲模型可以發現隱藏的模式。
 

1、評估無監督學習算法

        這個問題比較棘手。因爲無監督學習不做出預測,所以不能直接根據模型預測的準確率進行評估。儘管如此,如果我們進行了聚類分析(例如之前的市場細分例子),通常會利用輪廓係數( silhouette coefficient,這是一個表示聚類分離性的變量,在-1 和 1 之間)加上一些人工分析來確定特徵工程是提升了性能還是在浪費時間。
        下面的例子用 Python 和 scikit-learn 導入並計算了一些假數據的輪廓係數:

# 僞代碼
attributes = tabular_data
cluster_labels = outputted_labels_from_clustering
from sklearn.metrics import silhouette_score
silhouette_score(attributes, cluster_labels)

隨着討論的深入,後面會花更多時間討論無監督學習。不過大部分例子會圍繞預測分析/監
督學習展開。
 

 

需要記住,之所以對評估的算法和指標進行標準化,是因爲要展示特徵工程的強
大,而且要讓你成功復現我們的過程。實踐中,你優化的性能有可能不是準確率,
例如真陽性率( true positive rate),想用決策樹而不是邏輯迴歸。這樣很好,我
們鼓勵這樣做。始終記住,要按步驟評估特徵工程的結果,並將特徵工程後的結
果與基準性能進行對比

 

        你閱讀本書的目的可能並不是提高機器學習性能。特徵工程在其他領域(例如假設檢驗和一般的統計)中也非常有用。在本書的幾個例子中,我們會研究將特徵工程和數據轉換應用於各種統計檢驗的統計顯著性上。我們也會探索 R2和 p 值等指標,以幫助判斷特徵工程是否有益。
        大體上,我們會在 3 個領域內對特徵工程的好處進行量化。

  • 監督學習:也叫預測分析
    • 迴歸——預測定量數據
      • 主要使用均方誤差作爲測量指標
    • 分類——預測定性數據
      • 主要使用準確率作爲測量指標
  • 無監督學習:聚類——將數據按特徵行爲進行分類
    • 主要用輪廓係數作爲測量指標
  • 統計檢驗:用相關係數、 t 檢驗、卡方檢驗,以及其他方法評估並量化原始數據和轉換後數據的效
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章