機器學習中常見的評估方法

2021-09-22 16:40:13 字數 1951 閱讀 3787

通常,我們可通過實驗測試來對學習器的泛化誤差進行評估並進而做出選擇。因此,需使用「測試集」來測試學習器對新樣本的判別能力,然後以測試集上的「測試誤差」作為泛化誤差的近似。

將樣本集變成訓練集和測試集,而訓練集和測試集如何分配,使效果達到最優。具體有三種做法:留出法、較差驗證法和自主法。

直接將資料集d劃分為兩個互斥集合s(訓練集)和t(測試集)。d=s∪t,s∩t=∅,在s上訓練出模型後,用t來評估測試誤差,並將其作為泛化誤差的估計。

舉例:採用方法:二分類任務

樣本集:d包含1000個樣本,其中500個正例,500個反例

s與t的劃分方法:s包含700個樣本,正例350,反例350;t包含300個樣本,正例150,反例150

錯誤率與精度的計算:假設t上有90個樣本分類錯誤,其錯誤率為(90/300)*100%=30%;精度為[(300-90)/300]*100%=1-30%=70%

補充:單次使用留出法得到的估計誤差往往不夠穩定,一般要採用若干次隨機劃分、重複進行實驗評估後取平均值作為留出法的評估結果。如對上述1000個樣本,可反覆隨機劃分s和t,使用模型方法後,計算精度,求取平均值。

將資料集d劃分為k個大小相似的互斥子集,即d=d1

∪d2∪…∪dk

,di∩dj=∅(i≠j),每個子集di都盡可能保持資料分布一致。

舉例:採用方法:二分類任務

樣本集:d包含1000個樣本,其中500個正例,500個反例

s和t的劃分方法:

訓練集測試集

測試結果d1

d2 d3

d4 d5

d6 d7

d8 d9

d10

測試集精度1d1

d2 d3

d4 d5

d6 d7

d8 d10 d9

測試集精度2

…………

……d2 d3

d4 d5

d6 d7

d8 d9

d10 d1

測試集精度10

補充:交叉驗證法存在乙個特例:留一法。若樣本集為1000個,訓練集為999個,測試集為1個。對於資料集比較大的情況,訓練開銷大。

給定包含m個樣本的資料集d,對其進行取樣產生資料集d『:每次隨機從d中挑選乙個樣本,將其拷貝到d『,然後將該樣本放回到d中,使該樣本在下次取樣中人可能被採到;重複m次後,便得到了包含m個樣本的資料集d『。

舉例:採用方法:二分類任務

取樣集:d包含1000個樣本,其中500個正例,500個反例

s和t的劃分方法:

隨機可放回的抽取700個樣本作為訓練集,在這700個樣本中會存在重複的樣本。其中樣本在700次取樣中始終不被採到的概率為(1-1/

700)^700=0.3676。(當取樣數為m時,始終不被採到的某樣本概率為(1-1/

m)^m,取極限得到limm

→∞(1-1/

m)^m→1/

e≈0.368)。

測試集中有0.36概率的樣本未在訓練集**現,可選擇d\d』中的300個樣本作為測試集。並計算測試集中模型的精度。

補充:自助法在資料集較小,難以有效劃分訓練和測試集時方法較為有用。但通過自助法產生的資料集改變了初始資料集的分布,會出現估計偏差。

大多數演算法均需要配置引數,引數配置不同,學得模型的效能往往有顯著差別。配置引數需選定乙個範圍和變化步長。

在給定抱恨m個樣本的資料集d中,模型評估與選擇過程中均需要留一部分資料進行評估測試,事實上,我們只是用一部分資料進行訓練模型。在模型選擇完成後,學習演算法和引數配置均選定,此時應該用資料集d重新訓練模型,這個模型在訓練過程中使用了所有m個樣本,這才是最終提交給使用者的模型。

形成模型中使用的資料為「測試集」,評估模型的資料稱為「驗證集」。

上述過程主要是介紹了三種劃分測試集與驗證集的方法,主要是留出法、交叉驗證法和自助法,前兩種方法很相似,後一種方法對於初始資料量足夠的情況下會有估計偏差的問題。具體情況,使用者可選擇適合的劃分方法對模型進行驗證。

機器學習的常見評估方法

一 留出法 將全量資料集劃分成互不相交的兩部分,其中資料量較大的一部分 一般佔總資料量的2 3到4 5 作為訓練集,另一部分作為測試集。在劃分資料時,應保持資料分布在訓練集合測試集中的一致性 可使用分層抽樣等方法 同時,考慮到劃分隨機性的影響,應該多次重複劃分。二 交叉驗證法 k折為例 將全量資料集...

機器學習評估方法

訓練 測試集的劃分要盡可能保持資料分布的一致性,避免因資料劃分過程引入額外的偏差而對最終結果產生影響,例如 在分類任務中,至少要保持樣本的類別比例類似。如果從取樣的角度來看待資料集的劃分過程,則保留類別比例的取樣方式稱為 分層取樣 單詞使用留出法得到的估計結果往往不夠穩定可靠,在使用留出法,一般要採...

機器學習模型評估方法

分類模型評價度量 概率輸出型 這個有邏輯回歸 隨機森林 梯度提公升 adaboost等演算法,都是以概率作為輸出的。要想把概率型輸出變為分型別輸出,只要為其設立乙個閾值即可。positive predictive value 陽性 值 or precision 精度 陽性 值被 正確的比例。nega...