在機器學習中,咱們訓練了一個模型,可能會發現這個模型獲得的數據與實際數據誤差太大。這時,一般咱們會在以下辦法中選擇去優化咱們的算法。算法
獲得更多的訓練集;微信
減少特徵的數目;機器學習
嘗試去增長特徵;編輯器
增長多項式;函數
增大 λ;學習
減少 λ。測試
以上這些步驟一般會花費你大量的時間,並且毫無目的地選擇極可能會沒有效果。flex
爲了防止以上的事情發生,減小讓你抓狂的概率,維護世界的和平,咱們須要用到機器學習診斷法(Machine learning diagnostic)去決定如何優化咱們的算法。優化
咱們在訓練機器學習模型時,常常會遇到過擬合問題。但什麼時候是過擬合呢?這就須要咱們來發現,一種方法是經過畫出函數圖像,例以下面這幅圖就能看出是一個過擬合。lua
事實上咱們擬合的函數常常有不少個特徵,致使函數圖像很難畫出,須要另外一種方法——評估假設(Evaluating a Hypothesis)。具體怎麼操做呢?咱們一塊兒來看一下。
咱們擁有以下數據集,須要把這些數據集隨機按 7:3 的比例劃分爲兩類:訓練集和測試集。訓練集用來訓練模型,測試集用來對模型的準確性進行評估。
對於線性迴歸來講,咱們就用測試集的代價函數來評估。
對於邏輯迴歸這種分類問題,咱們除了能夠用測試集的代價函數去解決之外,還能夠用測試偏差來計算。
對於這個函數,咱們能夠這麼理解。若是預測結果與原結果不一致,函數值就爲 1,也就是出現偏差;不然函數值爲 0。最後求測試偏差求平均值獲得最終結果。
對於機器學習,咱們可能選擇各類次數的多項式做爲模型。可是如何肯定多項式的次數纔是一個使人頭痛的問題。
咱們用 d 來表示選擇模型多項式的次數:
選擇完成後,咱們會先用數據集訓練出參數集 θ,根據參數集 θ 計算出對應的代價函數,比較代價函數以後,選擇一個最優的多項式做爲模型。
這時候,咱們的數據集就不能按照以前的原則進行劃分了,要劃分紅 3 部分:訓練集(60%)、交叉驗證集(20%)和測試集(20%)。
首先咱們經過訓練集訓練出參數集 θ,而後根據交叉驗證集選擇出最優的多項式模型,最後經過測試集去評估假設。
ps. 本篇文章是根據吳恩達機器學習課程整理的學習筆記。若是想要一塊兒學習機器學習,能夠關注微信公衆號「SuperFeng」,期待與你的相遇。