机器学习入门(2)之模型评估与选择
目錄
一、誤差與擬合
1. 泛化誤差與經驗誤差
2. 損失函數與訓練誤差
3. 過擬合與欠擬合
4. 過擬合的另一種現象:數據泄露
?二、評估方法
1. 留出法
2. 交叉驗證法(留一法)
3. 自助法
4.?調參與最終模型
三、性能度量
1.?混淆矩陣
2.準確率
3.精確率(查準率)和召回率(查全率)
4. F1值和Fβ值
5. ROC曲線及其AUC值
6. AUC值的計算
?7. 代價敏感錯誤率與代價曲線
四、比較檢驗
1.性能比較的三個要素
2.假設檢驗
(1)估計假設精度
(2)采樣理論基礎
?(3)多次訓練/測試的檢驗-t檢驗
(4)交叉驗證 t 檢驗
(5)McNemar 檢驗
(6)Friedman檢驗與 Nemenyi后續檢驗
?五、偏差與方差
一、誤差與擬合
1. 泛化誤差與經驗誤差
泛化誤差:在“未來”樣本上的誤差(generalization error)
經驗誤差:在訓練樣本上的誤差(training error),也稱為訓練誤差
錯誤率 :分類錯誤的樣本數占樣本總數的比例(error)
精度 :1-錯誤率(accuracy)
我有個小問號????
不是說泛化誤差越小越好,那經驗誤差是否越小越好?
當然不是,因為會出現“過擬合”問題
2. 損失函數與訓練誤差
2.1 損失函數
????????損失函數是關于模型計算結果f(x)和樣本實際目標結果y的非負實值函數,記作L(y,f(x)).用它來解釋模型在每個樣本實例上的誤差,損失函數的值越小,說明預測值與實際值越接近,即模型的擬合效果越好. 損失函數主要包括以下幾種: 0-1損失函數、平方損失函數、絕對損失函數、對數損失函數.
?2.2 訓練誤差
????????損失函數僅是對一個樣本而言,模型優化目標函數應當是使全局損失函數最小,即所有樣本的損失函數的均值,其中訓練誤差可表示為:
3. 過擬合與欠擬合
????????在機器學習表現不佳的原因要么是過度擬合或欠擬合數據。
3.1 機器學習中的逼近目標函數過程
????????監督式機器學習通常理解為逼近一個目標函數f,此函數映射輸入變量(X)到輸出變量(Y)得到Y=f(X)
????????這種特性描述可以用于定義分類和預測問題和機器學習算法的領域。
????????從訓練數據中學習目標函數的過程中,我們必須考慮的問題是模型在預測新數據時的泛化性能。泛化好壞是很重要的,因為我們收集到的數據只是樣本,其帶有噪音并且是不完全的。
3.2 機器學習中的泛化
????????在機器學習中,我們描述從訓練數據學習目標函數的學習過程為歸納性的學習。
????????歸納與特別的樣本中學習到通用的概念有關,而這就是監督式機器學習致力于解決的問題。這與推演不同,其主要是另一種解決問題和尋求從通常的規則中找尋特別的內容。
????????泛化即是,機器學習模型學習到的概念在它處于學習的過程中時模型沒有遇見過的樣本時候的表現。
????????好的機器學習模型的模板目標是從問題領域內的訓練數據到任意的數據上泛化性能良好。這讓我們可以在未來對模型沒有見過的數據進行預測。
????????在機器學習領域中,當我們討論一個機器學習模型學習和泛化的好壞時,我們通常使用術語:過擬合和欠擬合.
3.3 統計擬合
????????在統計學中,擬合指的是你逼近目標函數的遠近程度。
????????這個術語同樣可以用于機器學習中,因為監督式機器學習算法的目標也是逼近一個未知的潛在映射函數,其把輸入變量映射到輸出變量。
????????統計學通常通過用于描述函數和目標函數逼近的吻合程度來描述擬合的好壞。
????????這類理論中的一些在機器學習中也是有用的(例如,計算殘差),但是一些技巧假設我們已經知道了我們要逼近的函數。這和機器學習的場景就不同了。
????????如果我們已經知道了目標函數的形式,我們將可以直接用它來做預測,而不是從一堆有噪音的數據中把它費力的學習出來。
3.4 機器學習中的過擬合
????????過擬合指的是模型對于訓練數據擬合程度過當的情況。
????????當某個模型過度的學習訓練數據中的細節和噪音,以至于模型在新的數據上表現很差,我們稱過擬合發生了。這意味著訓練數據中的噪音或者隨機波動也被當做概念被模型學習了。而問題就在于這些概念不適用于新的數據,從而導致模型泛化性能的變差。
????????過擬合更可能在無參數非線性模型中發生,因為學習目標函數的過程是易變的具有彈性的。同樣的,許多的無參數器學習算法也包括限制約束模型學習概念多少的參數或者技巧。
????????例如,決策樹就是一種無參數機器學習算法,非常有彈性并且容易受過擬合訓練數據的影響。這種問題可以通過對學習過后的樹進行剪枝來解決,這種方法就是為了移除一些其學習到的細節。
3.5 機器學習中的欠擬合
????????欠擬合指的是模型在訓練和預測時表現都不好的情況。
????????一個欠擬合的機器學習模型不是一個良好的模型并且由于在訓練數據上表現不好這是顯然的。
????????欠擬合通常不被討論,因為給定一個評估模型表現的指標的情況下,欠擬合很容易被發現。矯正方法是繼續學習并且試著更換機器學習算法。
3.6 機器學習中好的擬合
? ? ? ? 理想上,你肯定想選擇一個正好介于欠擬合和過擬合之間的模型。
????????這就是我們學習的目標,但是實際上很難達到。
????????為了理解這個目標,我們可以觀察正在學習訓練數據機器學習算法的表現。我們可以把這個過程劃分為分別是訓練過程和測試過程。
????????隨著時間進行,算法不斷地學習,模型在訓練數據和測試數據上的錯誤都在不斷下降。但是,如果我們學習的時間過長的話,模型在訓練數據上的表現將繼續下降,這是因為模型已經過擬合并且學習到了訓練數據中的不恰當的細節以及噪音。同時,測試數據集上的錯誤率開始上升,也即是模型的泛化能力在下降。
????????這個完美的臨界點就處于測試集上的錯誤率開始上升時,此時模型在訓練集和測試集上都有良好的表現。
????????你可以用你自己喜愛的機器學習算法來實踐這個實驗。而在實踐中這通常是無用的,因為在測試數據上運用這個技巧來選擇訓練停止的時機,這意味著這個測試集對于我們并不是“不可見的”或者單獨的衡量標準。數據的一些知識(許多有用的知識)已經泄露到了訓練過程。
????????通常有兩種手段可以幫助你找到這個完美的臨界點:重采樣方法和驗證集方法。
?3.7如何限制過擬合
????????過擬合和欠擬合可以導致很差的模型表現。但是到目前為止大部分機器學習實際應用時的問題都是過擬合。
????????過擬合是個問題因為訓練數據上的機器學習算法的評價方法與我們最關心的實際上的評價方法,也就是算法在位置數據上的表現是不一樣的。
當評價機器學習算法時我們有兩者重要的技巧來限制過擬合:
- 使用重采樣來評價模型效能
- 保留一個驗證數據集
????????最流行的重采樣技術是k折交叉驗證。指的是在訓練數據的子集上訓練和測試模型k次,同時建立對于機器學習模型在未知數據上表現的評估。
4. 過擬合的另一種現象:數據泄露
1、數據泄露現象
????????機器學習中還有一個與過擬合非常相似的現象:訓練時模型表現的非常好,但是在真實的預測中表現的很差。這種情況可能是數據泄露。數據泄露又叫特征穿越,指的是在建模過程中的數據收集、處理時不小心將未來信息引入到訓練集中。當把未來信息引入到訓練集中時,模型訓練的效果往往非常好,但真實的預測效果會大打折扣。
?2、數據泄露容易發生的場景
????????數據泄露一般發生在時間序列場景或具有時間屬性的場景中。例如,在金融的信貸領域,建模工程師在取數的時候,誤取到了建模時間點之后的還款信息、表現等。
?3、檢查數據泄露的方法
(1)數據探索性分析
????????查看特征分布和特征與目標之間的關系,并從具體問題角度出發,分析和論證該特征的含義。
(2)特征分析
????????可以進行特征與目標變量的相關性分析,使用一些統計算法,去分析特征的重要性。如果有表現特別突出的特性,需重點檢查。
(3)模型比較
????????詳細的模型性能評估和分析,與之前的版本的模型和行業模型進行對比。
(4)加強測試
????????對模型進行現場測試,查看真實環境的表現與模型訓練效果是否有很大差別。
4、避免出現數據泄露需要注意的點
(1)具有時間屬性的場合要嚴格控制時間,取得所需歷史快照數據,并追溯變量業務的物理含義;
(2)使用特征區分力指標進行直觀檢查,重點檢查區分力強的特征;
(3)當懷疑某個特征有泄露的可能性時,不要使用;
(4)不要使用ID類的變量;
(5)只有在訓練數據集或交叉驗證的訓練組中執行數據信息提取等相關處理方法(特征選擇、異常值刪除、編碼、特征縮放和降維等),交叉驗證時在每個循環周期內獨立進行;
(6)在獨立的、模型完全未見的數據集上進行模型的最終評估;
(7)采取管道方式,使用統一的數據處理方法。
?二、評估方法
????????如何獲得測試結果???
????????在學習得到的模型投放使用之前,通常需要對其進行性能評估。為此, 需使用一個“測試集”(testing set)來測試模型對新樣本的泛化能力,然后以測試集上的“測試誤差”(testing error)作為泛化誤差的近似。
????????而“測試集”的獲得,我們一般假設是從樣本真實分布中獨立采樣獲得的,所以要求測試集和訓練集中的樣本盡量互斥
給定一個已知的數據集,將數據集拆分成訓練集S和測試集T,通常的做法包括:
1. 留出法
?注意:
- 保持數據分布的一致性(例如:分層采樣)
- 多次重復劃分(例如:100次隨機劃分)
- 測試集不能太大、不能太小 (例如:1/5~1/3)
2. 交叉驗證法(留一法)
????????將數據集分層采樣劃分為k個大小相似的互斥子集,每次用k-1個子集的并集作為訓練集,余下的子集作為測試集,最終返回k個測試結果的均值,“k折交叉驗證”(k-fold cross validation)。k最常用的取值是10,其他常用的k值有5、20等。
?????????與留出法類似,將數據集D劃分為k個子集同樣存在多種劃分方式,為了減小因樣本劃分不同而引入的差別,k折交叉驗證通常隨機使用不同的劃分重復p次,最終的評估結果是這p次k折交叉驗證結果的均值,例如常見的“10次10折交叉驗證”。
?假設數據集D包含m個樣本,若令k=m,則得到留一法:
- NFL 定理仍然有效
- 不受隨機樣本劃分方式的影響 ?
- 結果往往比較準確 ?
- 當數據集比較大時,計算開銷難以忍受
3. 自助法
????????以自助采樣法為基礎,對數據集D有放回采樣m次得到訓練集D′ , D\D′用做測試集。
- 訓練集與原樣本集同規模
- 數據分布有所改變
????????約有 36.8% 的樣本不出現,稱為“包外估計”(out-of-bag estimation)
?注意:
- 自助法在數據集較小、難以有效劃分訓練/測試集時很有用
- 從初始數據集中產生多個不同的訓練集,對集成學習有很大的好處
- 由于改變了數據集分布可能引入估計偏差,在數據量足夠時,留出法和交叉驗證法更常用
4.?調參與最終模型
算法的參數:一般由人工設定,亦稱“超參數”
模型的參數:一般由學習確定
調參過程相似:先產生若干模型,然后基于某種評估方法進行選擇
注:參數調得好不好往往對模型最終性能有關鍵影響
區別:訓練集 ?vs. ?測試集 ?vs. 驗證集(validation set)
算法參數選定后,要用“訓練集+驗證集”重新訓練最終模型
模型持久化(model persistence):
- 1.pickle
- 2.joblib
三、性能度量
????????性能度量(performance measure)是衡量模型泛化能力的評價標準,反映了任務需求。
????????使用不同的性能度量往往會導致不同的評判結果
????????什么樣的模型是“好”的,不僅取決于算法和數據,還取決于任務需求。
評價指標:
????????準確率、精確率(查準率)、召回率(查全率)、F1值、ROC曲線的AUC值,都可以作為評價一個機器學習模型好壞的指標(evaluation metrics),而這些評價指標直接或間接都與混淆矩陣有關,前四者可以從混淆矩陣中直接計算得到,AUC值則要通過ROC曲線進行計算,而ROC曲線的橫縱坐標又和混淆矩陣聯系密切,所以在了解這些評價指標之前,先知道什么是混淆矩陣很有必要,也方便記憶。
1.?混淆矩陣
對于一個二分類問題,我們可以得到如表 1所示的的混淆矩陣(confusion matrix):
表 1:混淆矩陣
| Actual class(真實結果) | |||
| positive class(正向) | negative class(負向) | ||
| Predicted class (預測結果) | positive class(正向) | True Positive(TP) | False Positive(FP) |
| negative class(負向) | False Negative(FN) | True Negative(TN) | |
表 1 所示的混淆矩陣中,行表示數據在模型上的預測類別(predicted class/predicted condition),列表示數據的真實類別(actual class/true condition)。在看混淆矩陣時,要分清樣本的真實類別和預測類別,有些地方的行列表示可能和這里不一致。在sklearn中,二分類問題下的混淆矩陣需要分別將表 1 中的predicted class和Actual class對調,將橫縱坐標的positive class和negative class都分別對調,再重新計算混淆矩陣。
通過混淆矩陣,我們可以很直觀地看清一個模型在各個類別(positive和negative)上分類的情況。
表 2:TP、FP、FN、TN
| TP | 真實類別為positive,模型預測的類別也為positive |
| FP | 預測為positive,但真實類別為negative,真實類別和預測類別不一致 |
| FN | 預測為negative,但真實類別為positive,真實類別和預測類別不一致 |
| TN | 真實類別為negative,模型預測的類別也為negative |
????????TP、FP、TN、FN,第二個字母表示樣本被預測的類別,第一個字母表示樣本的預測類別與真實類別是否一致。
查準率(P):被分為正類的樣本中實際為正類的樣本比例。
查全率(R):實際為正類的樣本中被分為正類的樣本比例。
?PR圖:
- 學習器 A 優于 學習器 C
- 學習器 B 優于 學習器 C
- 學習器 A ??? 學習器 B
?BEP:
- 學習器 A 優于 學習器 B
- 學習器 A 優于 學習器 C
- 學習器 B 優于 學習器 C
2.準確率
? 準確率(accuracy)計算公式如下所示:
????????準確率表示預測正確的樣本(TP和TN)在所有樣本(all data)中占的比例。
在數據集不平衡時,準確率將不能很好地表示模型的性能。可能會存在準確率很高,而少數類樣本全分錯的情況,此時應選擇其它模型評價指標。
3.精確率(查準率)和召回率(查全率)
positive class的精確率(precision)計算公式如下:
positive class的召回率(recall)計算公式如下:
????????positive class的精確率表示在預測為positive的樣本中真實類別為positive的樣本所占比例;positive class的召回率表示在真實為positive的樣本中模型成功預測出的樣本所占比例。
????????positive class的召回率只和真實為positive的樣本相關,與真實為negative的樣本無關;而精確率則受到兩類樣本的影響。
4. F1值和Fβ值
F1度量:基于查準率和查全率的調合平均(harmonic mean)
F1值的計算公式如下:
F1值就是精確率和召回率的調和平均值,F1值認為精確率和召回率一樣重要。
?若對查準率/查全率有不同偏好:
Fβ值的計算公式如下:
- 在β=1時,Fβ就是F1值,此時Fβ認為精確率和召回率一樣重要
- 當β>1時,Fβ認為召回率更重要
- 當0<β<1時,Fβ認為精確率更重要。
- 除了F1值之外,常用的還有F2和F0.5。
5. ROC曲線及其AUC值
AUC全稱為Area Under Curve,表示一條曲線下面的面積,ROC曲線的AUC值可以用來對模型進行評價。ROC曲線如圖所示:
?ROC曲線
(注:圖片摘自https://en.wikipedia.org/wiki/Receiver_operating_characteristic)
ROC曲線的縱坐標True Positive Rate(TPR)在數值上就等于positive class的recall,記作recallpositive,橫坐標False Positive Rate(FPR)在數值上等于(1 - negative class的recall),記作(1 - recallnegative)如下所示:
????????通過對分類閾值θθ(默認0.5)從大到小或者從小到大依次取值,我們可以得到很多組TPR和FPR的值,將其在圖像中依次畫出就可以得到一條ROC曲線,閾值θ取值范圍為[0,1]。
????????通過對分類閾值θ(默認0.5)從大到小或者從小到大依次取值,我們可以得到很多組TPR和FPR的值,將其在圖像中依次畫出就可以得到一條ROC曲線,閾值θ取值范圍為[0,1]。
????????ROC曲線在圖像上越接近左上角(0,1)模型越好,即ROC曲線下面與橫軸和直線FPR = 1圍成的面積(AUC值)越大越好。直觀上理解,縱坐標TPR就是recallpositive值,橫坐標FPR就是(1 - recallnegative),前者越大越好,后者整體越小越好,在圖像上表示就是曲線越接近左上角(0,1)坐標越好。
- 理想模型是真正例率為100%,假正例率為0%的一點。
- 隨機猜測模型則是真正例率與假正例率持平的直線。
- 由此可知,在隨機猜測模型左上方的曲線和在其右下方的曲線都代表了什么。(右下方的模型,還不如隨機猜測準。)
- 性能度量的方法:繪制ROC曲線
- 當曲線沒有交叉的時候:外側曲線的學習器性能優于內側;
- 當曲線有交叉的時候:比較ROC面積,即AUC。
6. AUC值的計算
????????AUC(Area under Curve):Roc曲線下的面積,介于0.1和1之間AUC作為數值可以直觀的評價分類器的好壞,值越大越好。
????????首先AUC值是一個概率值,當你隨機挑選一個正樣本以及負樣本,當前的分類算法根據計算得到的Score值將這個正樣本排在負樣本前面的概率就是AUC值,AUC值越大,當前分類算法越有可能將正樣本排在負樣本前面,從而能夠更好地分類。
方法一 :定義法
????????從定義可知,AUC可通過ROC曲線下各部分的面積求和而得。假定ROC曲線是由坐標為{(x1,y1), {(x2,y2),…,{(xm,ym)}的點按序連接而形成(x1=0, xm=1),則AUC可估算為:
AUC=0.75?
方法二 :排序損失法
????????形式化地看,AUC考慮的是樣本預測的排序質量,因此它與排序誤差有緊密聯系。給定m^+個正例和m^?個反例,令D^+和D^?分別表示正、反例集合,則排序“損失”(loss)定義為:
?所以:AUC=1-0.25=0.75
?方法三 :排序收益法
?方法四 :排序法
- ri :第i條樣本的序號(概率得分從大到小排序,排在第r個位置)
- n0,n1:負樣本和正樣本的個數
?7. 代價敏感錯誤率與代價曲線
?????????為均衡不同類型錯誤所造成的不同損失,可為錯誤賦予“非均等代價”(unequal cost)
?????????以二分類為例,引入了“代價矩陣”(cost matrix):
?在非均等錯誤代價下,我們希望的是最小化“總體代價”,這樣“代價敏感”的錯誤率:
?????????同樣對于ROC曲線,在非均等錯誤代價下,演變成了“代價曲線”,代價曲線橫軸是取值在[0,1]之間的正例概率代價,式中p表示正例的概率,縱軸是取值為[0,1]的歸一化代價。
?代價曲線的繪制:
- ROC曲線上取一個點(FPR,TPR);
- 取相應的(0,FPR)和(1,FNR),連成線段;
- 取遍ROC曲線上所有點并重復前步驟;
- 所有線段的下界就是學習器期望總體代價。
- 實際上就是通過將樣例為正例的概率p設為0和1,來作出曲線的所有切線,最后連成曲線。
四、比較檢驗
1.性能比較的三個要素
1.希望比較的和實際獲得的性能并不相同,兩者對比結果也可能不會相同。
?2.測試集的性能與測試集本身的選擇有很大關系,也就是說,測試數據好,性能就好,數據不好,性能也跟著不好。
?3. 很多機器學習算法都具有隨機性,相同的參數、相同的測試集,運行多次,結果卻不同。
注:?直接選取相應評估方法在相應度量下比大小的方法不可取!
2.假設檢驗
由于泛化錯誤率與測試錯誤率比較接近,因此,可根據測試錯誤率估推出泛化錯誤率的分布。
泛化錯誤率為? 學習器被測得測試錯誤率為? ^ 的概率:
?比較檢驗的重要方法是統計假設檢驗
????????數理統計學中根據一定假設條件由樣本推斷總體的一種方法。 在總體的分布函數完全未知或已知其形式,但不知其參數的情況,為了推斷總體的某些未知特性,提出某些關于總體的假設。我們要根據樣本對所提出的假設作出是接受還是拒絕的決策。
假設檢驗四步走:
- 1、條件:滿足情況。(總體的分布函數完全未知或已知其形式,但不知其參數)
- 2、目標:以推斷總體的某些未知特性為目標。
- 3、方法:提出某些關于總體的假設。
- 4、行動:根據樣本對所提出的假設作出是接受還是拒絕的決策
問題:假設檢驗在機器學習的【比較檢驗】中究竟如何應用呢?
分為四步加以分析:
(1)估計假設精度
在評估一個假設時,我們一般更感興趣: ? ?
????????估計其對未來實例的分類精度 ? ? 知道這一精度估計中的可能的誤差(即與此估計相聯系的誤差門限)
定義學習問題的框架如下:
????????有一多有可能實例的空間X,其上定義了多個目標函數。假定X中不同實例具有不同的出現頻率,即存在一個未知的概率分布D。學習任務是在假設空間H上學習一個目標函數f。
確切區分兩種精度(或兩種錯誤率):
離散值假設的置信區間:
要基于某離散值假設h 在樣本S 上觀察到的樣本錯誤率,估計 它的真實錯誤率,其中:
樣本S 包含n 個樣例,它們的抽取按照概率分布D,抽取過程是相互獨立的,并且不依賴于h
n≥30
假設h 在這n 個樣例上犯了r 個錯誤(errorS(h)=r/n)
(2)采樣理論基礎
????????測量樣本錯誤率相當于在作一個有隨機輸出的實驗。我們先從分布D 中隨機抽取出n 個獨立的實例,形成樣本S,然后測量樣本錯誤率errorS(h) ,如果將實驗重復多次,每次抽取大小為n 的不同的樣本Si,將可以得到不同的errorSi(h)的值,它取決于不同Si 的組成中的隨機差異。這種情況下,第i 個這樣的實驗的輸出errorSi(h)被稱為一隨機變量(random variable)。一般情況下,可以將隨機變量看成一個有隨機輸出的實驗。
????????設想要運行 k 個這樣的隨機實驗,測量隨機變量errorS1(h) ,errorS2(h),??,errorSk(h)。 然后我們以圖表的形式顯示出觀察到的每個錯誤率值的頻率。當k 不斷增長,該圖表將呈現二項分布。
?即對于足夠大的樣本,二項分布可以很好地由正態分布來近似:
置信區間:某個參數 p 的N%置信區間是一個以N%的概率包含p 的區間
推導置信區間的一般方法:
?在包含了 m 個樣本的測試集上,【泛化錯誤率為?的學習器】被測得測試錯誤率為? ? 的概率為:
?給定泛化錯誤率后,測試錯誤率與樣本數的乘積(即測試錯誤數)是一個典型的二項分布
?(3)多次訓練/測試的檢驗-t檢驗
?
?考慮到這 k個測試錯誤率可以看做泛化錯誤率?的獨立采樣,則變量:
?服從自由度為 k?1的t分布。
(4)交叉驗證 t 檢驗
對兩個學習器A和B,使用 k 折交叉驗證法得到的測試錯誤率分別為? i A \epsilon_i^A?iA?和? i B \epsilon_i^B?iB?。
對 k 折交叉驗證產生的 k 對測試錯誤率:先對每對結果求差,Δ i = ? i A ? ? i B \Delta_i=\epsilon_i^A-\epsilon_i^BΔi?=?iA???iB?, 若兩個學習器性能相同,則差值均值班為零。對"學習器 A 與 B 性能相同"這個假設做 t 檢驗,在顯著度 α 下,若變量為:
小于臨界值則假設不能被拒絕,即認為兩個學習器的性能沒有顯著差差別; 否則可認為兩個學習器的性能有顯著差別,且平均錯誤率較小的那個學習 器性能較優。
(5)McNemar 檢驗
學習器 A 和 B 的測試錯誤率列聯表為:
我們可以構建自由度為 1 的 χ2 分布,
(6)Friedman檢驗與 Nemenyi后續檢驗
????????為解決一組數據集上的多個算法比較,我們構建基于算法排序的Friedman 檢驗。
????????N是數據集的個數,k是算法的個數。在 k 和 N 都較大時,服從自由度為 k-1 的 χ2 分布.
常用的Friedman 檢驗為:
????????若"所有算法的性能相同"這個假設被拒絕,則說明算法的性能顯著不同.這時需進行"后續檢驗" (post-hoc test)來進一步區分各算法.常用的有 Nemenyi 后續檢驗。
Nemenyi 檢驗計算出平均序值差別的臨界值域:
?五、偏差與方差
?偏差:指的是預測的期望值與真實值的偏差,度量了學習算法的期望預測與真實結果的偏離程度,即刻畫了學習算法本身的擬合能力;(準確度)
方差:每一次預測值與預測值的期望之間的差均方,度量了同樣大小的訓練集的變動所導致的學習性能的變化,即刻畫了數據擾動所造成的影響;(穩定性)
噪聲:表達了在當前任務上任何學習算法所能達到的期望泛化誤差的下界,即刻畫了學習問題本身的難度。(難度)
偏差一方差分解說明,泛化性能是由學習算法的能力、數據的充分性以及學習任務本身的難度所共同決定的。?
偏差-方差窘境:
此圖說明了什么問題呢?
?????????給出了尋找最優平衡點的數學描述。若模型復雜度大于平衡點,則模型的方差會偏高,模型傾向于過擬合;若模型復雜度小于平衡點,則模型的偏差會偏高,模型傾向于欠擬合。
總結
以上是生活随笔為你收集整理的机器学习入门(2)之模型评估与选择的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java cookie安全_cookie
- 下一篇: 奇异值分解SVD(证明全部省略)