1. 程式人生 > >機器學習模型效能評估方法筆記

機器學習模型效能評估方法筆記

模型效能評估綜述

對於模型效能的評估,我們通常分為一下三步:
1. 對資料集進行劃分,分為訓練集和測試集兩部分;
2. 對模型在測試集上面的泛化效能進行度量;
3. 基於測試集上面的泛化效能,依據假設檢驗來推廣到全部資料集上面的泛化效能

資料集的劃分

對於模型來說,其在訓練集上面的誤差我們稱之為“訓練誤差”或者“經驗誤差”,而在測試集上的誤差稱之為“測試誤差”。因為測試集是用來測試學習期對於新樣本的學習能力的,因此我們可以把測試誤差作為泛化誤差的近似(泛化誤差:在新樣本上的誤差)。對於我們來說,我們更care的是模型對於新樣本的學習能力,即我們希望通過對已有樣本的學習,儘可能的將所有潛在樣本的普遍規律學到手,而如果模型對訓練樣本學的太好,則有可能把訓練樣本自身所具有的一些特點當做所有潛在樣本的普遍特點,這時候我們就會出現“過擬合”

的問題。
因此在這裡我們通常將已有的資料集劃分為訓練集和測試集兩部分,其中訓練集用來訓練模型,而測試集則是用來評估模型對於新樣本的判別能力。對於資料集的劃分,我們通常要保證滿足一下兩個條件:
1. 訓練集和測試集的分佈要與樣本真實分佈一致,即訓練集和測試集都要保證是從樣本真實分佈中獨立同分布取樣而得;
2. 訓練集和測試集要互斥
基於以上兩個條件我們主要由三種劃分資料集的方式:留出法,交叉驗證法和自助法

留出法

留出法是直接將資料集D劃分為兩個互斥的集合,其中一個集合作為訓練集S,另一個作為測試集T,我們需要注意的是在劃分的時候要儘可能保證資料分佈的一致性,即避免因資料劃分過程引入額外的偏差而對最終結果產生影響。
為了保證資料分佈的一致性,通常我們採用分層取樣

的方式來對資料進行取樣。假設我們的資料中有m1個正樣本,有m2個負樣本,而S佔D的比例為p,那麼T佔D得比例即為1p,我們可以通過在m1個正樣本中採m1p個樣本作為訓練集中的正樣本,而通過在m2個負樣本中採m2p個樣本作為訓練集中的負樣本,其餘的作為測試集中的樣本。
但是樣本的不同劃分方式會導致模型評估的相應結果也會有差別,例如如果我們把正樣本進行了排序,那麼在排序後的樣本中取樣與未排序的樣本取樣得到的結果會有一些不同,因此通常我們都會進行多次隨機劃分、重複進行實驗評估後取平均值作為留出法的評估結果。
留出法的缺點:對於留出法,如果我們的對資料集D劃分後,訓練集S中的樣本很多,接近於D,其訓練出來的模型與D本身訓練出來的模型可能很接近,但是由於T比較小,這時候可能會導致評估結果不夠準確穩定;如果S樣本很少,又會使得訓練出來的樣本與D所訓練出來的樣本相差很大。通常,會將D中大約2
/34/5
的樣本作為訓練集,其餘的作為測試集。

交叉驗證法

k折交叉驗證通常把資料集D分為k份,其中的k-1份作為訓練集,剩餘的那一份作為測試集,這樣就可以獲得k組訓練/測試集,可以進行k次訓練與測試,最終返回的是k個測試結果的均值。這裡資料集的劃分依然是依據分層取樣的方式來進行。對於交叉驗證法,其k值的選取往往決定了評估結果的穩定性和保真性。通常k值選取10。與留出法類似,通常我們會進行多次劃分得到多個k折交叉驗證,最終的評估結果是這多次交叉驗證的平均值。
當k=1的時候,我們稱之為留一法,我們可以發現留一法並不需要多次劃分,因為其劃分方式只有一種,因為留一法中的S與D很接近,因此S所訓練出來的模型應該與D所訓練出來的模型很接近,因此通常留一法得到的結果是比較準確的。但是當資料集很大的時候,留一法的運算成本將會非常的高以至於無法忍受。

自助法

