機器學習系列(一)--術語篇

機器學習的術語:算法

機器學習正是這樣一門學科,它致力於研究如何經過計算的手段,利用經驗來改善系統自身的性能.在計算機系統中,「經驗」一般以「數據」形式存在,所以,機器學習所研究的主要內容,是關於在計算機上從數據中產生「模 型」(model)的算法,即「學習算法」(learning algorithm).有了學習算法,咱們把經驗數據提供給它,它就能基於這些數據產生模型;在面對新的狀況時(例 如看到一個沒剖開的西瓜),模型會給咱們提供相應的判斷(例如好瓜).若是說計算機科學是研究關於「算法」的學問,那麼相似的,能夠說機器學習是研究關於「學習算法」的學問。bootstrap

基本術語:

編號 色澤 根蒂 敲聲 好瓜
1 青綠 蜷縮 濁響
2 烏黑 蜷縮 濁響
3 青綠 硬挺 清脆
4 烏黑 稍蜷 沉悶

數據集(data set)

這組記錄的集合稱爲一個數據集(data set)安全

示例」(instance)、樣 本」(sample)

其中每條記錄是關於一個事件或對象(這裏是一個西瓜)的描述,稱爲一個「示例」(instance)或「樣 本」(sample).有時整個數據集亦稱一個「樣本」,由於它可看做對樣本空間的一個採樣; 經過上下文可判斷出「樣本」是指單個示例仍是數據集。網絡

屬性(attribute)、特徵(feature)

反映事件或對象在某方面的表現或性質的事項,例如「色澤」 「根蒂」「敲聲」,稱爲「屬性」(attribute)「特徵」(feature).app

屬性值(attribute value)

屬性上的取值,例如「青綠」「烏黑」,稱爲「屬性值」(attribute value)「.機器學習

「屬性空間」(attribute space)、「樣本空間」(sample space)或「輸入空間」

屬性合成的空間稱爲「屬性空間」(attribute space)、「樣本空間」(sample space)或「輸入空間ide

 

 

 

特徵向量(feature vector)

例如咱們把「色澤」 「根蒂」 「敲聲」做爲三個座標軸,則它們張成 一個用於描述西瓜的三維空間,每一個西瓜均可在這個空間中找到本身的座標位 置.因爲空間中的每一個點對應一個座標向量,所以咱們也把一個示例稱爲一個 「特徵向量」(feature vector).函數

維數(dimensionality)

通常地,令* D * = {x1x1 ,x2x2, …,xmxm}表示包含m個示例的數據集,每一個示例由d個屬性描述(例如上面的西瓜數據使用了3個屬性),則每一個示例 xixi =(xi1xi1;xi2xi2;…x_id)是d維樣本空間* X* 中的一個向量,xixi∈* 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個樣例,其中隊yiyi∈ * y * 是示例xixi的標記,* y * 是全部標記的集合, 亦稱「標記空間」(label space)「輸出空間」.

將「label」譯爲「標記」而非「標籤」,是考慮到英文中「label」既可用做名詞、也可用做動詞.若將標記看做對象自己的一部分,則「樣例」有時也稱爲「樣本」.

分類、迴歸、二分類、正類、反類、多分類

若咱們欲預測的是離散值,例如「好瓜」「壞瓜」,此類學習任務稱爲「分類」(classification);若欲預測的是連續值,例如西瓜成熟度0.9五、0.37, 此類學習任務稱爲「迴歸」(regression).對只涉及兩個類別的「二分類」(binary classification)任務,一般稱其中一個類爲「正類」(positive class), 另外一個類爲「反類'(negative class);涉及多個類別時,則稱爲「多分類」(multi-class classification)任務.通常地,預測任務是但願經過對訓練集{(x1,y1x1,y1),(x2,y2x2,y2),…,(xm,ymxm,ym)}進行學習,創建一個從輸入空間 * x * 到輸出空間yy的映射ff:XYX⟼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)=hxχ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.

考慮二分類問題,且真實目標函數能夠是任何函數x0,1x⟼0,1,函數空間爲0,1|x|0,1|x|對全部可能的f按均勻分佈對偏差求和,有

fEote(La|X,f)=fhxχ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=STD=S∪T, ST=ϕS∩T=ϕ在SS上訓練出模型後,用T來評估其測試偏差,做爲對泛化偏差的估計.

交叉驗證法

