机器学习-泛化能力
目錄
1.什么是泛化能力
2.什么是好的機器學習模型的提出
3.泛化誤差
4.模型泛化能力的評價標準?
4.提高泛化能力
5.舉例
6.相關引用文獻
1.什么是泛化能力
百度百科解釋:機器學習算法對新鮮樣本的適應能力。
更加具體的解釋:學習到的模型對未知數據的預測能力,這個未見過的測試數據必須是和訓練數據處于同一分布,不在同一分布的數據是不符合獨立同分布假設的(對同一規律不同的數據集的預測能力)。通常通過測試誤差來評價學習方法的泛化能力。
通俗+形象解釋:
就是通過數據訓練學習的模型,拿到真實場景去試,這個模型到底行不行,如果達到了一定的要求和標準,它就是行,說明泛化能力好,如果表現很差,說明泛化能力就差。為了更好的理解泛化能力,這里引入三種現象,欠擬合、過擬合以及不收斂。泛化能力的本質就是反映模型有沒有對客觀世界做真實的刻畫,還是發生了過擬合。
考試成績差的同學,有這三種可能:
一、泛化能力弱,做了很多題,始終掌握不了規律,不管遇到老題新題都不會做,稱作欠擬合;
二、泛化能力弱,做了很多題,只會死記硬背,一到考試看到新題就蒙了,稱作過擬合;
三、完全不做題,考試全靠瞎蒙,稱作不收斂。
2.什么是好的機器學習模型的提出
奧卡姆的威廉是 14 世紀一位崇尚簡單的修士和哲學家。?他認為科學家應該優先采用更簡單(而非更復雜)的公式或理論。
奧卡姆剃刀定律在機器學習方面的運用如下:?
機器學習模型越簡單,良好的實證結果就越有可能不僅僅基于樣本的特性。
現今,我們已將奧卡姆剃刀定律正式應用于?統計學習理論?和?計算學習理論?領域。這些領域已經形成了?泛化邊界,即統計化描述模型根據以下因素泛化到新數據的能力:?
-
模型的復雜程度
-
模型在處理訓練數據方面的表現
雖然理論分析在理想化假設下可提供正式保證,但在實踐中卻很難應用。?機器學習速成課程則側重于實證評估,以評判模型泛化到新數據的能力。
機器學習模型旨在根據以前未見過的新數據做出良好預測。?但是,如果要根據數據集構建模型,如何獲得以前未見過的數據呢??一種方法是將您的數據集分成兩個子集:
-
訓練集?- 用于訓練模型的子集。
-
測試集?- 用于測試模型的子集。
一般來說,在測試集上表現是否良好是衡量能否在新數據上表現良好的有用指標,前提是:
-
測試集足夠大。
-
您不會反復使用相同的測試集來作假。
3.泛化誤差
首先給出泛化誤差的定義, 如果學到的模型是 f^ , 那么用這個模型對未知數據預測的誤差即為泛化誤差
?泛化誤差反映了學習方法的泛化能力,如果一種方法學習的模型比另一種方法學習的模型具有更小的泛化誤差,那么這種方法就更有效, 事實上,泛化誤差就是所學到的模型的期望誤差。
4.模型泛化能力的評價標準?
回歸任務常用的性能度量是“均方誤差”。
1. 錯誤率與精度
錯誤率與精度是分類任務中最常用的兩種性能度量。既適用于二分類,也適用于多分類。錯誤率:分類錯誤的樣本數占總樣本數的比例。精度 : 分類正確的樣本數占總樣本數的比例。精度 + 錯誤率 = 1 假設,總的樣本數為m個,我們對這m個樣本進行預測,其中預測對了的樣本有p個,預測錯的樣本有n個(p+n = m),則:錯誤率 = n/m精度 = p/m?2. 查全率、查準率、F1
當任務有所偏好時,錯誤率與精度便不能滿足任務的需求。比如我們關心的是“檢索出來的信息中有多少是用戶感興趣的”或者“用戶感興趣的信息有多少被檢索出來了”。此時就需要查全率、查準率、F1值來進行模型的性能度量。假設,總的測試樣本有m個,其中正樣本有z個,負樣本有f個。查全率:對這m個樣本進行預測,其中z個正樣本中有zm個被預測對。查全率 = zm / z查準率: 對這m個樣本進行預測,預測的結果中有ym個是正樣本,ym個樣本中有y個是z的,則:查準率 = y / ym上圖為混淆矩陣,TP + FN + FP + TN = 樣例總數。對應的查準率P和查全率R分別定義為:查準率和查全率是一對矛盾的度量。查準率越高時,查全率往往偏低。而查全率越高時,查準率往往偏低。P-R曲線:(查準率-查全率曲線)?
P-R曲線是以查全率為橫軸,以查準率為縱軸的二維坐標圖。
P-R曲線的建立過程:?
根據學習器的預測結果對樣例進行排序,排在前面的是學習器認為“最可能”是正例的樣本,排在后面的則是學習器任務“最不可能”是正例的樣本。按此排序,逐個把樣本作為正例進行預測,則每次可以計算出當前的查全率和查準率。以此為縱軸和橫軸作圖,便得到了查全率-查準率曲線,即P-R曲線。
P-R曲線作用:?
用來對比不同學習器的好壞的。例如上圖2.3中學習器A包含學習器C,則說學習器A優于學習器C。但當兩個學習器的P-R曲線有交叉時,難以判斷那個學習器較好。通常的做法是計算每個學習器曲線所包含的面積,比較面積的大小。但這值不太容易估算。于是人們便使用“平衡點”(簡稱BEP)這一度量,即“查準率 = 查全率”時的取值。例如上圖中的平衡點可判定,學習器A優于學習器B。
F1值:?
F1值為查全率和查準率的協調平均值,?
第二種,先將各混淆矩陣的對應元素進行平均,再基于這些平均值進行計算,得出“微查全率”“微查準率”以及“微F1”,?
?
3.ROC與AUC
ROC曲線與AUC常被用來評價一個二分類器的優劣。
和P-R曲線類似,“ROC曲線”是根據學習器的預測結果對樣例進行排序,按此順序逐個把樣本作為正例進行預測,每次計算出兩個重要的量值(真正例率TRP和假正例率FPR),分別以他們作為橫、縱坐標作圖,就得到了“ROC曲線”。
上圖(a)中的虛線表示“隨機猜測”模型。在(0,1)點處,即FPR=0, TPR=1,這意味著FN = 0,并且FP = 0。這是一個完美的分類器,它將所有的樣本都正確分類。在(1,0)點處,即FPR=1,TPR=0,類似地分析可以發現這是一個最糟糕的分類器,因為它成功避開了所有的正確答案。在(0,0)點處,即FPR=TPR=0,即FP = TP =0,可以發現該分類器預測所有的樣本都為負樣本。在(1,1)點處,分類器實際上預測所有的樣本都為正樣本。經過以上的分析,我們可以斷言,ROC曲線越接近左上角,該分類器的性能越好。- ?
現實任務中通常是利用有限個測試樣本來繪制ROC圖的,所以僅能或得有限個(真正例率TRP和假正例率FPR)坐標對,繪制出的圖如上圖中的(b)。
ROC曲線繪制過程:
給定m個正例和n個反例,根據學習器預測結果對樣例進行排序,然后把分類閾值設置為最大,即把所有樣例均預測為反例,此時真正例率和假正例率均為0,在坐標(0,0)出標記一個點。然后,將分類的閾值依次設置為每個樣例的預測值,即依次將每個樣例劃分為正例。設前一個標記的坐標為(x,y),當前若為真正例,則對應的標記點的坐標為(x, y+1/m);若當前為假正例,則對應標記點的坐標為(x+1/n, y), 然后用線段連接相鄰的點即可。- ?
學習器比較:
若一個學習器A的ROC曲線包含另外一個學習器B的ROC曲線,則認為學習器A的性能優于學習器B。若兩者的ROC曲線相交,則需要對各自ROC曲線下得面積(即AUC)進行比較。AUC可通過對ROC曲線下各部分面積求和而得。?
4.代價敏感錯誤率與代價曲線
不同類型的錯誤所造成的后果不同。
為權衡不同類型錯誤造成的不同損失,可為錯誤賦予“非均等代價”。
以二分類為例,可設定一個“代價矩陣”?
表中cost10 表示將第1類錯分為第0類的代價,cost01同樣,表示將第0類錯分為第1類的代價。此二分類也可拓展為多分類costij表示將第i類錯分為第j類的代價。
前面的性能度量都默認的假設了均等代價,所有錯誤率是直接計算錯誤的次數,并沒有考慮不同錯誤會造成的不同的后果。在非均等代價下,我們希望的不再是簡單地最小化錯誤次數,而是希望最小化“總體代價”。?
?
上式中,D+和D-分別表示樣例集D中的正例子集和反例子集。
在非均等代價下,ROC曲線不能直接反應學習器期望的總體代價,而“代價曲線”則可達到該目的。?
代價曲線圖的橫軸是取值為[0,1]的正例概率代價:?
?
上式中p是樣例為正例的概率。
縱軸是取值為[0,1]的歸一化代價:
FNR表示假正例率,FNR = 1 - TPR
代價曲線的繪制:
ROC曲線上每一點對應了代價平面上的一條線段,設ROC曲線上的坐標為(TPR,FPR),則可相應的計算出FNR,然后在代價平面上繪制一條從(0,FPR)到(1,FNR)的線段,線段下面的面積即表示了該條件下得期望總體代價。如此將ROC曲線上的每個點轉化為代價平面上的一條線段,然后取所有線段的下界,圍成的面積即為在所有條件下學習器的期望總體代價。- ?
?
4.提高泛化能力
提高泛化能力的方式大致有三種:1.增加數據量。2.正則化。3.凸優化。
?
5.舉例
下面圖片中每個點代表一棵樹的位置,藍點代表生病的樹,橙點代表健康的樹。
給你樣本數據,要求提供一個機器學習算法算法,區分開兩種樹。
你千辛萬苦畫出來一條曲線能夠很好地進行聚類,而且模型的損失非常低(損失函數),幾乎完美的把兩類點一分為二。但這個模型真的就是好模型嗎?
用該算法預測新樣本時,沒有很好的區分兩類點,表現得有些差勁。
上述模型過擬合了訓練數據的特性,過擬合模型在訓練過程中產生的損失很低,但在預測新數據方面的表現卻非常糟糕。如果某個模型在擬合當前樣本方面表現良好,那么我們如何相信該模型會對新數據做出良好的預測呢?過擬合是由于模型的復雜程度超出所需程度而造成的。機器學習的基本沖突是適當擬合我們的數據,但也要盡可能簡單地擬合數據。
?
6.相關引用文獻
https://blog.csdn.net/tiankong_/article/details/78361496
https://zhuanlan.zhihu.com/p/59673364?utm_source=wechat_session
https://segmentfault.com/a/1190000016425702?utm_source=tag-newest
https://my.oschina.net/u/4604431/blog/4476343
https://www.jianshu.com/p/849423297c7f
https://blog.csdn.net/vvyuervv/article/details/65449079
?
總結
- 上一篇: 【Java学习笔记】 MYSQL03 学
- 下一篇: 人民币金额大写