機器學習設計模式

機器學習設計模式

在資料表示時,針對資料做線性調整常用的方法為

1.max min 調整 x=(2*x’-x_max-x_min)/(x_max-x_min)

可以將值壓在-1/1之間

2.裁減,遠離類似於上,但手動設定邊界,這樣可以避免極值導致整體資料被壓縮

3.z_score標準化:對粗估平均值和標準差做縮放

X=(x1- mean)/stddev

4.winsorizing:以十分為90分位為界壓縮

分佈來說min_max是最佳,z score 針對常態分佈的數據也是很不錯

而對於高複雜的參數,例如機場、執刀醫師等,最好不要直接使用one-hot encode,一個是展開後的數量會劇增,再來如果有新的參數加入(新機場 新醫生)原先訓練的資料就沒有用了,可以用雜湊表將很多的參數降維,一般建議時一個雜湊值對應五個,這樣一來缺點是機器學習會在不相關參數中學習可能的訊息,但優點是不用把整個資料丟棄,此方法稱為hashed feature.

Embedding: 另一種方式是讓大量類別先產生低維特徵後再去訓練,一般建議維度是元素類別的四次方根,或是平方根的1.6倍

Softmax and sigmoid

預測一張圖片中有多少可能包含狗貓或兔子時,softmax會顯示綜合為1的機率分佈,例如[.8,.1,.1],而sigmoid會把每個可能出現的機率放在每個格子,例如[.9,.4,.3]以表示不同可能出現的機率

後續許多章節都是掃過去看完的,可以說這本書有一定ML實作經驗後來看會有種原來可以這樣做、或是原來這樣的做法早就有人在用的感慨;對於新進者可以留個印象有這件事,對於往後遇到問題可以提供靈感

Comments

Loading comments…

Leave a Comment