開始接觸一個機器學習的任務時,需要簡單的考慮:
1. 樣本數(shù)據(jù)集多大?
如果樣本集不大,可以考慮用簡單的LR、NB、KNN來解決,因為更復雜的學習算法很可能在樣本集上過擬合,反而不如簡單的分類器取得的效果好。
2. 有多少帶有標注的樣本?
目前的深度學習類有監(jiān)督學習算法對標記樣本的依賴比較嚴重,往往需要大量的相對clean的標記樣本。
無監(jiān)督學習可以獲取數(shù)據(jù)的分布情況,但往往無法精確的量化到可以產(chǎn)品實用的程度。
對于標記樣本很少,而未標記樣本很多的情況,可以考慮使用半監(jiān)督學習的方法。
3. 選取什么樣的特征?
對于分類問題,特征的維度多少會影響分類器的選擇,維度過高可能引起維數(shù)災難,并且減慢訓練測試的速度。維度過低可能會減少特征中的有用分類信息,降低檢測準確率。

Sparse Matrix
另一個需要考慮的問題是特征的稀疏性,高維的稀疏特征是可以采用一些特殊的分析分類方法(利用稀疏矩陣特性)進行解決的,也可以進行降維(PCA、SVD)而不至于損失太多有效特征。
4. Last but not the least -- 樣本的本身屬性
樣本是圖像、音頻或是文本?樣本的特征是否是可量化成數(shù)值的,或是用類別表示的屬性?如果問題可以用簡單的判斷邏輯解決,就沒有必要引入機器學習。
附上scikit-learn數(shù)據(jù)庫關于算法模型選擇的流程圖:

http://scikit-learn.org/stable/tutorial/machine_learning_map/index.html