機器學習算法中分類知識總結!

2021-02-26 NewBeeNLP

 我們建立了機器學習、自然語言處理、深度學習、智能對話、知識圖譜等方向的討論組,歡迎大家加入討論(人數達到上限,添加下方好友手動邀請),注意一定備註喔!



一、指定閾值

邏輯回歸返回的是概率。你可以「原樣」使用返回的概率(例如,用戶點擊此廣告的概率為 0.00023),也可以將返回的概率轉換成二元值(例如,這封電子郵件是垃圾郵件)。

如果某個邏輯回歸模型對某封電子郵件進行預測時返回的概率為 0.9995,則表示該模型預測這封郵件非常可能是垃圾郵件。相反,在同一個邏輯回歸模型中預測分數為 0.0003 的另一封電子郵件很可能不是垃圾郵件。可如果某封電子郵件的預測分數為 0.6 呢?為了將邏輯回歸值映射到二元類別,你必須指定分類閾值(也稱為判定閾值)。如果值高於該閾值,則表示「垃圾郵件」;如果值低於該閾值,則表示「非垃圾郵件」。人們往往會認為分類閾值應始終為 0.5,但閾值取決於具體問題,因此你必須對其進行調整。

我們將在後面的部分中詳細介紹可用於對分類模型的預測進行評估的指標,以及更改分類閾值對這些預測的影響。

⭐️ 注意:

「調整」邏輯回歸的閾值不同於調整學習速率等超參數。在選擇閾值時,需要評估你將因犯錯而承擔多大的後果。例如,將非垃圾郵件誤標記為垃圾郵件會非常糟糕。不過,雖然將垃圾郵件誤標記為非垃圾郵件會令人不快,但應該不會讓你丟掉工作。

二、陽性與陰性以及正類別與負類別

在本部分,我們將定義用於評估分類模型指標的主要組成部分先。不妨,我們從一則寓言故事開始:

伊索寓言:狼來了(精簡版)有一位牧童要照看鎮上的羊群,但是他開始厭煩這份工作。為了找點樂子,他大喊道:「狼來了!」其實根本一頭狼也沒有出現。村民們迅速跑來保護羊群,但他們發現這個牧童是在開玩笑後非常生氣。(這樣的情形重複出現了很多次。)
...
一天晚上,牧童看到真的有一頭狼靠近羊群,他大聲喊道:「狼來了!」村民們不想再被他捉弄,都待在家裡不出來。這頭飢餓的狼對羊群大開殺戒,美美飽餐了一頓。這下子,整個鎮子都揭不開鍋了。恐慌也隨之而來。

我們做出以下定義:

我們可以使用一個 2x2的混淆矩陣來總結我們的「狼預測」模型,該矩陣描述了所有可能出現的結果(共四種):

真正例是指模型將正類別樣本正確地預測為正類別。同樣,真負例是指模型將負類別樣本正確地預測為負類別。

假正例是指模型將負類別樣本錯誤地預測為正類別,而假負例是指模型將正類別樣本錯誤地預測為負類別。

在後面的部分中,我們將介紹如何使用從這四種結果中衍生出的指標來評估分類模型。

三、準確率

準確率是一個用於評估分類模型的指標。通俗來說,準確率是指我們的模型預測正確的結果所佔的比例。正式點說,準確率的定義如下:

對於二元分類,也可以根據正類別和負類別按如下方式計算準確率:

其中,TP = 真正例,TN = 真負例,FP = 假正例,FN = 假負例。讓我們來試著計算一下以下模型的準確率,該模型將 100 個腫瘤分為惡性 (正類別)或良性(負類別):

準確率為 0.91,即 91%(總共 100 個樣本中有 91 個預測正確)。這表示我們的腫瘤分類器在識別惡性腫瘤方面表現得非常出色,對吧?

實際上,只要我們仔細分析一下正類別和負類別,就可以更好地了解我們模型的效果。

在 100 個腫瘤樣本中,91 個為良性(90 個 TN 和 1 個 FP),9 個為惡性(1 個 TP 和 8 個 FN)。

在 91 個良性腫瘤中,該模型將 90 個正確識別為良性。這很好。不過,在 9 個惡性腫瘤中,該模型僅將 1 個正確識別為惡性。這是多麼可怕的結果!9 個惡性腫瘤中有 8 個未被診斷出來!

雖然 91% 的準確率可能乍一看還不錯,但如果另一個腫瘤分類器模型總是預測良性,那麼這個模型使用我們的樣本進行預測也會實現相同的準確率(100 個中有 91 個預測正確)。換言之,我們的模型與那些沒有預測能力來區分惡性腫瘤和良性腫瘤的模型差不多。