留出法與交叉驗證法都是使用分層取樣的方式進行資料取樣與劃分,而自助法則是使用有放回重複取樣的方式進行資料取樣,即我們每次從資料集D中取一個樣本作為訓練集中的元素,然後把該樣本放回,重複該行為m次,這樣我們就可以得到大小為m的訓練集,在這裡面有的樣本重複出現,有的樣本則沒有出現過,我們把那些沒有出現過的樣本作為測試集。進行這樣取樣的原因是每個樣本不被採到的概率為11m,那麼經過m次取樣,該樣本都不會被採到的概率為(11m)m,那麼取極限有limm(11m)m1e0.368,因此我們可以認為在D中約有36.8%的資料沒有在訓練集中出現過
這種方法對於那些資料集小、難以有效劃分訓練/測試集時很有用,但是由於該方法改變了資料的初始分佈導致會引入估計偏差。

總結

  1. 對於資料量充足的時候,通常採用留出法或者k折交叉驗證法來進行訓練/測試集的劃分;
  2. 對於資料集小且難以有效劃分訓練/測試集時使用自助法
  3. 對於資料集小且可有效劃分的時候最好使用留一法來進行劃分,因為這種方法最為準確

效能度量

對於模型的效能度量,我們通常用一下幾種方法來進行度量:
1. 錯誤率/精度(accuracy)
2. 準確率(查準率,precision)/召回率(查全率,recall)
3. P-R曲線,F1度量
4. ROC曲線/AUC(最常用)
5. 代價曲線
接下來,我們將會更加詳細的來介紹這些概念以及那些度量方法是最常用的。

錯誤率/精度(accuracy)

假設我們擁有m個樣本個體,那麼該樣本的錯誤率為:

e=1mi=1mI(f(xi)yi)或者e=xDI(f(x)y)p(x)dx即分類錯誤的樣本數佔總樣本數的個數,精度即為1e

準確率/召回率(查全率)

=
=
我們將準確率記為P,召回率記為R,通過下面的混淆矩陣我們有
這裡寫圖片描述
其中,TP(true positive),FP(false positive),FN(false negative),TN(true negative)
P=TPTP+FP
R=TPTP+FN
通過上面對準確率和召回率的描述我們可以發現,準確率更care的是在已經預測為真的結果中,預測正確的比例,這時候我們可以發現如果我們預測為真的個體數越少,準確率越高的可能性就會越大,即如果我們只預測最可能為真的那一個個體為真,其餘的都為假,那麼這時候我們的準確率很可能為100%,但此時召回率就會很低;而召回率care的是在所有為真的個體中,被預測正確的個體所佔的比例,那麼可以看到如果我們預測為真的個體越多,那麼召回率更高的可能性就會越大,即如果我們把所有的個體都預測為真,那麼此時的召回率必然為100%,但是準確率此時就會很低。因此這兩個度量往往是相互對立的,即準確率高則召回率通常比較低,召回率高則準確率往往會很低。因此我們分別用準確率或召回率對模型的預測結果進行評價會有片面性,故接下來介紹P-R曲線來對模型進行更準確的評價。

P-R曲線/F1度量

