機器學習公開課筆記第五週之優化機器學習演算法

2022-03-17 11:03:21 字數 2605 閱讀 8293

一,提高機器學習演算法準確度的方法

當我們的機器學習演算法不能準確**我們測試資料時,我們可以嘗試通過以下方法提高我們機器學習的演算法準確度

1),獲得更多的訓練樣例

2),減少特徵數

3),增加特徵數

4),增加多項式特徵

5),增大或減小\(\lambda\)

二,評估機器學習模型

如果只是單獨的使用乙個訓練集,我們並不能很好的評估機該器學習的演算法到底準不準確,因為有可能是過度擬合(overfitting),我們可以通過把測試集分成兩個資料集

取70%作為訓練集,30%作為測試集

1),用訓練集來學習,獲得使\(j(\theta)\)最小的\(\theta\)

2),用測試集評估該該演算法的準確度

評估演算法準確度的方法

1),線性回歸,\(j_(\theta) = \dfrac} \sum_^}(h_\theta(x^_) - y^_)^2\)

2),邏輯回歸,\(err(h_\theta(x),y) = \begin 1 & \mbox h_\theta(x) \geq 0.5\ and\ y = 0\ or\ h_\theta(x) < 0.5\ and\ y = 1\newline 0 & \mbox otherwise \end\)

\(\text = \dfrac} \sum^}_ err(h_\theta(x^_), y^_)\)

三,機器學習演算法模型的選擇

如果有多個機器學習演算法模型可供選擇,可以把資料集分成三部分,60%訓練集,20%交叉驗證即,20%測試集

1),用訓練集來學習,獲得各個模型使\(j(\theta)\)最小的\(\theta\)

2),選出使交叉驗證集測試誤差最小的模型

3),用測試集評估出第二步所選模型的泛化誤差看是否符合我們的要求

四,偏差(bias or underfitting)和方差(variance or overfitting)

當我們的機器學習模型不能滿足我們的要求時,我們改如何提高模型的準確性?雖然有很多方法,但總不能依次嘗試,所有方法要麼解決高方差要麼解決高偏差,所以我們先判斷我們的模型是高偏差還是高方差

五,正則化引數\(\lambda\)的選取

\(\lambda\)的取值對線性回歸模型的影響如下圖所示

\(\lambda\)太大,偏差高,太小,方差高

選取合適的\(lambda\):

1),建立可供選擇的\(lambda\)的陣列 (i.e. λ∈)

2),建立帶有不同特徵和多項式的次方(degree的大小)的模型集合

3),組合模型集合的模型和\(lambda\)陣列的選值,求出\(\theta\)集合

4),在不加正則化的情況下,選出使\(j_\)最小的的\(\theta\)

5),找出第4步所對應的\(lambda\)和模型組合

6),求出\(j_\)是否符合自己需求

六,學習曲線(learning curve)

我們還可以通過學習曲線來判斷演算法模型是高偏差還是高方差

1) 高偏差

當訓練資料較少時, \(j_^  \) 非常小  \(j_^  \)非常大

所以當學習模型處於高偏差時,增加訓練資料並沒有用,如下圖所示

2) 高方差

當訓練資料較少時, \(j_^  \) 非常小  \(j_^  \)非常大

當訓練資料增多時,\(j_^  \) 變大, \(j_^  \)變小,但是\(j_^ > j_^\),而且他們之間的差距相當明顯

所以當學習模型處於高方差時,增加訓練資料很有用,如下圖所示

七,根據高偏差還是高方差提高機器學習演算法準確度的方法

當我們的機器學習演算法不能準確**我們測試資料時,我們可以嘗試通過以下方法提高我們機器學習的演算法準確度

1),獲得更多的訓練樣例\(\rightarrow\)修正高方差

2),減少特徵數\(\rightarrow\)修正高偏差

3),增加特徵數\(\rightarrow\)修正高方差

4),增加多項式特徵\(\rightarrow\)修正高方差

5),增大\(\lambda \rightarrow\)修正高偏差

6),減小\(\lambda \rightarrow\)修正高方差

八,神經網路的偏差

輸入層引數太少會高偏差,計算複雜度低

輸入層引數太多會高方差,但可以通過正則化解決,計算複雜度高

使用一層隱藏層是標配,但可以通過增加不同隱藏層數來計算\(j_^\)去交叉驗證,然後選擇最優方案

總結:高偏差和高方差是機器學習模型的兩端,優秀的機器學習演算法模型總是能平衡方差和偏差

交叉驗證來選取模型,測試資料評估演算法優劣,學習曲線找出模型問題所在,根據問題是高偏差還是高方差選取解決方案

機器學習公開課筆記第五週之機器學習系統設計

以設計垃圾郵件分類器為例,當我們設計機器學習演算法時,先在24小時內設計出乙個簡單的演算法,跑一遍訓練資料,再根據資料的反饋結果 高偏差,高方差,或對某一類資料誤判比例過高等等 調整我們的演算法,反覆迭代優化 一,提取特徵 從大量垃圾郵件訓練資料中找出出現頻率最高的10,000到50,000個單詞,...

機器學習公開課筆記第七週之K均值法

一,無監督學習 unsupervised learning 無監督學習就是給定一系列沒有標籤的訓練資料,找出訓練資料之間的關係,最典型的就是聚類演算法 clustering algorithm 無監督學習的工程應用 二,k均值法 k means algorithm 1,k均值法是常用聚類演算法之一,...

機器學習公開課筆記 2 多元線性回歸

一元線性回歸只有乙個特徵 x 而多元線性回歸可以有多個特徵 x 1,x 2,ldots,x n 假設 hypothesis h theta x theta tx theta 0x 0 theta 1x 1 ldots theta nx n 引數 parameters theta 0,theta 1,...