機器學習之模型評估與模型選擇(學習筆記)

時間:2014.06.26

地點:基地

--------------------------------------------------------------------------------------

一、訓練誤差和測試誤差

  機器學習或者說統計學習的目的就是使學習到的模型不僅對已知數據而且對未知數據都都很好的預測能力。不同的學習方法會得出不同的模型。在評判學習方法的好壞時,常用的是:

1.基於損失函數的模型的訓練誤差                          2。模型的測試誤差

  假設學習到的模型爲:  

  那麼訓練誤差即是模型  關於訓練數據集的平均損失:

                      N爲訓練樣本的容量

測試誤差是模型 關於測試數據集的平均損失:

              

當損失函數是0-1損失時,測試誤差就是常見的測試數據集上的誤差率了:

    --------------------------------------------------------------------(1)

  I 在這裏是指示函數,即括號部分取不等於時爲1,否則爲0(指示函數:括號中條件爲真時取1,爲假時取0

對應的,測試數據集上的準確率爲:

     --------------------------------------------------------------------(2)

x顯然有:準確率+誤差率=1,即 (1)式+(2)式=1

訓練誤差的大小,對判斷給定問題是不是容易學習的問題是有意義的,但本質上並不太重要,重要的是測試誤差反映了學習方法對未知的測試數據集的預測能力,給定兩種學習方法,測試誤差小的方法具有更好的預測能力,是更爲有效的方法。通常將學習方法對未知數據的預測能力叫做泛化能力

--------------------------------------------------------------------------------------

二、過擬合與模型選擇

  我們知道,模型的假設空間中有很多候選模型,這些模型不同複雜度,假設這個模型空間中存在一個真模型,即理想模型,那麼,我們希望是選擇和學習到一個儘量逼近這個理想模型的模型,這將表現在:學習到的模型與理想模型參數個數相同,所學習到的模型的參數向量與理想模型參數向量相近。但其中有個問題,因爲我們是用有限的訓練數據來學習模型,若是一味的追求模型對訓練數據的表達能力,所得模型將很有可能比理想真模型的複雜度還要高,我們稱之爲過擬合。即我們學習到的模型所包含的參數過多,對已知的數據表達得過分的好,卻對未知的數據預測得很差的現象。模型的選擇即是旨在避免過擬合併提高模型的預測能力。

舉個例來說:假設給定一個訓練數據集:


即給定一組輸入——輸出觀測值,多項式函數擬合的任務就是假設給定數據由M次多項式函數生成,選擇最有可能產生這些數據的M次多項式函數。即在M次多項式函數中(對應模型假設空間)選擇一個對已知數據以及未知數據都有很好預測能力的函數。下面來求解這個函數:

設M次多項式爲:

式中x是單變量輸入,w是M+1個參數構成的向量。

我們首先可確定模型的複雜度,即確定多項式次數,然後在給定的模型複雜度下,按經驗風險最小化策略,求解參數(多項式係數),在這裏我們求經驗風險最小化,即:


這裏的係數1/2是爲了計算方便,將模型與訓練數據代入得:


然後針對w求偏導,即可求得擬合多項式係數。

我們也容易知道當M=0時曲線時一條常數直線,數據擬合效果很差,M=1時曲線是一條斜直線擬合效果也很差,當M很大時,擬合曲線會通過每個訓練數據點,訓練誤差爲0,對於訓練數據來說這是最好的,但這種太過好的效果反而是有問題的,因爲數據本身就存在噪聲,不是理想數據,這種訓練誤差爲0的倒不正常了,再有是這種擬合曲線對未知數據的預測能力不好,當M足夠差不多時,曲線對訓練數據擬合效果可能已經足夠好,此時模型也簡單,這便是一種較好的選擇。

  總得來說,通過上面分析,我們可發現,隨着M的增大,模型複雜度也增加,訓練誤差減小趨向於0,但測試誤差隨着多項式次數的增加先減小後增大,而我們學習的目的就是爲了使得模型的測試誤差最小。所以M的選擇要防止過擬合的出現。


發佈了193 篇原創文章 · 獲贊 53 · 訪問量 36萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章