iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 3
0
AI & Data

跟top kaggler學習如何贏得資料分析競賽 系列 第 3

[Day 3] 特徵預處理及生成 Feature Preprocessing and Generation (Numeric Features) - 1/2

  • 分享至 

  • xImage
  •  

預處理分成 tree-based models 跟 non-tree-based models, 他們長得不一樣, 視覺識別可用 tree-based models 會有格子塊狀來區分.
https://ithelp.ithome.com.tw/upload/images/20190904/20108719xWOuDFKaqs.png
截圖自Coursera


以 Titanic dataset (https://www.kaggle.com/c/titanic/data) 舉例說明 features 型態跟預處理方式.
https://ithelp.ithome.com.tw/upload/images/20190904/20108719KBaFQrgNLu.png
截圖自 Kaggle


1. Numeric Features

-使用 Feature Scaling 特徵縮放避免在數字差異很大時被牽著跑, 正規化很重要, 就像是統計學講的標準化, 一種去單位的概念, 可以想像成被攤平的概念, 所以 Feature Scaling 可以改善 model 的品質.
-例如 Titanic 的 age 資料是 0~80, 而 Sibsp是 0~8. 若用 feature scaling 就能都轉成 0~1 區間來使用.

Feature Scaling

-方法一 MinMaxScaler --> To[0,1]

sklearn.preprocessing.MinMaxScaler

X=(X-X.min())/(X.max()-X.min())

-方法二 StandardScaler --> To mean=0, std=1

sklearn.preprocessing.StandardScaler

X=(X-X.mean())/X.std()

-方法三 rank <-- 適用在有 outlier 時

scipy.stats.rankdata

rank=([-100, 0, 1e5]) ==
[0,1,2]

rank([1000,1,10]) = [2,0,1]

-提醒 outlier 的處理可以設upper bound/lower bound, 例如財務面資料常用 1 percentile, 99 percentile 以避免資料被拉走


Feature generation 特徵生成

好的特徵萃取是贏得比賽的關鍵, prior knowledge跟對資料的了解(透過EDA), 此項在之後課程會講, 這邊先提概念, 以房屋中介的 dataset中價格跟面積兩個特徵, 可以新增價格/面積價格(price per meter square)


重點摘要

  1. 特徵縮放的 Scaling, Rank 用在數值型特徵 numeric features 有兩件事要注意.
    a. Tree-based models 不適用
    b. Non-tree-based models 適用
  2. 常用到的預處理
    a. MinMaxScaler - to [0,1]
    b. StandardScaler - to mean==0, std==1
    c. Rank
    d. np.log(1+x) and np.sqrt(1+x)-->今天沒講到
  3. 厲害的特徵生成能力來自於
    a. Prior knowledge
    b. EDA / Exploratory data analysis

上一篇
[Day 2] kaggle網站重點/ 規劃 pipeline
下一篇
[Day 4] 特徵預處理及生成 Feature Preprocessing and Generation (Ordinal Feature, Categorical Feature)-2/2
系列文
跟top kaggler學習如何贏得資料分析競賽 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言