「交叉驗證法」(cross validation)先將數據集DD劃分爲k個大小類似的互斥子集,即D=D1D2DkD=D1∪D2∪…∪Dk , DiDJ=ϕDi∩DJ=ϕ(iji≠j)每一個子集DiDi都儘量保持數據分佈的一致性,即從DD中經過分層採樣獲得.而後,每次用 k - 1個子集的並集做爲訓練集,餘下的那個子集做爲測試集;這樣就可得到k組訓練/測試集,從而可進行k次訓練和測試,最終返回的是這k個測試結果的均值.顯然,交叉驗證法評估結果的穩定性和保真性在很大程度上取決於k的取值,爲強調這一點,一般把交叉驗證法稱爲「k折交叉驗證」(k-fold cross validation). k最經常使用的取值是10,此時稱爲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,咱們對它進行釆樣產生數據集DD′:每次隨機從乃中挑選一個樣本,將其拷貝放入DD′,而後再將該樣本放回初始數據集DD中,使得該樣本在下次釆樣時仍有可能被採到;這個過程重複執行m次後,咱們就獲得了包含m個樣本的數據集DD′,這就是自助採樣的結果.顯然,D中有一部分樣本會在DD′中屢次出現,而另外一部分樣本不出現.能夠作一個簡單的估計,樣本在m次採樣中始終不被採到的機率是(11m)m(1−1m)m,取極限獲得。

limm(11m)m1e0.368limm→∞(1−1m)m⟶1e≈0.368

即經過自助釆樣,初始數據集乃中約有36.8%的樣本未出如今釆樣數據集DD′中,因而咱們可將DD′用做訓練集,D/DD/D′用做測試集;這樣,實際評估的模型與指望評估的模型都使用m個訓練樣本,而咱們仍有數據總量約1/3的、沒在訓練集中出現的樣本用於測試.這樣的測試結果,亦稱「包外估計」(out-of-bag estimate).

自助法在數據集較小、難以有效劃分訓練/測試集時頗有用;此外,自助法能從初始數據集中產生多個不一樣的訓練集,這對集成學習等方法有很大的好處. 然而,自助法產生的數據集改變了初始數據集的分佈,這會引入估計誤差.所以,在初始數據量足夠時,留出法和交叉驗證法更經常使用一些.

性能度量

對學習器的泛化性能進行評估,不只須要有效可的實驗估計方法,還須要有衡量模型泛化能力的評價標準,這就是性能度量(performance measure).性能度量反映了任務需求,在對比不一樣模型的能力時,使用不一樣的性能度量往 往會致使不一樣的評判結果;這意味着模型的「好壞」是相對的,什麼樣的模型是好的,不只取決於算法和數據,還決定於任務需求.

在預測任務中,給定樣例集D=(x1y1),(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)=1mmi=1(f(xi)yi)2E(f;D)=1m∑i=1m(f(xi)−yi)2

對於數據分佈DD和機率密度函數p()p(⋅),均方偏差可描述爲

E(f;D)=xDf(x)y2p(x)dxE(f;D)=∫x∼D(f(x)−y)2p(x)dx

錯誤率是分類錯誤的樣本數佔樣本總數的比例

E(f;D)=1mmi=1I(f(xi)yi)E(f;D)=1m∑i=1mI(f(xi)≠yi)

精度則是分類正確的樣本數佔樣本總數的比例

acc(f;D)=1mmi=1I(f(xi)=yi)acc(f;D)=1m∑i=1mI(f(xi)=yi)

錯誤率:

E(f;D)=xDIf(x)yp(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)

根據學習器的預測結果按正例可能性大小對樣例進行排序,並逐個把樣本做爲正例進行預測

pr圖

比 BEP 更經常使用的 F1 度量:

F1:F1=2PRP+R=2TP+TPTNF1=2PRP+R=2TP樣例總數+TP−TN

若對查準率/查全率有不一樣偏好:

Fβ=(1+β2)PR(β2P)+RFβ=(1+β2)PR(β2P)+R

β=1β=1時退化爲標準的F1;β>1β>1時查全率有更大影響;β<1β<1時查準率有更大影響。

擴展

不少時候咱們有多個二分類混淆矩陣

macroP=1nni=1Pimacro−P=1n∑i=1nPi

macroR=1nni=1Rimacro−R=1n∑i=1nRi

macroF1=2macroP×macroRmacroP+macroRmacro−F1=2macro−P×macro−Rmacro−P+macro−R

microP=PT¯¯¯¯¯¯¯¯TP¯¯¯¯¯¯¯¯+FP¯¯¯¯¯¯¯¯micro−P=PT¯TP¯+FP¯

microP=TP¯¯¯¯¯¯¯¯TP¯¯¯¯¯¯¯¯+FN¯¯¯¯¯¯¯¯¯micro−P=TP¯TP¯+FN¯

macroF1=2macroP×macroRmacroP+macroRmacro−F1=2macro−P×macro−Rmacro−P+macro−R

ROC 與 AUC

ROC全稱是「受試者工做特徵」(Receiver Operating Characteristic)。ROC曲線的面積就是AUC(Area Under the Curve)

ROC和AUC

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(xiD+I(f(xi)yi)×cost01+xiDI(f(xi)yi)×cost10)

相關文章
相關標籤/搜索