大家看到這裡一定又一個頭兩個大了,這到底是甚麼東西
我想我們直接用一些例子來做解釋會比較好理解
大家可以看到下面兩張圖,如果希望把下列兩張圖利用你知道的方式來做分類你會怎麼做呢??
首先第一張圖非常的簡單我們只要用一條直線就可以把兩個群體分開了
第二張圖就有點麻煩了,我們需要一些跟之前不一樣的想法
上述這兩個想法這也就是我們所謂的Feature Crosses,要將兩個特徵做交叉的動作可以得到得好的結果,更快並且更好的進行分類。
根據上面講了那的多的理論基礎,今天我們可以利用tensorflow playground來做驗證
我們直接來看數據分布在四周的樣本
首先我們先用X1、X2兩個特徵作為分類的依據,可以發現完全分不出來,但加入了X1 * X2依照前面的理論基礎,我們可以看到在同樣的時間點加入X1 * X2的特徵能夠達到分類更好的結果。
接著舉另一個分類的問題,中間是一種類別外圍是一種類別,一樣先只以X1、X2做特徵,也會發現對於這個模型沒有辦法將資料分開,但我們加入與,會發現因為平方的關係中間的值會比較小、外圍的值會比較大,所以也可以用此證明與是有助於分類的判斷。
另外有個問題就是加入太多的特徵會導致可能訓練過程拉比較長
像是簡單的數據集特徵只需要兩個,但如果加入更多的特徵會模糊化原本比較好的特徵
依照下圖這個這個最簡單的分類問題同樣讓它跑100個Epoch,我們可以看到雖然最終能夠達到分類的效果
但在中途訓練時間會有所差異,所以在我們選擇特徵的時候還是要依照數據集的特性來進行特徵的選擇。
※圖片參考至 Feature Engineering resource