Ref.: Feature Crosses
這邊的概念很簡單,就是把Feature組合在一起餵進model。主要的問題像是下面這張圖,我們很難用單一的feature去分類。
單獨以x or y當特性實在無法,但z = xy
就有正負號,下圖就更容易理解了。
把z (綠色)當成一個新的feature帶入model訓練,就能得出很好的結果了。
原本的訓練方式可能是f = b + w_1*x + w_2*y
,之後變成f = b + w_1*x + w_2*y + w_3*z
,多考慮z這個feature。當然,z現在是x * y
,也可能是x * x
,或者可能是x_1 * x_2 * x_3
,就看之後可能要怎麼組合你的synthetic feature z了。
這邊的概念更簡單的說,就是組合有種AND運算的感覺。所以我們昨天文章說的Binning或One-hot vector做 feature cross 就會有AND的效果。
height = [
[150, 160),
[160, 170),
[170, 180)
]
gender = ["male", "female"]
height_x_gneder = [
[150, 160) AND "male", [160, 170) AND "male", [170, 180) AND "male",
[150, 160) AND "female", [160, 170) AND "female", [170, 180) AND "female"
]
Google文章內的範例是用經度緯度去分,當然還可以有更多種的分法,像時間搭配其他因素等等。
第一個練習沒有Play的按鈕,是要手動調整線上的weight(hover上去就可以囉)。