1. 程式人生 > >機器學習之抽樣檢查的重要性

機器學習之抽樣檢查的重要性

原文: http://machinelearningmastery.com/why-you-should-be-spot-checking-algorithms-on-your-machine-learning-problems/

和http://machinelearningmastery.com/create-lists-of-machine-learning-algorithms/?utm_content=buffer6c174&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer

這篇文章主要講在面對許多的機器學習演算法,如何快速的選擇比較適合解決你問題的演算法。解決方案: 使用抽樣檢查方法,測試在一些演算法上的效能。在縮小範圍之後,再重點對該型別的演算法及其變種進行深入的實驗分析。

從我作為初學者的角度,我列出之前犯過的錯誤: 
1. 由於掌握知識的不廣泛,懶惰等原因,在解決問題之初,重點測試了一些自己比較在行的演算法,做各種完整的引數測試。 
    不利: 過早優化,花費時間。其實可能有別的演算法更適合這個問題的求解。也有可能是問題本身描述不準確。
    解決方案:調研解決該問題的常見演算法,寫一個自動指令碼, 進行抽樣檢查,在測試之後,挑選合適的演算法,進行重點優化。
2. Favorites are dangerous.  由於人對不熟悉領域的害怕,總是會選擇自己熟悉的演算法,花費許多時間調演算法來解決新的問題。熟不知,你的演算法不一定適合求解該問題。演算法總是有一定適合場景。嘗試過不少論文的演算法,比如求解knn,在我自己的資料集上,傳統的lsh,tree的方法都不太管用。


我們應該:
1. 多熟悉和調研一些演算法。

2. 寫各種演算法的自動指令碼測試資料集。

常見的演算法分類: 

  • Regression algorithms
  • SVM algorithms
  • Data projection algorithms
  • Deep learning algorithms
  • Time series forecasting algorithms
  • Rating system algorithms
  • Recommender system algorithms
  • Feature selection algorithms
  • Class imbalance algorithms
  • Decision tree algorithms

作為計算機視覺的初學者,我們可以也可以列出自己的Image classification, Image segmentation, Image Annotation, Image Retrieval的各個步驟常見演算法。

比如Image Classification algorithms: Feature Representation: (1) bow-of-word : k-means, IFV, vlad, (2) deep learning.  Classification Methods: svm, logistic regression, boosting, random forest.....

3. 採用圖表方法直觀顯示測試結果。

4. 及時新增新的演算法到自動指令碼中。