P-R曲線是以召回率R為橫軸,準確率P為縱軸,然後根據模型的預測結果對樣本進行排序,把最有可能是正樣本的個體排在前面,而後面的則是模型認為最不可能為正例的樣本,再按此順序逐個把樣本作為正例進行預測並計算出當前的準確率和召回率得到的曲線。
這裡寫圖片描述
通過上圖我們可以看到,當我們只把最可能為正例的個體預測為正樣本時,其準確率最高位1.0,而此時的召回率則幾乎為0,而我們如果把所有的個體都預測為正樣本的時候,召回率為1.0,此時準確率則最低。但是我們如何通過PR曲線來判斷哪個模型更好呢?這裡有以下集中判斷方式:

  • 基於曲線是否覆蓋來進行判斷。即如果模型B的PR曲線此時完全包住了模型C的PR曲線,此時我們認為模型B對於該問題更優於模型C,這也可以理解,因為在相同召回率的情況下,模型B的準確率要比模型C的更高,因此B必然更優一些。但是這種方法在曲線有交叉的時候不好判斷;
  • 基於平衡點來進行判斷。平衡點即為召回率與準確率相等的點,如果該點的值越大,則認為模型越優,但這樣的判斷過於簡單;
  • 利用F1度量來進行判斷。F1=2PRP+RF1的值越大越好,可以發現,F1是一個準確率和召回率的調和平均數,其更care較小值,因此如果P與R中一個值太小會對F1產生更大的影響,但是這樣的判斷都是以準確率和召回率同等重要為基礎的,但是對於很多問題,其會更care其中的一個指標,例如癌症的判斷,其更關注的是召回率而不是準確率,因為如果我們更關注準確率,就會使得很多的癌症患者被誤診為不是癌症,從而造成患者的死亡率會更高;
  • 利用Fβ來判斷。 Fβ=(1+β2)PRβ2P+R,當

    相關推薦

    機器學習模型效能評估方法筆記

    模型效能評估綜述 對於模型效能的評估,我們通常分為一下三步: 1. 對資料集進行劃分,分為訓練集和測試集兩部分; 2. 對模型在測試集上面的泛化效能進行度量; 3. 基於測試集上面的泛化效能,依據假設檢驗來推廣到全部資料集上面的泛化效能 資料集的劃

    機器學習演算法:交叉驗證——(監督)學習效能評估方法 [ sklearn.model_selection.cross_val_score()官方翻譯 ]

    交叉驗證——(監督)學習器效能評估方法 一、思考:交叉驗證有什麼好值得我們使用的? 每個演算法模型都需要經過兩個階段:訓練和驗證。 1) 一般情況下的,我們用的方法是:將原始資料集分為 訓練資料集 & 測試資料集。 優點:是,但僅僅是思路正確。 缺點:思

    解釋機器學習模型的一些方法(三)——理解復雜的機器學習模型

    p s 結果 origin 得出 驗證 場景 這樣的 機器 發的 在這一部分中我們所要展現的技術,可以為非線性、非單調的響應函數生成解釋。我們可以把它們與前兩部分提到的技巧結合起來,增加所有種類模型的可解釋性。實踐者很可能需要使用下列增強解釋性技巧中的一種以上,為他們手中

    機器學習中的評估方法

    1. 評估方法 (1)留出法: 定義:直接將集合劃分為兩個互斥的集合,其中一個作為訓練集合,一個作為測試集合 注意: (a)測試集合和訓練集合儘可能保持資料分佈的一致性,比如要保證正反樣本的比例不變(這是一種導致過擬合的原因) (b)在給定了訓練/測試集合的樣本比例之後,仍

    機器學習模型評估方法

    實際的機器學習專案中,我們往往只知道包含m個樣例的資料集D,D={(x1,y1),(x2,y2),(x3,y3),...(xm,ym)},通過對資料集D進行適當的處理,劃分為訓練集和測試集,訓練集構建模型,然後用該模型計算測試資料集的測試誤差,最後以測試集的測試誤差近似為模型的泛化能力,根據泛化

    機器學習 scikit-learn5 - 預測貸款使用者是否會逾期 - 模型效能評估

    文章目錄 核心程式碼 程式碼使用方法 資料輸出的程式碼 繪圖的程式碼 模型效能評估 疑問 核心程式碼 程式碼路徑 https://github.com/spareribs/kaggleSparer

    評估機器學習模型的幾種方法(驗證集的重要性)

    評估機器學習模型的幾種方法(驗證集的重要性) 什麼是評估機器學習模型       機器學習的目的是得到可以泛化(generalize)的模型,即在前所未見的資料上表現很好的模型,而過擬合則是核心難點。你只能控制可以觀察的事情,所以能夠可靠地衡量模型的泛化能力非常

    機器學習——模型測試與評估方法與指標

    評估模型的方法與指標            3.mAP4.IOU 1.P-R曲線 查準率(precision)-------P-R曲線的縱座標 查全率,召回率(recall)------------P-R曲線的橫座標 對於二分類問題,可以將樣例根據其真實

    機器學習:一種提升預測能力的方法-機器學習模型

    範圍 和集 最重要的 機器 免費 現實 良好的 例子 永恒 機器不學習 jqbxx.com -機器學習好網站 沒有哪個機器學習模型可以常勝,如何找到當前問題的最優解是一個永恒的問題。 幸運的是,結合/融合/整合 (integration/ combinat

    如何評估一個機器學習模型

    為什麼需要評估模型 評估訓練出的模型是準確預測的關鍵。訓練出的模型是建立在總資料的子集上的,其被稱為訓練資料,訓練結束後該模型將被用於預測其它新資料。 通過訓練集產生的模型,利用測試資料來進行模型效果的評估,評估結果以模型評估報告的形式呈現,在報告中通過AUC值、模型準確率、模型召回率等一系

    機器學習機器學習模型訓練與測試評估

    模型訓練 模型選擇 對於特定任務最優建模方法的選擇或者對特定模型最佳引數的選擇 交叉驗證 在訓練資料集上執行模型(演算法)並且在測試資料集上測試效果,迭代 更新資料模型的修改,這種方式被稱為“交叉驗證”(將資料分為訓練集 和 測試集),使用訓練集構建模型

    機器學習----模型評估與選擇

    第二章-模型評估與選擇 一、概覽:對於同一資料集而言,給定不同的演算法,會提取不同的模型,甚至對於同一演算法給定不同的引數,也會得到不同的模型,選擇最佳的模型的過程稱為模型選擇。模型選擇會遵循一定的標準,首先需要將資料集分成若干部分,一部分用於訓練模型,一部分用於測試模型的

    [機器學習]模型評估:ROC,AUC,KS,GINI,Lift,Gain 總結

    中文,英文,簡稱   在模型建立之後,必須對模型的效果進行評估,因為資料探勘是一個探索的過程,評估-優化是一個永恆的過程。在分類模型評估中,最常用的兩種評估標準就是KS值和GINI, AUC值. 可能有人會問了,為什麼不直接看正確率呢?你可以這麼想,如果一批樣本中,正樣本佔

    機器學習 模型評估中的 精確率、召回率、F1、ROC、AUC

    文章目錄 1 混淆矩陣 1.2 多分類的例子 2.2 二分類的例子 2.3 二分類真實數值計算 2 各類指標的優缺點 1 混淆矩陣 準確率對於分類器的效能分析來說,並不是一個很好地衡量指標,因為如果資料

    機器學習模型的評價指標和方法

    衡量分類器的好壞 對於分類器,或者說分類演算法,評價指標主要有accuracy, [precision,recall,巨集平均和微平均,F-score,pr曲線],ROC-AUC曲線,gini係數。 對於迴歸分析,主要有mse和r2/擬合優度。 分類模型的評估 機

    R語言︱機器學習模型評估方案(以隨機森林演算法為例)

          筆者寄語:本文中大多內容來自《資料探勘之道》,本文為讀書筆記。在剛剛接觸機器學習的時候,覺得在監督學習之後,做一個混淆矩陣就已經足夠,但是完整的機器學習解決方案並不會如此草率。需要完整的評價模型的方式。      常見的應用在監督學習演算法中的是計算平均絕對誤差(

    機器學習模型評估與選擇

    作者:WenWu_Both 出處:http://blog.csdn.net/wenwu_both/article/ 版權:本文版權歸作者和CSDN部落格共有 轉載:歡迎轉載,但未經作者同意,必須保留此段宣告;必須在文章中給出原文連結;否則必究法律責任

    特徵工程和模型融合--機器學習--思維導圖和筆記(29)

    一、思維導圖(點選圖方法) 二、補充筆記 (1)常見的特徵工程主要指對各種型別的特徵進行處理,包括數值型特徵、類別型特徵、時間型特徵和其他型別特徵和組合特徵。對於數值型特徵,可以進行幅度調整(包括min-max縮放、標準化、歸一化)、統計值分析(最大值、最小值、平

    機器學習模型評估混淆矩陣、ROC曲線和AUC以及PR曲線

           在機器學習中,當我們基於某個業務建立模型並訓練後,接下來我們需要評判模型好壞的時候需要基於混淆矩陣,ROC和AUC等來進行輔助判斷。 混淆矩陣也叫精度矩陣,是用來表示精度評價,為N *N的矩陣,用來判別分類好壞的指標。 混淆矩陣中有以下幾個概念: TP(T

    機器學習——模型評估模型選擇

    評價一個機器學習模型的好壞需要特定的評估方法,並據此對模型進行選擇,從而得到一個更好的模型。本文主要是關於模型評估與模型選擇的筆記,以及利用 scikit-learn 對 Logistic 迴歸進行的結果進行交叉檢驗。 1. 訓練誤差,測試誤差與泛化誤差 學習器(模型