機器學習之抽樣檢查的重要性
阿新 • • 發佈:2019-01-09
原文: 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. 及時新增新的演算法到自動指令碼中。