當你使用分類不平衡的數據集(比如正類別標籤和負類別標籤的數量之間存在明顯差異)時,單單準確率一項並不能反映全面情況。

在下一部分中,我們將介紹兩個能夠更好地評估分類不平衡問題的指標:精確率和召回率。

學習理解

在以下哪種情況下,高的準確率值表示機器學習模型表現出色?

一隻造價昂貴的機器雞每天要穿過一條交通繁忙的道路一千次。某個機器學習模型評估交通模式,預測這隻雞何時可以安全穿過街道,準確率為 99.99%。

一種致命但可治癒的疾病影響著 0.01% 的人群。某個機器學習模型使用其症狀作為特徵,預測這種疾病的準確率為 99.99%。

在 roulette 遊戲中,一隻球會落在旋轉輪上,並且最終落入 38 個槽的其中一個內。某個機器學習模型可以使用視覺特徵(球的旋轉方式、球落下時旋轉輪所在的位置、球在旋轉輪上方的高度)預測球會落入哪個槽中,準確率為 4%。

四、精確率和召回率4.1 精確率

精確率指標嘗試回答以下問題:在被識別為正類別的樣本中,確實為正類別的比例是多少?

精確率的定義如下:

⭐️ 注意:如果模型的預測結果中沒有假正例,則模型的精確率為 1.0。

讓我們來計算一下上一部分中用於分析腫瘤的機器學習模型的精確率:

該模型的精確率為 0.5,也就是說,該模型在預測惡性腫瘤方面的正確率是 50%。

4.2 召回率

召回率嘗試回答以下問題:在所有正類別樣本中,被正確識別為正類別的比例是多少?

從數學上講,召回率的定義如下:

⭐️ 注意:如果模型的預測結果中沒有假負例,則模型的召回率為 1.0。

讓我們來計算一下腫瘤分類器的召回率:

該模型的召回率是 0.11,也就是說,該模型能夠正確識別出所有惡性腫瘤的百分比是 11%。

4.3 精確率和召回率:一場拔河比賽

要全面評估模型的有效性,必須同時檢查精確率和召回率。遺憾的是,精確率和召回率往往是此消彼長的情況。也就是說,提高精確率通常會降低召回率值,反之亦然。請觀察下圖來了解這一概念,該圖顯示了電子郵件分類模型做出的 30 項預測。分類閾值右側的被歸類為「垃圾郵件」,左側的則被歸類為「非垃圾郵件」。

圖 1. 將電子郵件歸類為垃圾郵件或非垃圾郵件

我們根據圖 1 所示的結果來計算精確率和召回率值:

精確率指的是被標記為垃圾郵件的電子郵件中正確分類的電子郵件所佔的百分比,即圖 1 中閾值線右側的綠點所佔的百分比:

召回率指的是實際垃圾郵件中正確分類的電子郵件所佔的百分比,即圖 1 中閾值線右側的綠點所佔的百分比:

圖 2 顯示了提高分類閾值產生的效果。

圖2. 提高分類閾值

假正例數量會減少,但假負例數量會相應地增加。結果,精確率有所提高,而召回率則有所降低:

相反,圖 3 顯示了降低分類閾值(從圖 1 中的初始位置開始)產生的效果。

圖 3.降低分類閾值

假正例數量會增加,而假負例數量會減少。結果這一次,精確率有所降低,而召回率則有所提高:

我們已根據精確率和召回率指標制定了各種指標。有關示例,請參閱 F1 值。

學習理解

讓我們以一種將電子郵件分為「垃圾郵件」或「非垃圾郵件」這兩種類別的分類模型為例。如果提高分類閾值,精確率會怎樣?

讓我們以一種將電子郵件分為「垃圾郵件」或「非垃圾郵件」這兩種類別的分類模型為例。如果提高分類閾值,召回率會怎樣?

以兩個模型(A 和 B)為例,這兩個模型分別對同一數據集進行評估。以下哪一項陳述屬實?

如果模型 A 的精確率優於模型 B,則模型 A 更好。如果模型 A 的精確率和召回率均優於模型 B,則模型 A 可能更好。如果模型 A 的召回率優於模型 B,則模型 A 更好。五、ROC 和 AUC5.1 ROC 曲線

ROC 曲線(接收者操作特徵曲線)是一種顯示分類模型在所有分類閾值下的效果圖表。該曲線繪製了以下兩個參數:

真正例率 (TPR) 是召回率的同義詞,因此定義如下:

假正例率 (FPR) 的定義如下:

