模型評估與選擇


好記憶不如爛筆頭,之前西瓜書這章也看過幾次但還是掌握不夠,今天又拿來翻翻順便做個筆記;
  前面寫了幾篇線性回歸與邏輯回歸的文章,是說模型訓練的但是模型的性能怎樣該怎么選擇使用最小二乘法還是梯度下降法呢,我們總得要比較模型的性能再做選擇吧;所以就有了這里所說的模型評估與選擇
既然是讀書比較我們先看看書本里講了什么:

從五個方面講了模型的評估與選擇:
  1、經驗誤差與過擬合
  2、評估方法
  3、性能度量
  4、比較檢驗
  5、偏差與方差

一、經驗誤差與過擬合

  在分類模型中把分類錯誤樣本數占總樣本的比例成為:錯誤率(error rate)
M個樣本、a個樣本分類錯誤,錯誤率為:E=a/m,精度=1-錯誤率*100%
在實際的模型中,不可能存在分類錯誤率為0、分類精度為100%,一旦出現就可以說該模型過擬合了;
  過擬合為NP問題,在訓練模型時要注意好過擬合與欠擬合之間的尺度;

二、評估方法

  在對模型進行泛化誤差評估時通常使用一個測試集(testing set)來測試模型對新樣本的判別能力;
通常我們只有個訓練集,這時需要把訓練集分為訓練記與測試集兩個部分,並且要保證測試集與訓練集盡可能互斥,使得測試樣本盡可能未在訓練中使用過,從而保證能夠真實的評估出模型的泛化能力;
有M個樣例數據集:
  怎么把數據集分為訓練集S與測試集T呢,下面介紹幾種常用的方法:
  1、留出法(hold-out)
留出法:直接將數據集D划分為兩個互斥的集合,訓練集S與測試集T;

用S訓練出模型,用T評估測試誤差作為泛化誤差的估計;
通常使用2/3~4/5的樣本用於訓練;
  2、交叉驗證法(cross validation):
  交叉驗證法:將數據集划分為k個大小相似互斥子集,
  
  每個子集盡可能保持數據分布一致性,每次使用k-1個子集作為訓練集,剩下一個作為測試集,這可取得k組訓練、測試集進行k次訓練與測試取k個測試結果的均值作為模型的評估結果;交叉驗證法又稱k折交叉驗證;
  3、自助法(bootstrapping):
  留出法與交叉驗證法由於保留部分樣本用於測試,使得實際評估模型使用訓練集比D小,這時可能會由於樣本規模小導致偏差,從而存在欠擬合;自助法正是不錯的解決方案;
  自助法以自助采樣為基礎,在給定m個樣本的數據集D,進行采樣產生數據集D1;
  產生方法為:每次隨機從D中挑選一個樣本,拷貝放入D1中,再將樣本放回數據集D,該樣本在下次仍然可能被采樣到,重復m次得到包含m個樣本的數據集D1;
樣本在m次采樣中不被采樣到的概率為:

  使用自助法初始數據集中仍然有36.8%樣本未被使用過,實際評估模型與期望評估的模型都使用m個訓練樣本;自助法在訓練集小規模不夠時比較適合;

三、性能度量


  在之前的線性回歸中說過梯度下降法、最小二乘法都是求出方差最小時的參數值;
樣本集:,其中y為樣本的真實值,評估模型性能就是拿模型預測值f(x)與真實的樣本值y進行比較;

  均方誤差(mean squared error)

  錯誤率:

  精度:

1、查准率、查全率、F1

  錯誤率只能評估模型多多少樣本預測錯了,如模型是判別垃圾郵件,錯誤率只能評估模型有多少郵件被判別錯了,如要想知道所有垃圾郵件中多少比例被判別出來了,錯誤率就不能評估了;
  在使用邏輯回歸進行二分類預測時,模型預測值與真實的類別組合可分為:
真正例(true positive)、假正例(false positive)、真反例(true negative)、假反例(false negative),分別用TP、FP、TN、FN表示相應樣例數,樣例總數為:TP+FP+TN+FN;分類結果混淆矩陣;

  通常查准率高時查全率低,查全率高時查准率低;
  可以通過P-R曲線來取兩者的平衡值,但更常用的使用F1來衡量查准率與查全率;

  F1基於查准率與查全率的調和平均;

四、比較檢驗

  統計假設檢驗(hypothesis test):對模型進行性能比較時基於假設檢驗可以推斷出測試集上觀察到的A比B好則A的泛化性能是否在統計意義上優於B;
  假設檢驗:假設是對模型泛化錯誤率分布的某種判斷與猜想,實際中並不知道泛化錯誤率,通常使用測試錯誤率推出泛化錯誤率分布;
  Friedman檢驗與Nemenyi后續檢驗:交叉驗證、McNamar驗證為在一個數據集上對模型進行比較,Friedman校驗在一組數據集上對多個模型進行比較

五、偏差與方差

  偏差-方差分解(bias-variance decomposition)為解釋模型泛化性能的工具;為什么模型具有如此泛化性能;
  期望輸出與真實標記的差別稱為偏差(bias),期望值與實際值的偏離程度;
  方差(variance):衡量相同樣本數目,不同訓練集 預測值的變化程度離期望值越遠方差越大;
  泛化誤差可分解為:偏差、方差、噪聲之和
  偏差較大導致欠擬合 、過於接近訓練集,不夠泛化,方差過大導致過擬合;

參考資料:
周志華 Machine Learning

文章首發地址:Solinx
http://www.solinx.co/archives/896


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM