機器學習固然是當今解決眾多任務的有效方法,但實際使用這個方法時依然需要注意幾個問題:
1 資料方面
1.1 訓練資料量
需要大量資料,才能讓多數機器學習演算法正常作業,即便對于非常簡單的問題,一般也需要數千的樣本,對于復雜的問題,比如影像或語音識別,可能需要數百萬的樣本,特別是在深度學習中,資料在很大程度上決定了演算法的表現,
1.2 資料分布情況
用于訓練的資料需要在很大程度上能夠反映真實情況,即要有代表性,達到這個要求需要注意:如果樣本太小,就會有樣本噪聲(即有一定概率包含沒有代表性的資料),但是即使是非常多的樣本也可能沒有代表性,如果取樣手段錯誤的話,稱為樣本偏差,
1.3 資料質量
即使資料量足夠,并且具有代表性,但如果資料質量不高,那么這些資料依然稱不上好的資料,一旦訓練資料中的錯誤、例外值和噪聲(錯誤測量導致)太多,系統檢測出潛在規律的難度就會變大,性能就會降低,
1.4 特征工程
系統只有在訓練資料包含足夠相關特征、少量非相關特征的情況下,才能進行有效的學習,機器學習成功的關鍵之一就是是用好的特征進行訓練,為了得到好的特征所做的作業稱為特征工程,具體涉及以下幾項作業:
1 特征選擇:在所有存在的特征中選取最有用的特征進行訓練,
2 特征提取:組合存在的特征,生成一個更有用的特征(如前面看到的,可以使用降維演算法),
3 收集新資料創建新特征,
2 演算法方面
2.1 過擬合
模型在訓練資料上表現很好,但是推廣效果不好,通俗的解釋就是模型將資料中的一些噪聲以及錯誤也學習了,有時也因為選擇的模型過于復雜,擬合能力太強,
可以考慮以下解決方案:
1 簡化模型,可以通過選擇一個引數更少的模型(比如使用線性模型,而不是高階多項式模型)、減少訓練資料的屬性數、或限制一下模型
2 收集更多的訓練資料
3 減小訓練資料的噪聲(比如,修改資料錯誤和去除例外值)
限定一個模型以讓它更簡單被稱作正則化(regularization),正則化的度可以用一個超引數(hyperparameter)控制,超引數是一個學習演算法的引數(而不是模型的),它是不會被學習演算法本身影響,在訓練中保持不變,調節超引數是構建優良的機器學習模型中非常重要的一部分,
2.2 欠擬合
與過擬合相對,欠擬合就是對訓練資料缺乏足夠的擬合能力,以至于只學習了資料中很少的規律與知識,甚至根本沒有學到,
可以考慮以下解決方案:
1 選擇一個更強大的模型,帶有更多引數
2 用更好的特征訓練學習演算法(特征工程)
3 減小對模型的限制(比如,減小正則化超引數)
3 檢驗模型
關于模型檢驗可以參考“機器學習與資料挖掘”專題下的“k折交叉驗證”一文,
宣告:本文部分內容源于《Sklearn與TensorFlow機器學習實用指南》一書,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/33749.html
標籤:其他
上一篇:在三線城市作業爽嗎?
