iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 23
0

特徵調整

在這裡要使用一個較特殊的運算叫做boxcox,boxcox1p則是加上1之後才做boxcox避免過程中出現錯誤,boxcox的公式如下。

做完這個轉換之後,變數的偏態係數會較接近0,正如我們在前幾個章節所說的,若是特徵可以更接近常態(偏態係數為0),則模型可以更好的進行預測。

from scipy.stats import boxcox1p
numeric_dtypes = ['int16', 'int32', 'int64', 'float16', 'float32', 'float64']
numerics2 = []
for i in features.columns:
    if features[i].dtype in numeric_dtypes:
        numerics2.append(i)
skew_features = features[numerics2].apply(lambda x: skew(x)).sort_values(ascending=False)

high_skew = skew_features[skew_features > 0.5]
skew_index = high_skew.index

for i in skew_index:
    features[i] = boxcox1p(features[i], boxcox_normmax(features[i] + 1))

上一篇
DAY[22]-Kaggle實戰 補值與特徵新增(2)
下一篇
DAY[24]-Kaggle實戰 特徵新增
系列文
Python機器學習介紹與實戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言