文章目錄
- 前言
- 訓練
- 驗證
- 測試
- 評估
- 評估方法
- 交叉驗證法
- 自助法
- 評估指標
- 練習題
前言
本篇介紹機器學習中的訓練、驗證、測試與評估的相關概念。
訓練
從數據中學得模型的過程稱為“學習”(learning)或“訓練”(training),這個過程通過執行某個學習算法來完成.訓練過程中使用的數據稱為“訓練數據”(training data),其中每個樣本稱為一個“訓練樣本”(training sample),訓練樣本組成的集合稱為“訓練集”(training set).
驗證
在現實任務中,我們往往有多種學習算法可供選擇,甚至對同一個學習算法,當使用不同的參數配置時,也會產生不同的模型.那么,我們該選用哪一個學習算法、使用哪一種參數配置呢?這就是機器學習中的“模型選擇”(modelselection)問題.這時候,我們對學習出來的模型,微調他們的參數,如在神經網絡中選擇隱藏單元數。驗證集還用來確定網絡結構或者控制模型復雜程度的參數。
測試
通常,我們可通過實驗測試來對學習器的泛化誤差進行評估并進而做出選擇.為此,需使用一個“測試集”(testing set)來測試學習器對新樣本的判別能力,然后以測試集上的“測試誤差”(testing error)作為泛化誤差的近似.通常我們假設測試樣本也是從樣本真實分布中獨立同分布采樣而得.但需注意的是,測試集應該盡可能與訓練集互斥,即測試樣本盡量不在訓練集中出現、未在訓練過程中使用過.
評估
機器學習領域中,對模型的評估同樣至關重要,只有選擇與問題相匹配的評估方法,才能快速地發現模型選擇或訓練過程中出現的問題,迭代地對模型進行優化。模型評估主要分為離線評估和在線評估兩個階段。針對分類、排序、回歸、序列預測等不同類型的機器學習問題,評估指標的選擇也有所不同。知道每種評估指標的精確定義、有針對性地選擇合適的評估指標、更具評估指標的反饋進行模型調整,這些都是模型評估階段的關鍵問題。
我們把學習器的實際預測輸出與樣本的真實輸出之間的差異稱為“誤差”(error),學習器在訓練集上的誤差稱為“訓練誤差”(training error)或“經驗誤差”(empirical error),在新樣本上的誤差稱為“泛化誤差”(generalizationerror).顯然,我們希望得到泛化誤差小的學習器.
通常,我們可通過實驗測試來對學習器的泛化誤差進行評估并進而做出選擇.為此,需使用一個測試集來測試學習器對新樣本的判別能力,然后以測試集上的誤差作為泛化誤差的近似.
評估方法
留出法
“留出法”(hold-out)直接將數據集D劃分為兩個互斥的集合,其中一個集合作為訓練集S,另一個作為測試集T.在S上訓練出模型后,用T來評估其測試誤差,作為對泛化誤差的估計.
交叉驗證法
“交叉驗證法”(cross validation)先將數據集D劃分為k個大小相似的互斥子集.每個子集D都盡可能保持數據分布的一致性,即從D中通過分層采樣得到.然后,每次用k-1個子集的并集作為訓練集,余下的那個子集作為測試集;這樣就可獲得k組訓練/測試集,從而可進行k次訓練和測試,最終返回的是這k個測試結果的均值.顯然,交叉驗證法評估結果的穩定性和保真性在很大程度上取決于k的取值,為強調這一點,通常把交叉驗證法稱為“k折交叉驗證”(k-fold crossvalidation).k最常用的取值是10,此時稱為10折交叉驗證;其他常用的k值有5、20等.下圖為10折交叉驗證的示意圖.
,
假定數據集D中包含m個樣本,若令k = m ,則得到了交叉驗證法的一個特例:留一法(Leave-One-Out,簡稱LOO).顯然,留一法不受隨機樣本劃分方式的影響。
自助法
給定包含m個樣本的數據集D,我們對它進行采樣產生數據集D’:每次隨機從D中挑選一個樣本,將其拷貝放入D’,然后再將該樣本放回初始數據集D中,使得該樣本在下次采樣時仍有可能被采到;這個過程重復執行m次后,我們就得到了包含m個樣本的數據集D’,這就是自助采樣的結果。
自助法在數據集較小難以有效劃分訓練集和測試集時很有用。
評估指標
準確率(Accuracy)的定義是:對于給定的測試集,分類模型正確分類的樣本數與總樣本數之比;
精確率(Precision)的定義是:對于給定測試集的某一個類別,分類模型預測正確的比例,或者說:分類模型預測的正樣本中有多少是真正的正樣本;
召回率(Recall)的定義為:對于給定測試集的某一個類別,樣本中的正類有多少被分類模型預測正確召回率的定義為:對于給定測試集的某一個類別,樣本中的正類有多少被分類模型預測正確;
F1_score,在理想情況下,我們希望模型的精確率越高越好,同時召回率也越高越高,但是,現實情況往往事與愿違,在現實情況下,精確率和召回率像是坐在蹺蹺板上一樣,往往出現一個值升高,另一個值降低,那么,有沒有一個指標來綜合考慮精確率和召回率了,這個指標就是F1值。F1值的計算公式為:
,
練習題
1、通過作業可以知道不同學生學習情況、進步的速度快慢這一過程屬于以下哪種?
A、訓練
B、驗證
C、測試
D、評估
2、常用的評估方法有哪些?
A、k折交叉驗證
B、自助法
C、留出法
3、____在數據集較小難以有效劃分訓練集和測試集時很有用。
A、留出法
B、自助法
C、k折交叉驗證法
4、評價指標有以下哪幾種?
A、召回率(Recall)
B、準確率(Accuracy)
C、F1_score
D、精確率(Precision)
5、學習器在訓練集上的誤差稱為____,在新樣本上的誤差稱為____.
A、“泛化誤差”(generalizationerror),“訓練誤差”(training error)
B、“訓練誤差”(training error),“泛化誤差”(generalizationerror)
6、k折交叉驗證是留一法的特例,這種表達正確嗎?
A、正確
B、不正確
參考答案:
1.B
2.ABC
3.B
4.ABCD
5.B
6.B