機器學習筆記7-監督學習

規一化數字特徵

除了對於高度傾斜的特徵施加轉換,對數值特徵施加一些形式的縮放一般會是一個好的習慣。在數據上面施加一個縮放並不會改變數據分佈的形式(好比上面說的'capital-gain' or 'capital-loss');可是,規一化保證了每個特徵在使用監督學習器的時候可以被平等的對待。注意一旦使用了縮放,觀察數據的原始形式再也不具備它原本的意義了,就像下面的例子展現的。html

運行下面的代碼單元來規一化每個數字特徵。咱們將使用sklearn.preprocessing.MinMaxScaler來完成這個任務。python

from sklearn.preprocessing import MinMaxScaler

# 初始化一個 scaler,並將它施加到特徵上
scaler = MinMaxScaler()
numerical = ['age', 'education-num', 'capital-gain', 'capital-loss', 'hours-per-week']
features_raw[numerical] = scaler.fit_transform(data[numerical])

# 顯示一個通過縮放的樣例記錄
display(features_raw.head(n = 1))
age workclass education_level education-num marital-status occupation relationship race sex capital-gain capital-loss hours-per-week native-country
0 0.30137 State-gov Bachelors 0.8 Never-married Adm-clerical Not-in-family White Male 0.02174 0.0 0.397959 United-States

練習:數據預處理

從上面的數據探索中的表中,咱們能夠看到有幾個屬性的每一條記錄都是非數字的。一般狀況下,學習算法指望輸入是數字的,這要求非數字的特徵(稱爲類別變量)被轉換。轉換類別變量的一種流行的方法是使用獨熱編碼方案。獨熱編碼爲每個非數字特徵的每個可能的類別建立一個「虛擬」變量。例如,假設someFeature有三個可能的取值AB或者C,。咱們將把這個特徵編碼成someFeature_AsomeFeature_BsomeFeature_C.算法

特徵X   特徵X_A 特徵X_B 特徵X_C
B   0 1 0
C ----> 獨熱編碼 ----> 0 0 1
A   1 0 0

此外,對於非數字的特徵,咱們須要將非數字的標籤'income'轉換成數值以保證學習算法可以正常工做。由於這個標籤只有兩種可能的類別("<=50K"和">50K"),咱們沒必要要使用獨熱編碼,能夠直接將他們編碼分別成兩個類01,在下面的代碼單元中你將實現如下功能:api

  • 使用pandas.get_dummies()'features_raw'數據來施加一個獨熱編碼。
  • 將目標標籤'income_raw'轉換成數字項。
    • 將"<=50K"轉換成0;將">50K"轉換成1
相關文章
相關標籤/搜索