一,提高機器學習演算法準確度的方法
當我們的機器學習演算法不能準確**我們測試資料時,我們可以嘗試通過以下方法提高我們機器學習的演算法準確度
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,...