ROC 曲線用於繪製採用不同分類閾值時的 TPR 與 FPR。降低分類閾值會導致將更多樣本歸為正類別,從而增加假正例和真正例的個數。下圖顯示了一個典型的 ROC 曲線。

圖 4. 不同分類閾值下的 TP 率與 FP 率

為了計算 ROC 曲線上的點,我們可以使用不同的分類閾值多次評估邏輯回歸模型,但這樣做效率非常低。幸運的是,有一種基於排序的高效算法可以為我們提供此類信息,這種算法稱為曲線下面積。

5.2 曲線下面積:ROC 曲線下面積

曲線下面積表示「ROC 曲線下面積」。也就是說,曲線下面積測量的是從 (0,0) 到 (1,1) 之間整個 ROC 曲線以下的整個二維面積(參考積分學)。

圖 5. 曲線下面積(ROC 曲線下面積)

曲線下面積對所有可能的分類閾值的效果進行綜合衡量。曲線下面積的一種解讀方式是看作模型將某個隨機正類別樣本排列在某個隨機負類別樣本之上的概率。以下面的樣本為例,邏輯回歸預測從左到右以升序排列:

圖 6. 預測按邏輯回歸分數以升序排列

曲線下面積表示隨機正類別(綠色)樣本位於隨機負類別(紅色)樣本右側的概率。

曲線下面積的取值範圍為 0-1。預測結果 100% 錯誤的模型的曲線下面積為 0.0;而預測結果 100% 正確的模型的曲線下面積為 1.0。

曲線下面積因以下兩個原因而比較實用:

曲線下面積的尺度不變。它測量預測的排名情況,而不是測量其絕對值。曲線下面積的分類閾值不變。它測量模型預測的質量,而不考慮所選的分類閾值。

不過,這兩個原因都有各自的局限性,這可能會導致曲線下面積在某些用例中不太實用:

並非總是希望尺度不變。例如,有時我們非常需要被良好校準的概率輸出,而曲線下面積無法告訴我們這一結果。並非總是希望分類閾值不變。在假負例與假正例的代價存在較大差異的情況下,儘量減少一種類型的分類錯誤可能至關重要。例如,在進行垃圾郵件檢測時,你可能希望優先考慮儘量減少假正例(即使這會導致假負例大幅增加)。對於此類優化,曲線下面積並非一個實用的指標。學習理解

以下哪條 ROC 曲線可產生大於 0.5 的 AUC 值?

將給定模型的所有預測結果都乘以 2.0(例如,如果模型預測的結果為 0.4,我們將其乘以 2.0 得到 0.8),會使按 AUC 衡量的模型效果產生何種變化?

這會使 AUC 變得更好,因為預測值之間相差都很大。這會使 AUC 變得很糟糕,因為預測值現在相差太大。六、預測偏差

邏輯回歸預測應當無偏差。即:

預測偏差指的是這兩個平均值之間的差值。即:

預測偏差=預測平均值−數據集中相應標籤的平均值

⭐️ 注意:「預測偏差」與偏差(「wx + b」中的「b」)不是一回事。

如果出現非常高的非零預測偏差,則說明模型某處存在錯誤,因為這表明模型對正類別標籤的出現頻率預測有誤。

例如,假設我們知道,所有電子郵件中平均有 1% 的郵件是垃圾郵件。如果我們對某一封給定電子郵件一無所知,則預測它是垃圾郵件的可能性為 1%。同樣,一個出色的垃圾郵件模型應該預測到電子郵件平均有 1% 的可能性是垃圾郵件。(換言之,如果我們計算單個電子郵件是垃圾郵件的預測可能性的平均值,則結果應該是 1%。)然而,如果該模型預測電子郵件是垃圾郵件的平均可能性為 20%,那麼我們可以得出結論,該模型出現了預測偏差。

造成預測偏差的可能原因包括:

你可能會通過對學習模型進行後期處理來糾正預測偏差,即通過添加校準層來調整模型的輸出,從而減小預測偏差。例如,如果你的模型存在 3% 以上的偏差,則可以添加一個校準層,將平均預測偏差降低 3%。但是,添加校準層並非良策,具體原因如下:

如果可能的話,請避免添加校準層。使用校準層的項目往往會對其產生依賴

最終,維護校準層可能會令人苦不堪言。

⭐️ 注意:出色模型的偏差通常接近於零。即便如此,預測偏差低並不能證明你的模型比較出色。特別糟糕的模型的預測偏差也有可能為零。例如,只能預測所有樣本平均值的模型是糟糕的模型,儘管其預測偏差為零。

