機器學習之特徵組合: 多非線性規律進行編碼

Lois發表於2020-06-16

在 圖 1 和圖 2 中, 我們做出如下假設:
1.藍點代表生病的樹.
2.橙點代表健康的樹.

圖 1.這是線性問題嗎 ?

您可以畫一條線將生病的樹與健康的樹清晰的分開嗎 ? 當然可以.這是個線性問題.這條線並不完美.有一兩棵生病的樹可能位於“健康”一側, 但您畫的這條線可以很好的做出預測.
現在, 我們看看下圖:

圖 2 .這是線性問題嗎 ?

您可以畫一條直線將生病的樹與健康的樹清晰的分開嗎 ?
不, 您做不到.這是個非線性問題.您畫的任何一條線都不能很好的預測樹的健康狀況.

圖 3. 一條線無法分開兩條資料

要解決圖 2 所示的非線性問題, 可以建立一個特徵組合.特徵組合是指將兩個或者多個輸入特徵相乘來對特徵空間中的非線性規律進行編碼的合成特徵. “cross” ( 組合 ) 這一術語來自 cross product ( 向量積 ) .我們透過將 x1 與 x2 組合來建立一個名為 x3 的特徵組合:
x3 = x1x2
我們像處理任何其他特徵一樣來處理這個新建的 x3 的特徵組合.線型公式變為:
y = b + w1x1 + w2x2 + w3x3
線性演算法可以算出 w3 的權重, 就想算出 w1 和 w2 的權重一樣.換言之, 雖然 w3 表示非線性資訊, 但您不需要改變線性模型的訓練方式來確定 w3 的值.

特徵組合的種類

我們可以建立很多不同種類的特徵組合.例如:

  1. [A x B] : 將兩個特徵的之相乘形成的特徵組合.
  2. [A x B x C x D x E] : 將五個特徵的值相乘形成的特徵組合.
  3. [A x A] : 對單個特徵的值求平方形成的特徵組合.
    透過採用隨機梯度下降法, 可以有效地訓練線性模型.因此, 在使用線性擴充套件的線性模型時輔以特徵組合一直都是訓練大規模資料集的有效方法.
本作品採用《CC 協議》,轉載必須註明作者和本文連結
Hacking

相關文章