機器學習的術語:
機器學習正是這樣一門學科,它致力於研究如何通過計算的手段,利用經驗來改善系統自身的性能.在計算機系統中,“經驗”通常以“數據”形式存在,因此,機器學習所研究的主要內容,是關於在計算機上從數據中產生“模 型”(model)的算法,即“學習算法”(learning algorithm).有了學習算法,我們把經驗數據提供給它,它就能基於這些數據產生模型;在面對新的情況時(例 如看到一個沒剖開的西瓜),模型會給我們提供相應的判斷(例如好瓜).如果說計算機科學是研究關於“算法”的學問,那么類似的,可以說機器學習是研究關於“學習算法”
的學問。
基本術語:
編號 | 色澤 | 根蒂 | 敲聲 | 好瓜 |
---|---|---|---|---|
1 | 青綠 | 蜷縮 | 濁響 | 是 |
2 | 烏黑 | 蜷縮 | 濁響 | 是 |
3 | 青綠 | 硬挺 | 清脆 | 否 |
4 | 烏黑 | 稍蜷 | 沉悶 | 否 |
數據集(data set)
這組記錄的集合稱為一個數據集(data set)
示例”(instance)、樣 本”(sample)
其中每條記錄是關於一個事件或對象(這里是一個西瓜)的描述,稱為一個“示例”(instance
)或“樣 本”(sample)
.有時整個數據集亦稱一個“樣本”,因為它可看作對樣本空間的一個采樣; 通過上下文可判斷出“樣本”是指單個示例還是數據集。
屬性(attribute)、特征(feature)
反映事件或對象在某方面的表現或性質的事項,例如“色澤” “根蒂”“敲聲”,稱為“屬性”(attribute)
或“特征”(feature).
屬性值(attribute value)
屬性上的取值,例如“青綠”“烏黑”,稱為“屬性值”(attribute value)
“.
“屬性空間”(attribute space)、“樣本空間”(sample space)或“輸入空間”
屬性合成的空間稱為“屬性空間”(attribute space)、“樣本空間”(sample space)或“輸入空間
”
特征向量(feature vector)
例如我們把“色澤” “根蒂” “敲聲”作為三個坐標軸,則它們張成 一個用於描述西瓜的三維空間,每個西瓜都可在這個空間中找到自己的坐標位 置.由於空間中的每個點對應一個坐標向量,因此我們也把一個示例稱為一個 “特征向量”(feature vector)
.
維數(dimensionality)
一般地,令* D * = {x1x1 ,x2x2, …,xmxm}表示包含m個示例的數據集,每個示例由d個屬性描述(例如上面的西瓜數據使用了3個屬性),則每個示例 xixi =(xi1xi1;xi2xi2;…x_id)是d維樣本空間* X* 中的一個向量,xi∈xi∈* X * ,其中xijxij 是xixi在第j個屬性上的取值(例如上述第3個西瓜在第2個屬性上的值是“硬挺”),* d * 稱為樣本xixi的 “維數”(dimensionality).
學習、訓練、訓練數據、訓練樣本、訓練集、假設、真相、真實、學習器
從數據中學得模型的過程稱為“學習”(learning)
或“訓練”(training),
這個過程通過執行某個學習算法來完成.訓練過程中使用的數據稱為“訓練 數據”(training data)
,其中每個樣本稱為一個“訓練樣本”(training sample),
訓練樣本組成的集合稱為“訓練集”(training set)
.學得模型對應了關於數據的某種潛在的規律,因此亦稱假設”(hypothesis)
;這種潛在規律自身,則稱為“真相”
或“真實” (ground-tmth),
學習過程就是為了找出或逼近真相.有時將模型稱為“學習器”(learner)
,可看作學習算法在給定數據和參數空間上的實例化.
“訓練示例” (training instance)、“訓練例”
訓練樣本亦稱“訓練示例” (training instance)或“訓練例”
.
預測、標記、樣例、標記空間、輸出空間
學習算法通常有參數需設置,使用不同的參數值 和(或)訓練數據,將產生不同的結果.
如果希望學得一個能幫助我們判斷沒剖開的是不是“好瓜”的模型,僅有前面的示例數據顯然是不夠的.要建立這樣的關於“預測”(prediction)
的模型,我們需獲得訓練樣本的“結果”信息,例如“((色澤=青綠;根蒂=蜷縮; 敲聲=濁響),好瓜這里關於示例結果的信息,例如“好瓜”,稱為“標記”(label)
;擁有了標記信息的示例,則稱為“樣例”(example)
.—般地,用(xixi,yiyi)表示第i個樣例,其中隊yi∈yi∈ * y * 是示例xixi的標記,* y * 是所有標記的集合, 亦稱“標記空間”(label space)
或“輸出空間”.
將“label”譯為“標記”而非“標簽”,是考慮到英文中“label”既可用作名詞、也可用作動詞.若將標記看作對象本身的一部分,則“樣例”有時也稱為“樣本”.
分類、回歸、二分類、正類、反類、多分類
若我們欲預測的是離散值,例如“好瓜”“壞瓜”,此類學習任務稱為“分類”(classification)
;若欲預測的是連續值,例如西瓜成熟度0.95、0.37, 此類學習任務稱為“回歸”(regression).
對只涉及兩個類別的“二分類”(binary classification)
任務,通常稱其中一個類為“正類”(positive class)
, 另一個類為“反類'(negative class)
;涉及多個類別時,則稱為“多分類”(multi-class classification)
任務.一般地,預測任務是希望通過對訓練集{(x1,y1x1,y1),(x2,y2x2,y2),…,(xm,ymxm,ym)}進行學習,建立一個從輸入空間 * x * 到輸出空間yy的映射ff:X⟼YX⟼Y 對二分類任務,通常令yy = {-1, +1}或{0, 1};對多分類任務,|yy|> 2;對回歸任務,yy = RR,RR為實數集.
Note:
學得模型后,使用其進行預測的過程稱為“測試”(testing),被預測的樣本 稱為“測試樣本”(testing sample).例如在學得ff后,對測試例xx可得到其預 測標記y=f(x)y=f(x)亦稱“測試示例”(testing instance) 或“測試例”
聚類、簇
我們還可以對西瓜做“聚類”(clustering)
,即將訓練集中的西瓜分成若干 組,每組稱為一個“簇”(cluster)
;這些自動形成的簇可能對應一些潛在的概念划分,例如“淺色瓜”“深色瓜”,甚至“本地瓜”“外地瓜”.這樣的學習過程有助於我們了解數據內在的規律,能為吏深入地分析數據建立基礎.需說明 的是,在聚類學習中,“淺色瓜” “本地瓜”這樣的概念我們事先是不知道的, 而且學習過程中使用的訓練樣本通常不擁有標記信息.
監督學習、無監督學習
根據訓練數據是否擁有標記信息,學習任務可大致划分為兩大類:“監督學習 ”(supervised learning)
和“無監督學習 ”(unsupervised learning)
,分類和回歸是前者的代表,而聚類則是后者的代表.
亦稱“有導師學習”和“無導師學習”
泛化能力
需注意的是,機器學習的目標是使學得的模型能很好地適用於“新樣本”, 而不是僅僅在訓練樣本上工作得很好;即便對聚類這樣的無監督學習任務,我們也希望學得的簇划分能適用於沒在訓練集中出現的樣本.學得模型適用於新樣本的能力,稱為“泛化”(generalization)能力
.具有強泛化能力的模型能 很好地適用於整個樣本空間.於是,盡管訓練集通常只是樣本空間的一個很小的采樣,我們仍希望它能很好地反映出樣本空間的特性,否則就很難期望在訓練集上學得的模型能在整個樣本空間上都工作得很好.通常假設樣本空間中全 體樣本服從一個未知“分布”(distribution)DD,我們獲得的每個樣本都是獨立地從這個分布上采樣獲得的,即“獨立同分布”(independent and identically distributed,簡稱i.i.d.i.i.d.). —般而言,訓練樣本越多,我們得到的關於DD的信息越多,這樣就越有可能通過學習獲得具有強泛化能力的模型.
總結:
假設空間
歸納(induction)
與演繹(deduction)
是科學推理的兩大基本手段。前者是從特殊到一般的“泛化”(generalization)過程
,即從具體的事實歸結出一般性規律;后者則是從一般到特殊的“特化”(specialization)過程
,即從基礎原理推演 出具體狀況.例如,在數學公理系統中,基於一組公理和推理規則推導出與之相洽的定理,這是演繹;而“從樣例中學習”顯然是一個歸納的過程,因此亦稱 “歸納學習 ”(inductive learning)
。
歸納學習有狹義與廣義
之分,廣義的歸納學習大體相當於從樣例中學習, 而狹義的歸納學習則要求從訓練數據中學得概念(concept),因此亦稱為“概念 學習”或“概念形成”
.概念學習技術目前研究、應用都比較少,因為要學得 泛化性能好且語義明確的概念實在太困難了,現實常用的技術大多是產生“黑 箱”模型.然而,對概念學習有所了解,有助於理解機器學習的一些基礎思想.
概念學習中最基本的是布爾概念學習,即對“是”“不是”這樣的可表示 為0/1布爾值的目標概念的學習。
編號 | 色澤 | 根蒂 | 敲聲 | 好瓜 |
---|---|---|---|---|
1 | 青綠 | 蜷縮 | 濁響 | 是 |
2 | 烏黑 | 蜷縮 | 濁響 | 是 |
3 | 青綠 | 硬挺 | 清脆 | 否 |
4 | 烏黑 | 稍蜷 | 沉悶 | 否 |
(色澤=?)⋀(根蒂=?)⋀(敲聲=?)↔好瓜
學習過程⟶⟶ 在所有假設(hypothesis)組成的空間中進行搜索的過程
目標:
找到與訓練集“匹配”(fit)的假設
以西瓜問題假設為例。色澤屬性可取(青綠,烏黑,淺白,* ),根蒂屬性可取(蜷縮,稍蜷,硬挺,* ),敲聲屬性可取(濁響,清脆,沉悶,* ),以及好瓜假設不存在(ϕϕ)。即西瓜問題的假設空間大小為(4 * 4 * 4 + 1=65)
版本空間
可以有許多策略對這個假設空間進行搜索,例如自頂向下、從一般到特殊, 或是自底向上、從特殊到一般,搜索過程中可以不斷刪除與正例不一致的假設、和(或)與反例一致的假設.最終將會獲得與訓練集一致(即對所有訓練樣本 能夠進行正確判斷)的假設,這就是我們學得的結果.
需注意的是,現實問題中我們常面臨很大的假設空間,但學習過程是基於有限樣本訓練集進行的,因此,可能有多個假設與訓練集一致,即存在着一個與訓練集一致的“假設集合”,我們稱之為“版本空間”(version space)
歸納偏好
通過學習得到的模型對應了假設空間中的一個假設.於是,上面西瓜版本空間給我們帶來一個麻煩:現在有三個與訓練集一致的假設,但與它們對應的模型在面臨新樣本的時候,卻會產生不同的輸出.例如,對(色澤=青綠; 根蒂=蜷縮;敲聲=沉悶)這個新收來的瓜,如果我們采用的是“好瓜⟷⟷(色澤=* )∧∧(根蒂=蜷縮)∧∧(敲聲= * )”,那么將會把新瓜判斷為好瓜,而如果釆用了另外兩個假設,則判斷的結果將不是好瓜.那么,應該采用哪一個模型(或 假設)呢?
若僅有以上的訓練樣本,則無法斷定上述三個假設中哪一個“更好”. 然而,對於一個具體的學習算法而言,它必須要產生一個模型.這時,學習算法本身的“偏好”就會起到關鍵的作用.例如,若我們的算法喜歡“盡可能特殊”的模型,則它會選擇“好瓜⟷⟷(色澤=* )∧∧(根蒂=蜷縮)∧∧(敲聲=濁響)”; 但若我們的算法喜歡“盡可能一般”的模型,並且由於某種原因它更“相信” 根蒂,則它會選擇“好瓜⟷⟷ (色澤=* )∧∧(根蒂=蜷縮)∧∧(敲聲=* )” .機器學習算法在學習過程中對某種類型假設的偏好,稱為“歸納偏好”(inductive bias), 或簡稱為“偏好’
奧卡姆剃刀”(Occam’s razor)是一種常用的、自然科學研究中最基本的原則,即“若有多個假設與觀察一致,則選最簡單的那個”.如果采用這個原則,並且假設我們認為“更平滑”意味着“更簡單”(例如曲線 A更易於描述,其方程式是y=−x2+6x+1y=−x2+6x+1,而曲線B則要復雜得多)
No Free Lunch Theoren 定理 , 沒有免費的午餐定理,簡稱NFL定理, 由美國斯坦福大學的Wolpert和Macready教授提出。
NFL定理:一個算法A若在某些問題上比另一個算法B好,必存在另一些問題B比A好
為簡單起見,假設樣本空間XX和假設空間HH都是離散的.令P(h|X,La)P(h|X,La)代表算法LaLa基於訓練數據X產生假設hh的概率,再令ff代表我們希望學習的真實目標函數LaLa的“訓練集外誤差”,即LaLa在訓練集之外的所有樣本上的誤差為
Eote(La|X,f)=∑h∑x∈χ−XP(x)I(h(x)≠f(x))P(h|X,La)Eote(La|X,f)=∑h∑x∈χ−XP(x)I(h(x)≠f(x))P(h|X,La)
其中I(⋅)I(⋅)是指示函數,若•為真則取值1,否則取值0.
考慮二分類問題,且真實目標函數可以是任何函數x⟼0,1x⟼0,1,函數空間為0,1|x|0,1|x|對所有可能的f按均勻分布對誤差求和,有
∑fEote(La|X,f)=∑f∑h∑x∈χ−XP(x)I(h(x)≠f(x))P(h|X,La)∑fEote(La|X,f)=∑f∑h∑x∈χ−XP(x)I(h(x)≠f(x))P(h|X,La)
=∑x∈χ−XP(x)∑hP(h|X,La)∑fI(h(x)≠f(x))=∑x∈χ−XP(x)∑hP(h|X,La)∑fI(h(x)≠f(x))
=∑x∈χ−XP(x)∑hP(h|X,La)122|x|=∑x∈χ−XP(x)∑hP(h|X,La)122|x|
=122|x|∑x∈χ−XP(x)∑hP(h|X,La)=122|x|∑x∈χ−XP(x)∑hP(h|X,La)
=122|x|∑x∈χ−XP(x)⋅1=122|x|∑x∈χ−XP(x)⋅1
上式顯示出,總誤差和學習算法無關!對於任意兩個學習算法LaLa和LbLb,我們都有
∑fEote(La|X,f)=∑fEote(Lb|X,f)∑fEote(La|X,f)=∑fEote(Lb|X,f)
也就是說,無論學習算法LaLa多聰明、學習算法LbLb多笨拙,它們的期望性能竟然相同!這就是“沒有免費的午餐”定理(No FYee Lunch Theorem,簡稱NFL定理)[Wolpert,1996; Wolpert and Macready, 1995].
總結
NFL定理有一個重要前提:所有“問題”出現的機會相同、或所有問題同等重要.但實際情形並不是這樣.很多時候,我們只關注自己正在試圖解決的問題(例如某個具體應用任務),希望為它找到一個解決方案, 至於這個解決方案在別的問題、甚至在相似的問題上是否為好方案,我們並不關心.例如,為了快速從A地到達B地,如果我們正在考慮的A地是南京鼓樓、B地是南京新街口,那么“騎自行車”是很好的解決方案;這個方案對A 地是南京鼓樓、B地是北京新街口的情形顯然很糟糕,但我們對此並不關心.
NFL定理最重要的寓意,是讓我們清楚地認識到,脫離具體問題,空泛地談論“什么學習算法更好”毫無意義,因為若考慮所有潛在的問題,則所有學習算法都一樣好.要談論算法的相對優劣,必須要針對具體的學習問題;在某些問題上表現好的學習算法,在另一些問題上卻可能不盡如人意,學習算法自身的歸納偏好與問題是否相配,往往會起到決定性的作用.
經驗誤差和過擬合
通常我們把分類錯誤的樣本數占樣本總數的比例稱為“錯誤率”(error rate)
,即如果在m個樣本中有a個樣本分類錯誤,則錯誤率EE=a/m;相應的, l-a/m稱為“精度” (accuracy)
,即“精度=1-錯誤率”.更一般地,我們把學習器的實際預測輸出與樣本的真實輸出之間的差異稱為“誤差”(error)
, 學習器在訓練集上的誤差稱為“訓練誤差”(training error)
或“經驗誤差” (empirical error)
,在新樣本上的誤差稱為“泛化誤差”(generalization error)
.顯然,我們希望得到泛化誤差小的學習器.然而,我們事先並不知道新樣本是什么樣,實際能做的是努力使經驗誤差最小化.在很多情況下,我們可以學得一個經驗誤差很小、在訓練集上表現很好的學習器,例如甚至對所有訓練 樣本都分類正確,即分類錯誤率為零,分類精度為100%,但這是不是我們想要的學習器呢?遺憾的是,這樣的學習器在多數情況下都不好.
我們實際希望的,是在新樣本上能表現得很好的學習器.為了達到這個目的,應該從訓練樣本中盡可能學出適用於所有潛在樣本的“普遍規律”,這樣才能在遇到新樣本時做出正確的判別.然而,當學習器把訓練樣本學得“太好”了的時候,很可能已經把訓練樣本自身的一些特點當做了所有潛在樣本都會具有的一般性質,這樣就會導致泛化性能下降。這種現象在機器學習中稱為 “過擬合”(overfitting)
.與“過擬合”相對的是“欠擬合”(underfitting)
,這是指對訓練樣本的一般性質尚未學好。
總結
有多種因素可能導致過擬合,其中最常見的情況是由於學習能力過於強大,以至於把訓練樣本所包含的不太一般的特性都學到了,而欠擬合則通常是由於學習能力低下而造成的.欠擬合比較容易克服,例如在決策樹學習中擴展分支、在神經網絡學習中増加訓練輪數等,而過擬合則很麻煩.在后面的學習中我們將看到,過擬合是機器學習面臨的關鍵障礙,各類學習算法都必然帶有一些針對過擬合的措施;然而必須認識到,過擬合是無法徹底避免的,我們所能做的只是“緩解”,或者說減小其風險.
在現實任務中,我們往往有多種學習算法可供選擇,甚至對同一個學習算法,當使用不同的參數配置時,也會產生不同的模型.那么,我們該選用哪一個學習算法、使用哪一種參數配置呢?這就是機器學習中的“模型選擇”(model selection)問題.理想的解決方案當然是對候選模型的泛化誤差進行評估,然后選擇泛化誤差最小的那個模型.然而如上面所討論的,我們無法直接獲得泛化誤差,而訓練誤差又由於過擬合現象的存在而不適合作為標准,那么,在現實中如何進行模型評估與選擇呢?
如何獲得測試結果? ⟹⟹ 評估方法
如何評估性能優劣? ⟹⟹ 性能度量
如何判斷實質差別? ⟹⟹ 比較檢驗
評估方法
測試集應該與訓練集“互斥”
- 留出法 (hold-out)
- 交叉驗證法 (cross validation)
- 自助法 (bootstrap)
留出法
留出法(hold-out
)直接將數據集D划分為兩個互斥的集合,其中一個集合S作為訓練集另一個作為測試集T,即D=S∪TD=S∪T, S∩T=ϕS∩T=ϕ在SS上訓練出模型后,用T來評估其測試誤差,作為對泛化誤差的估計.
交叉驗證法
“交叉驗證法”(cross validation)
先將數據集DD划分為k個大小相似的互斥子集,即D=D1∪D2∪…∪DkD=D1∪D2∪…∪Dk , Di∩DJ=ϕDi∩DJ=ϕ(i≠ji≠j)每個子集DiDi都盡可能保持數據分布的一致性,即從DD中通過分層采樣得到.然后,每次用 k - 1個子集的並集作為訓練集,余下的那個子集作為測試集;這樣就可獲得k組訓練/測試集,從而可進行k次訓練和測試,最終返回的是這k個測試結果的均值.顯然,交叉驗證法評估結果的穩定性和保真性在很大程度上取決於k的取值,為強調這一點,通常把交叉驗證法稱為“k折交叉驗證”(k-fold cross validation). k最常用的取值是10,此時稱為10折交叉驗證。
假定數據集DD中包含m個樣本,若令k = m,則得到了交叉驗證法的一個特例:留一法(Leave-One-Out,簡稱LOO)
.顯然,留一法不受隨機樣本划分方式的影響,因為m個樣本只有唯一的方式划分為m個子集每個子集包含一個樣本;留一法使用的訓練集與初始數據集相比只少了一個樣本,這就使得在絕大多數情況下,留一法中被實際評估的模型與期望評估的用訓練出的模型很相似.因此,留一法的評估結果往往被認為比較准確.然而,留一法也有其缺陷:在數據集比較大時,訓練m個模型的計算開銷可能是難以忍受的(例如數 據集包含1百萬個樣本,則需訓練1百萬個模型),而這還是在未考慮算法調參的情況下.另外,留一法的估計結果也未必永遠比其他評估方法准確;“沒有免費的午餐”定理對實驗評估方法同樣適用.
擴展
我們希望評估的是用𝐷D訓練出的模型.但在留出法和交叉驗證法中,由於保留了一部分樣本用於測試,因此實際評估的模型所使用的訓練集比D小,這必然會引入一些因訓練樣本規模不同而導致的估計偏差.留一法受訓練樣本規模變化的影響較小,但計算復雜度又太高了.有沒有什么辦法可以減少訓練樣本規模不同造成的影響,同時還能比較高效地進行實驗估計呢?
自助法
“自助法”(bootstrapping)
是一個比較好的解決方案,它直接以自助采樣 法(bootstrap sampling)為基礎[Efron and Tibshirani, 1993].給定包含m個樣本的數據集DD,我們對它進行釆樣產生數據集D′D′:每次隨機從乃中挑選一個樣本,將其拷貝放入D′D′,然后再將該樣本放回初始數據集DD中,使得該樣本在下次釆樣時仍有可能被采到;這個過程重復執行m次后,我們就得到了包含m個樣本的數據集D′D′,這就是自助采樣的結果.顯然,D中有一部分樣本會在D′D′中多次出現,而另一部分樣本不出現.可以做一個簡單的估計,樣本在m次采樣中始終不被采到的概率是(1−1m)m(1−1m)m,取極限得到。
limm→∞(1−1m)m⟶1e≈0.368limm→∞(1−1m)m⟶1e≈0.368
即通過自助釆樣,初始數據集乃中約有36.8%的樣本未出現在釆樣數據集D′D′中,於是我們可將D′D′用作訓練集,D/D′D/D′用作測試集;這樣,實際評估的模型與期望評估的模型都使用m個訓練樣本,而我們仍有數據總量約1/3的、沒在訓練集中出現的樣本用於測試.這樣的測試結果,亦稱“包外估計”(out-of-bag estimate)
.
自助法在數據集較小、難以有效划分訓練/測試集時很有用;此外,自助法能從初始數據集中產生多個不同的訓練集,這對集成學習等方法有很大的好處. 然而,自助法產生的數據集改變了初始數據集的分布,這會引入估計偏差.因此,在初始數據量足夠時,留出法和交叉驗證法更常用一些.
性能度量
對學習器的泛化性能進行評估,不僅需要有效可的實驗估計方法,還需要有衡量模型泛化能力的評價標准,這就是性能度量(performance measure)
.性能度量反映了任務需求,在對比不同模型的能力時,使用不同的性能度量往 往會導致不同的評判結果;這意味着模型的“好壞”是相對的,什么樣的模型是好的,不僅取決於算法和數據,還決定於任務需求.
在預測任務中,給定樣例集D=(x1,y1),(x2,y2),…,(xm.ym)D=(x1,y1),(x2,y2),…,(xm.ym),其中yiyi是示例xixi的真實標記.要評估學習器ff的性能,就要把學習器預測結果f(x)f(x)與真實標記yy進行比較.
回歸任務最常用的性能度量是“均方誤差”(mean squared error)
E(f;D)=1m∑mi=1(f(xi)−yi)2E(f;D)=1m∑i=1m(f(xi)−yi)2
對於數據分布DD和概率密度函數p(⋅)p(⋅),均方誤差可描述為
E(f;D)=∫x∼D(f(x)−y)2p(x)dxE(f;D)=∫x∼D(f(x)−y)2p(x)dx
錯誤率
是分類錯誤的樣本數占樣本總數的比例
E(f;D)=1m∑mi=1I(f(xi)≠yi)E(f;D)=1m∑i=1mI(f(xi)≠yi)
精度
則是分類正確的樣本數占樣本總數的比例
acc(f;D)=1m∑mi=1I(f(xi)=yi)acc(f;D)=1m∑i=1mI(f(xi)=yi)
錯誤率:
E(f;D)=∫x∼DI(f(x)≠y)p(x)dxE(f;D)=∫x∼DI(f(x)≠y)p(x)dx
查准率:P=TPTP+FPP=TPTP+FP
查全率:R=TPTP+FNR=TPTP+FN
查准率和查全率是一對予盾的度量,一般來說,查准率高時,查全率往往偏低查全率高時.查准率偏低。
PR圖,BEP(Break-Event Point)
根據學習器的預測結果按正例可能性大小對樣例進行排序,並逐個把樣本作為正例進行預測
比 BEP 更常用的 F1 度量:
F1:F1=2PRP+R=2TP樣例總數+TP−TNF1=2PRP+R=2TP樣例總數+TP−TN
若對查准率/查全率有不同偏好:
Fβ=(1+β2)PR(β2P)+RFβ=(1+β2)PR(β2P)+R
β=1β=1時退化為標准的F1;β>1β>1時查全率有更大影響;β<1β<1時查准率有更大影響。
擴展
很多時候我們有多個二分類混淆矩陣
宏
macro−P=1n∑ni=1Pimacro−P=1n∑i=1nPi
macro−R=1n∑ni=1Rimacro−R=1n∑i=1nRi
macro−F1=2macro−P×macro−Rmacro−P+macro−Rmacro−F1=2macro−P×macro−Rmacro−P+macro−R
微
micro−P=PT¯¯¯¯¯¯¯¯TP¯¯¯¯¯¯¯¯+FP¯¯¯¯¯¯¯¯micro−P=PT¯TP¯+FP¯
micro−P=TP¯¯¯¯¯¯¯¯TP¯¯¯¯¯¯¯¯+FN¯¯¯¯¯¯¯¯¯micro−P=TP¯TP¯+FN¯
macro−F1=2macro−P×macro−Rmacro−P+macro−Rmacro−F1=2macro−P×macro−Rmacro−P+macro−R
ROC 與 AUC
ROC全稱是“受試者工作特征”(Receiver Operating Characteristic)。ROC曲線的面積就是AUC(Area Under the Curve)
TPR=TPTP+FNTPR=TPTP+FN
FPR=FPTN+FPFPR=FPTN+FP
$AUC=\frac{1}{2}\sum^{m-1}{i=1}(x{i+1}-x_i)\cdot(y_i + y_{i+1})$
代價敏感錯誤率與代價曲線
在現實任務中常會遇到這樣的情況:不同類型的錯誤所造成的后果不同. 例如在醫療診斷中,錯誤地把患者診斷為健康人與錯誤地把健康人診斷為患者, 看起來都是犯了“一次錯誤”,但后者的影響是增加了進一步檢查的麻煩,前者的后果卻可能是喪失了拯救生命的最佳時機;再如,門禁系統錯誤地把可通行人員攔在門外,將使得用戶體驗不佳,但錯誤地把陌生人放進門內,則會造成嚴重的安全事故.為權衡不同類型錯誤所造成的不同損失,可為錯誤賦予“非 均等代”(unequal cost).
以二分類任務為例,我們可根據任務的領域知識設定一個“代價矩陣”(cost matrix),其中costijcostij表示將第i類樣本預測為第j類樣本的代價.一般來說,costii=0costii=0;若將第0類判別為第1類所造成的損失更大,則cost01>cost10cost01>cost10;損失程度相差越大,cost01cost01與cost10cost10值的差別越大.
代價敏感(cost-sensitive)錯誤率E(f;D;cost)=1m(∑xi∈D+I(f(xi)≠yi)×cost01+∑xi∈D−I(f(xi)≠yi)×cost10)