七、分桶偏差和預測偏差

邏輯回歸可預測 0 到 1 之間的值。不過,所有帶標籤樣本都正好是 0(例如,0 表示「非垃圾郵件」)或 1(例如,1 表示「垃圾郵件」)。因此,在檢查預測偏差時,你無法僅根據一個樣本準確地確定預測偏差;你必須在「一大桶」樣本中檢查預測偏差。也就是說,只有將足夠的樣本組合在一起以便能夠比較預測值(例如 0.392)與觀察值(例如 0.394),邏輯回歸的預測偏差才有意義。

你可以通過以下方式構建桶:

請查看以下某個特定模型的校準曲線。每個點表示包含 1000 個值的分桶。兩個軸具有以下含義:

兩個軸均採用對數尺度。

圖 7. 預測偏差曲線

為什麼只有模型的某些部分所做的預測如此糟糕?以下是幾種可能性:

相關焦點

  • 機器學習分類算法總結
    主要的決策樹算法有ID3、C4.5(C5.0)、CART、PUBLIC、SLIQ和SPRINT算法等。它們在選擇測試屬性採用的技術、生成的決策樹的結構、剪枝的方法以及時刻,能否處理大數據集等方面都有各自的不同之處。 (2)貝葉斯 貝葉斯(Bayes)分類算法是一類利用概率統計知識進行分類的算法,如樸素貝葉斯(Naive Bayes)算法。
  • 淺談機器學習分類算法
    目前隨著人工智慧的發展,機器學習的應用領域日益寬泛,各種機器學習適應不同的應用場景,而機器學習差別的關鍵點之一就在於所使用算法的不同,
  • 機器學習常見算法分類匯總
    機器
  • 14種機器學習常見算法分類匯總!
    很多人在平時的工作中都或多或少會用到機器學習的算法。這裡總結一下常見的機器學習算法,以供您在工作和學習中參考。機器學習的算法很多。很多時候困惑人們都是,很多算法是一類算法,而有些算法又是從其他算法中延伸出來的。這裡,我們從兩個方面來給大家介紹,第一個方面是學習的方式,第二個方面是算法的類似性。根據數據類型的不同,對一個問題的建模有不同的方式。
  • 【機器學習】監督式和非監督式機器學習算法
  • 大數據之機器學習常見算法分類匯總
    機器學習無疑是當前數據分析領域的一個熱點內容。很多人在平時的工作中都或多或少會用到機器學習的算法。這裡IT經理網為您總結一下常見的機器學習算法,以供您在工作和學習中參考。機器學習的算法很多。很多時候困惑人們都是,很多算法是一類算法,而有些算法又是從其他算法中延伸出來的。這裡,我們從兩個方面來給大家介紹,第一個方面是學習的方式,第二個方面是算法的類似性。學習方式根據數據類型的不同,對一個問題的建模有不同的方式。在機器學習或者人工智慧領域,人們首先會考慮算法的學習方式。
  • 機器學習算法分類與其優缺點分析
    機器學習算法的分類是棘手的,有幾種合理的分類,他們可以分為生成/識別,參數/非參數,監督/無監督等。
  • 機器學習算法一覽
    把問題解決思路和方法應用建議提前到這裡的想法也很簡單,希望能提前給大家一些小建議,對於某些容易出錯的地方也先給大家打個預防針,這樣在理解後續相應機器學習算法之後,使用起來也有一定的章法。2.機器學習算法簡述按照不同的分類標準,可以把機器學習的算法做不同的分類。
  • 算法應用|機器學習python應用,初識機器學習是怎樣滴感受?
    本系列文章主要介紹機器學習在實踐中的應用,介紹利用 Python 的生態環境,使用機器學習的算法來解決工程實踐中的問題,而不是介紹算法本身。本系列文章參考了《機器學習Python實踐》,會通過例子一步一步地引導大家使用機器學習來處理和分類與回歸模型相關的問題。
  • 各種機器學習分類算法的優缺點
    機器學習中有許多分類算法。本文將介紹分類中使用的各種機器學習算法的優缺點,還將列出他們的應用範圍。SVM(支持向量機)SVM的優點:1.在高維中表現良好。在現實世界中有無限維度(不僅僅是2D和3D)。2.類可分離時的最佳算法(當兩個類的實例可以通過直線或非線性輕鬆分隔時)。為了描述可分離的類,讓我們舉個例子(這裡以線性分離為例,通過繪製拋物線等,類也可以是非線性可分離的)。在第一個圖中,您無法輕易分辨X是屬於類1還是類2,但是在情況2中,您可以輕易判斷出X屬於類2。因此,在第二種情況下,類是線性可分離的。3.
  • 機器學習中的目標函數總結
    關注「SIGAI公眾號」,選擇「星標」或「置頂」原創技術文章,第一時間獲取機器學習中的目標函數總結SIGAI幾乎所有的機器學習算法都歸結為求解最優化問題。有監督學習算法在訓練時通過優化一個目標函數而得到模型,然後用模型進行預測。無監督學習算法通常通過優化一個目標函數完成數據降維或聚類。
  • 萬象智慧|機器學習分類算法介紹(一)
    很多人在平時的工作中都或多或少會用到機器學習的算法。這裡中誠信徵信數據分析團隊-追AI騎士為您歸納整理一下常見的機器學習分類算法,以供您在工作和學習中參考。機器學習本質上就是一種對問題真實模型的逼近。其中有監督的分類算法在眾多的業務場景得到了非常廣泛的應用,如:根據個人的學歷、性別、年齡等信息判斷用戶是否會違約等。
  • [算法]機器學習分類模型評估指標
    ,有監督主要是各種分類和回歸的算法,無監督主要是聚類。新的機器學習方法主要包括:深度學習和強化學習。深度學習中可以做分類和回歸的無監督算法,在無監督學習方法主要還是做分類,深度學習的無監督主要是生成模型GAN。強化學習是一種激勵性的學習方式,其評價方式也比較獨特。
  • 數據挖掘算法:常用分類算法總結
    分類算法NBC算法LR算法SVM算法ID3算法C4.5 算法C5.0算法KNN 算法ANN 算法分類算法分類是在一群已經知道類別標號的樣本中,訓練一種分類器,讓其能夠對某種未知的樣本進行分類。2.算法是基於條件獨立性假設的,在實際應用中很難成立,故會影響分類效果LR算法LR 回歸是當前業界比較常用的機器學習方法,用於估計某種事物的可能性。
  • 小白必看的機器學習入門知識
    三、機器學習的特點機器學習的特點主要歸納為以下幾點:機器學習算法以數據和特徵為基礎,是數據驅動的科學;機器學習的目標是對數據進行預測與分析;機器學習以模型方法為中心,並利用統計學習的方法構建模型,並且利用構建好的模型對未知的數據進行預測和分類
  • 機器學習十大算法都是何方神聖?
    通過這門課程我學到了很多知識,在將來我還要繼續學習。最近幾周,我有幸在舊金山的舉辦的機器學習大會上與眾多機器學習大牛交談,我和他們聊了很多關於深度學習雷鋒網(公眾號:雷鋒網)按:機器學習與人工智慧變得越來越熱。大數據原本在工業界中就已經炙手可熱,而基於大數據的機器學習則更加流行,因為其通過對數據的計算,可以實現數據預測、為公司提供決策依據。
  • 一文讀懂機器學習分類算法(附圖文詳解)
    說起分類算法,相信學過機器學習的同學都能侃上一二。可是,你能夠如數家珍地說出所有常用的分類算法,以及他們的特徵、優缺點嗎?比如說,你可以快速地回答下面的問題麼:KNN算法的優缺點是什麼?Naive Bayes算法的基本假設是什麼?
  • 文本分類的14種算法
    AI算法工程   公眾號:datayx之前介紹了14種文本分類中的常用算法,包括8種傳統算法:k臨近、決策樹、多層感知器、樸素貝葉斯(包括伯努利貝葉斯、高斯貝葉斯和多項式貝葉斯)、邏輯回歸和支持向量機;4種集成學習算法:隨機森林、AdaBoost、lightGBM和xgBoost;2種深度學習算法:前饋神經網絡和LSTM。
  • 新手必看的十種機器學習算法
    雷鋒網 AI 科技評論按:在神經網絡的成功的帶動下,越來越多的研究人員和開發人員都開始重新審視機器學習,開始嘗試用某些機器學習方法自動解決可以輕鬆採集數據的問題。然而,在眾多的機器學習算法中,哪些是又上手快捷又功能強大、適合新手學習的呢?Towards Data Science 上一篇文章就介紹了十種新手必看的機器學習算法,雷鋒網 AI 科技評論全文編譯如下。
  • 算法應用|機器學習python應用,簡單機器學習項目實踐
    上一篇文章中介紹了機器學習的簡單知識,還有python中進行機器學習實踐需要的生態環境,接下來將會通過鳶尾花分類這個例子對機器學習做一個簡要的介紹。通過一步一步地實現這個項目來介紹以下內容。導入和使用python中機器學習的各個方面的類庫。