第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