機器學習解決問題時的必要關注點

機器學習當然是當今解決衆多任務的有效方法,但實際使用這個方法時依然須要注意幾個問題:算法

1 數據方面

1.1 訓練數據量

須要大量數據,才能讓多數機器學習算法正常工做。即使對於很是簡單的問題,通常也須要數千的樣本,對於複雜的問題,好比圖像或語音識別,可能須要數百萬的樣本。特別是在深度學習中,數據在很大程度上決定了算法的表現。機器學習

1.2 數據分佈狀況

用於訓練的數據須要在很大程度上可以反映真實狀況,即要有表明性。達到這個要求須要注意:若是樣本過小,就會有樣本噪聲(即有必定機率包含沒有表明性的數據),可是即便是很是多的樣本也可能沒有表明性。若是取樣手段錯誤的話,稱爲樣本誤差。性能

1.3 數據質量

即便數據量足夠,而且具備表明性,但若是數據質量不高,那麼這些數據依然稱不上好的數據。一旦訓練數據中的錯誤、異常值和噪聲(錯誤測量致使)太多,系統檢測出潛在規律的難度就會變大,性能就會下降。學習

1.4 特徵工程

系統只有在訓練數據包含足夠相關特徵、少許非相關特徵的狀況下,才能進行有效的學習。機器學習成功的關鍵之一就是是用好的特徵進行訓練。爲了獲得好的特徵所作的工做稱爲特徵工程,具體涉及如下幾項工做:
1 特徵選擇:在全部存在的特徵中選取最有用的特徵進行訓練。
2 特徵提取:組合存在的特徵,生成一個更有用的特徵(如前面看到的,可使用降維算法)。
3 收集新數據建立新特徵。深度學習

2 算法方面

2.1 過擬合

模型在訓練數據上表現很好,可是推廣效果很差。通俗的解釋就是模型將數據中的一些噪聲以及錯誤也學習了,有時也由於選擇的模型過於複雜,擬合能力太強。
能夠考慮如下解決方案:
1 簡化模型,能夠經過選擇一個參數更少的模型(好比使用線性模型,而不是高階多項式模型)、減小訓練數據的屬性數、或限制一下模型
2 收集更多的訓練數據
3 減少訓練數據的噪聲(好比,修改數據錯誤和去除異常值)數據挖掘

限定一個模型以讓它更簡單被稱做正則化(regularization),正則化的度能夠用一個超參數(hyperparameter)控制。超參數是一個學習算法的參數(而不是模型的)。它是不會被學習算法自己影響,在訓練中保持不變。調節超參數是構建優良的機器學習模型中很是重要的一部分。io

2.2 欠擬合

與過擬合相對,欠擬合就是對訓練數據缺少足夠的擬合能力,以致於只學習了數據中不多的規律與知識,甚至根本沒有學到。
能夠考慮如下解決方案:
1 選擇一個更強大的模型,帶有更多參數
2 用更好的特徵訓練學習算法(特徵工程)
3 減少對模型的限制(好比,減少正則化超參數)方法

3 檢驗模型

關於模型檢驗能夠參考「機器學習與數據挖掘」專題下的「k折交叉驗證」一文。

聲明:本文部份內容源於《Sklearn與TensorFlow機器學習實用指南》一書。數據

相關文章
相關標籤/搜索