《機器學習》學習筆記二

模型評估與選擇

2.1經驗誤差與過擬合


  • 錯誤率(error rate):分類錯誤的樣本數佔樣本總數的比例。E=a/m
  • 精度(accuracy):1a/m1
  • 誤差(error):學習器的實際預測輸出與樣本的真實輸出之間的差異。
    • 訓練誤差(training error)/經驗誤差(empirical error):在訓練集上的誤差。
    • 泛化誤差(generalization error):在新樣本上的誤差。
  • 過擬合(overfitting):學習器把訓練樣本學的太好了,把訓練樣本自身的一些特點當作了所有潛在樣本都會具有的一般性質,這樣就會導致泛化能力下降。
  • 欠擬合(underfitting):對訓練樣本的一般性質尚未學好。

2.2評估方法


通常,我們可通過實驗測試來對學習器的泛化誤差進行評估進而做出選擇。爲此需要使用一個測試集(testing set)來測試學習器對新樣本的判別能力,然後以測試集上的測試誤差(testing error)作爲泛化誤差的近似

下面介紹幾種產生訓練集S 和測試集T 的方法

2.2.1留出法(hold-out)

留出法直接將數據集D 劃分爲兩個互斥的集合。其中一個作爲訓練集S ,另一個作爲測試集T ,即D=STST= 。在S 上訓練出模型後,用T 來評估其測試誤差,作爲對泛化誤差的估計。

因爲數據劃分的不同,所以單次使用留出法得到的結果往往不夠穩定可靠,在使用留出法時,一般採用若干次隨機劃分、重複進行實驗後取平均值作爲留出法的評估結果。

通常將大約2/3~4/5的樣本用於訓練,剩餘的用於測試。

測試集小時,評估結果的方差大。訓練集小時,平局結果的偏差大。

2.2.2交叉驗證法(cross validation)

交叉驗證法先將數據集D 劃分爲k 個大小相似的互斥子集,即D=D1D2...DkDiDj=(ij) 。每個子集Di 都儘可能保持數據分佈的一致性,即從D 中通過分層採樣而得到。然後每次用k1 個子集的並集作爲訓練集,餘下的那個子集作爲測試集。最終返回k個結果測試的均值。

k 折交叉驗證(kfold cross validation ),k 最常使用的取值爲10,此時稱爲10折交叉驗證。其他常用的k 值有5、10。

留一法(Leave-One-Out LOO):此時k=m ,即折數等於樣本數量。留一法訓練集與初試數據集相比只少了一個樣本,因此留一法的結果往往被認爲比較準確。然而,留一法的計算開銷比較大,當樣本數量上百萬時。。。。。。

2.2.3自助法(bootstrapping)

使用留出法和交叉驗證法時,保留了一部分訓練樣本用於測試,訓練集小於D ,這樣必然會引入一些訓練樣本規模不同而導致的估計偏差。

自助法直接以自助採樣爲基礎。給定m個樣本的數據集D ,我們對它進行採樣產生數據集D :每次隨機從D 中挑選一個樣本,將其拷貝放入D ,然後再將該樣本放回數據集D 。重複m次得到m個樣本的數據集D 。樣本在m次採樣中始終不被採到的概率爲(11m)m ,取極限得到

limm(11m)m1e0.368
即通過自助採樣,初始數據集中約有36.8%的數據未出現在數據集D 中。於是我們可將模型D 用於訓練集,DD 用於測試集。這樣的測試結果亦稱包外估計(out-of-bag-estimate)。

自助法在數據集較小、難以有效劃分訓練/測試集時很有效,自助法產生的數據集改變餓了初始數據集的分佈,這會引入偏差。因此在初始數據量足夠多時,留出法和交叉驗證法更常用一些。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章