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


第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,或者是神經網絡中的層數和學習速率。最好的方法是使用交叉驗證來選擇。

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM