1. 程式人生 > >機器學習之分類(Classification) 精確率、準確率、召回率

機器學習之分類(Classification) 精確率、準確率、召回率

在機器學習中,模型評估涉及許多方法和名次,在此將其彙總一下,方便以後溫習。

一 分類 (Classification):真假與正類負類

a.  真正例(TP) 是指模型將正類別樣本正確地預測為正類別。

b.  真負例(TN) 是指模型將負類別樣本正確地預測為負類別。

c.   假正例(FP) 是指模型將負類別樣本錯誤地預測為正類別。

d.  真負例(FN) 是指模型將負類別樣本正確地預測為負類別。

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

二  分類 (Classification):精確率

1 準確率 是指我們的模型預測正確的結果所佔的比。

準確率是一個用於評估分類模型的指標,正式點說,準確率的定義如下:

讓我們來試著計算一下以下模型的準確率,該模型將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 個預測正確)。換言之,我們的模型與那些沒有預測能力來區分惡性腫瘤和良性腫瘤的模型差不多。

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

由此,引出了精確率召回率兩個概念,他們能很好的評估分類不平衡問。

三 分類 (Classification):精確率和召回率

1 精確率

精確率指標嘗試回答以下問題:

在被識別為正類別的樣本中,確實為正類別的比例是多少?

精確率的定義如下:

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

2 召回率

召回率嘗試回答以下問題:

在所有正類別樣本中,被正確識別為正類別的比例是多少?

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

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

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

要全面評估模型的有效性,必須同時

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



由此可見:

1 提高分類閾值,精確率可能會提高(因為FP可能會減小);召回率會下降或保持不變(因為TP會減少或不變,且FN會增加或不變)

2 降低分類閾值,精確率可能會下降(因為FP可能會增加),而召回率(FN可能會減少)可能會有所提高

四 分類 (Classification):ROC和曲線下面積

1 ROC 曲線

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

  • 真正例率
  • 假正例率

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

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

2 曲線下面積:ROC 曲線下面積

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

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

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

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

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

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

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

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

有興趣的還可以翻看一下我的前一篇文章: 機器學習之特徵工程

相關推薦

機器學習分類(Classification) 精確準確率召回

在機器學習中,模型評估涉及許多方法和名次,在此將其彙總一下,方便以後溫習。一 分類 (Classification):真假與正類負類a.  真正例(TP) 是指模型將正類別樣本正確地預測為正類別。b.  真負例(TN) 是指模型將負類別樣本正確地預測為負類別。c.   假正例

機器學習分類問題的評估指標2---準確率精確召回以及F1值

本節主要了解一下sklearn.metrics下計算準確率、精確率、召回率和F1值的函式以及對於多分類問題計算時的理解 1、sklearn.metrics.accuracy_score(y_true, y_pred, normalize=True, sample_weigh

機器學習分類效能度量指標 : ROC曲線AUC值正確率召回敏感度特異度

在分類任務中,人們總是喜歡基於錯誤率來衡量分類器任務的成功程度。錯誤率指的是在所有測試樣例中錯分的樣例比例。實際上,這樣的度量錯誤掩蓋了樣例如何被分錯的事實。在機器學習中,有一個普遍適用的稱為混淆矩陣(confusion matrix)的工具,它可以幫助人們

機器學習分類器——Matlab中各種分類器的使用總結(隨機森林支援向量機K近鄰分類樸素貝葉斯等)

      Matlab中常用的分類器有隨機森林分類器、支援向量機(SVM)、K近鄰分類器、樸素貝葉斯、整合學習方法和鑑別分析分類器等。各分類器的相關Matlab函式使用方法如下:首先對以下介紹中所用到的一些變數做統一的說明:    train_data——訓練樣本,矩陣的每

機器學習分類問題實戰(基於UCI Bank Marketing Dataset)

表示 般的 機構 文件 cnblogs opened csv文件 mas htm 導讀: 分類問題是機器學習應用中的常見問題,而二分類問題是其中的典型,例如垃圾郵件的識別。本文基於UCI機器學習數據庫中的銀行營銷數據集,從對數據集進行探索,數據預處理和特征工程,到學習

機器學習分類和迴歸區別闡述

很多人分不清楚分類和迴歸,我來講一下,我們經常會碰到這樣的問題: 1、如何將信用卡申請人分為低、中、高風險群? 2、如何預測哪些顧客在未來半年內會取消該公司服務,哪些電話使用者會申請增值服務? 3、如何預測具有某些特徵的顧客是否會購買一臺新的計算機? 4、如何預測病人應當接受三種

機器學習分類決策樹DecisionTreeClassifier

機器學習之分類決策樹DecisionTreeClassifier # -*- coding: utf-8 -*- """ Created on Fri Nov 23 21:06:54 2018 @author: muli """ import numpy as np

機器學習演算法中的評價指標(準確率召回F值ROCAUC等)

參考連結:https://www.cnblogs.com/Zhi-Z/p/8728168.html 具體更詳細的可以查閱周志華的西瓜書第二章,寫的非常詳細~ 一、機器學習效能評估指標 1.準確率(Accurary)   準確率是我們最常見的評價指標,而且很容易理解,就是被分對的樣本

機器學習分類問題的效能度量

機器學習之分類問題的效能度量 # -*- coding: utf-8 -*- """ Created on Mon Dec 10 10:54:09 2018 @author: muli """ from sklearn.metrics import accuracy

機器學習分類迴歸樹CART

CART:Classification and regression tree,分類與迴歸樹。(是二叉樹) CART是決策樹的一種,主要由特徵選擇,樹的生成和剪枝三部分組成。它主要用來處理分類和迴歸問題,下面對分別對其進行介紹。 1、迴歸樹:使用平方誤差最小準則

基於Python的機器學習分類學習

所有的資料集都可以從sklearn.datasets中獲得 在評估時,一般使用F1指標,即使用了調和平均數,除了具備平均功能,還會對那些召回率和精血率更加接近的模型給予更高的分數。 分類學習 線性分類器(Linear Classifiers) 線性分類器通過累加計算每

機器學習分類

運動狀態的程式編寫 # -*- coding: utf-8 -*- """ Created on Sun Apr 15 14:20:53 2018 @author: Administrator """ import pandas as pd import numpy as np # 從sklea

機器學習分類器的進階

專案中我用到的分類器是隨機森林。  理解隨機森林,我先po一篇論文。George Vosselman教授的  http://www.sciencedirect.com/science/article/pii/S0924271616306207  這裡面用到的分類器是CRF以

機器學習線性代數基礎一 矩陣乘法特徵值特徵向量的幾何意義

  寫篇文章把自己對矩陣的理解記錄一下,有不對的地方歡迎指正。為簡單、直觀、視覺化起見,我們只以簡單的二維和三維空間為例。高維空間也是同樣的道理,只是不能視覺化,只能通過數學公式來證明。 1. 矩陣乘法   矩陣乘法來源於線性方程組的求解,為了方便起見,

機器學習深入理解神經網路理論基礎BP演算法及其Python實現

  人工神經網路(Artificial Neural Networks,ANN)系統是 20 世紀 40 年代後出現的。它是由眾多的神經元可調的連線權值連線而成,具有大規模並行處理、分散式信 息儲存、良

Spark機器學習分類與迴歸

本頁面介紹了分類和迴歸的演算法。 它還包括討論特定類別的演算法的部分,如線性方法,樹和集合體。 目錄 分類 Classification -----------邏輯迴歸 Logistic regression -------------------二項式邏輯迴

Spark隨機森林演算法對資料分類(一)——計算準確率召回

1.召回率和正確率計算 對於一個K元的分類結果,我們可以得到一個K∗K的混淆矩陣,得到的舉證結果如下圖所示。 從上圖所示的結果中不同的元素表示的含義如下: mij :表示實際分類屬於類i,在預測過程中被預測到分類j 對於所有的mij可以概括為四種方式

【深度學習-機器學習分類度量指標 : 正確率召回靈敏度特異度,ROC曲線AUC等

在分類任務中,人們總是喜歡基於錯誤率來衡量分類器任務的成功程度。錯誤率指的是在所有測試樣例中錯分的樣例比例。實際上,這樣的度量錯誤掩蓋了樣例如何被分錯的事實。在機器學習中,有一個普遍適用的稱為混淆矩陣(confusion matrix)的工具,它可以幫助人們更好地瞭解

機器學習筆記04:邏輯迴歸(Logistic regression)分類(Classification)

說明:本文章所有圖片均屬於Stanford機器學課程,轉載請註明出處 面對一些類似迴歸問題,我們可以通過線性迴歸方法來擬合一個函式,以此來預測資料,但它的輸出是連續的。有時候呢,我們需要一種方法給出一個判定結果,例如”同意(agree)”、”不同意

機器學習 決策樹(Decision Tree)文字演算法的精確

目錄 背景 效果圖 整體流程 這裡用詞向量,而不是TF-IDF預處理後的向量 原始碼 背景 最近的專案中,用到了很多機器學習的演算法,每個機器學習的演算法在不同的樣本下的精準率是不同的。為了驗證每個演算法在每種不同樣本數