天天看點

機器學習算法選擇——特征提取

第4步:特征工程

或許比選擇算法更重要的是正确選擇表示資料的特征。從上面的清單中選擇合适的算法是相對簡單直接的,然而特征工程卻更像是一門藝術。

主要問題在于我們試圖分類的資料在特征空間的描述極少。利如,用像素的灰階值來預測圖檔通常是不佳的選擇;相反,我們需要找到能提高信噪比的資料變換。如果沒有這些資料轉換,我們的任務可能無法解決。利如,在方向梯度直方圖(HOG)出現之前,複雜的視覺任務(像行人檢測或面部檢測)都是很難做到的。

雖然大多數特征的有效性需要靠實驗來評估,但是了解常見的選取資料特征的方法是很有幫助的。這裡有幾個較好的方法:

  • 主成分分析(Principal component 

    analysis,PCA):一種線性降維方法,可以找出包含資訊量較高的特征主成分,可以解釋資料中的大多數方差。

  • 尺度不變特征變換(Scale-invariant feature 

    transform,SIFT):計算機視覺領域中的算法,用以檢測和描述圖檔的局部特征。它有一個開源的替代方法 

    ORB(Oriented FAST and rotated BRIEF)。

  • 加速穩健特征(Speeded up robust features,SURF):SIFT 的更穩健版本。
  • 方向梯度直方圖(Histogram of oriented 

    gradients,HOG):一種特征描述方法,在計算機視覺中用于計數一張圖像中局部部分的梯度方向的發生。

  • 更多算法請參考:https://en.wikipedia.org/wiki/Visual_deor

當然,你也可以想出你自己的特征描述方法。如果你有幾個候選方法,你可以使用封裝好的方法進行智能的特征選擇。

前向搜尋:

  • 最開始不選取任何特征。
  • 然後選擇最相關的特征,将這個特征加入到已有特征;計算模型的交叉驗證誤差,重複選取其它所有候選特征;最後,選取能使你交叉驗證誤差最小特征,并放入已選擇的特征之中。
  • 重複,直到達到期望數量的特征為止!

反向搜尋:

  • 從所有特征開始。
  • 先移除最不相關的特征,然後計算模型的交叉驗證誤差;對其它所有候選特征,重複這一過程;最後,移除使交叉驗證誤差最大的候選特征。
  • 重複,直到達到期望數量的特征為止!

使用交叉驗證的準則來移除和增加特征!

第5步:超參數優化(可選)

最後,你可能想優化算法的超參數。例如,主成分分析中的主成分個數,k 近鄰算法的參數 k,或者是神經網絡中的層數和學習速率。最好的方法是使用交叉驗證來選擇。

一旦你運用了上述所有方法,你将有很好的機會創造出強大的機器學習系統。但是,你可能也猜到了,成敗在于細節,你可能不得不反複實驗,最後才能走向成功。

轉載于:https://www.cnblogs.com/bonelee/p/6517929.html