2016年5月15日 星期日

Feature extraction, feature selection, model selection

feature extraction: 現實生活不是任何資料都可以直接交給model處理,需要透過適當的處理
feature selection:feature不是愈多愈好,適當挑選feature可以提升model的準確度
model selection:對於不同的問題與資料,有不同適用的模型

feature extraction包含了兩個步驟,obtain features跟convert features
代表了如何處理各種資料方式,比方說要把圖片視為一維或者二為的資料呢?又或者透過統計學的方式,取得適當的資料型態,跟著或者可能使用one hot encoding編譯取得資料
其中有相當的部分是data preprocessing的範疇

feature selection必須考量到資料的與模型之間的適應性,捨棄一些太過正相關的資料,比方說用人名來作為是否會生存下來的依據,本身會有overfitting的問題。其次必須考量performance,為了現實的使用,適度的資料篩選來提升準確度是必要的
如果有無限的時間,或許我們可以嘗試使用所有排列組合,來挑選最佳的準確度的feature set,但是如果沒有那麼多時間,或許可以考慮使用統計學的方式,例如$\chi^2$來作為預測,經過一些實驗,大多數的狀況會發現,feature 個數在挑選若干個之後,準確度會開始收斂,所以適當的挑選feature是必須的

model selection,其實這是一個大哉問,有時候model的挑選是必須經過經驗的累積或者其他的人努力,比方說過去text classification曾經是兩大勢力,decision tree與naive bayes的爭奪戰,找出一個很良好,很大的syntax or semantic tree來的好呢?還是naive bayes的機率模型好,目前來說naive bayes已經成為了主流
選定model之後,另外一個問題就是hyperparameters,也就是模型的參數調教,比方說naive bayes有個$\alpha$如何挑選?或者SGD也有一個$\alpha$
如果在空間與時間的許可下,對特定問題的資料,做反覆的實驗,選定適合的$\alpha$ value,但是如果說問題的資料特徵一直隨時間變動,或許採用別種模型會比較合適

沒有留言:

張貼留言