選單
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

Python 教程

Python 主頁 Python 簡介 Python 入門 Python 語法 Python 註釋 Python 變數 Python 資料型別 Python 數字 Python 型別轉換 Python 字串 Python 布林值 Python 運算子 Python 列表 Python 元組 Python 集合 Python 字典 Python If...Else Python While 迴圈 Python For 迴圈 Python 函式 Python Lambda Python 陣列 Python 類/物件 Python 繼承 Python 迭代器 Python 多型 Python 作用域 Python 模組 Python 日期 Python 數學 Python JSON Python 正則表示式 Python PIP Python Try...Except Python 使用者輸入 Python 字串格式化

檔案處理

Python 檔案處理 Python 讀取檔案 Python 寫入/建立檔案 Python 刪除檔案

Python 模組

NumPy 教程 Pandas 教程 SciPy 教程 Django 教程

Python Matplotlib

Matplotlib 簡介 Matplotlib 入門 Matplotlib Pyplot Matplotlib 繪圖 Matplotlib 標記 Matplotlib 線條 Matplotlib 標籤 Matplotlib 網格 Matplotlib 子圖 Matplotlib 散點圖 Matplotlib 條形圖 Matplotlib 直方圖 Matplotlib 餅圖

機器學習

入門 均值、中位數、眾數 標準差 百分位數 資料分佈 正態資料分佈 散點圖 線性迴歸 多項式迴歸 多元迴歸 縮放 訓練/測試 決策樹 混淆矩陣 層次聚類 邏輯迴歸 網格搜尋 分類資料 K-means 自舉聚合 交叉驗證 AUC - ROC 曲線 K-近鄰

Python MySQL

MySQL 入門 MySQL 建立資料庫 MySQL 建立表 MySQL 插入 MySQL 選擇 MySQL Where MySQL Order By MySQL 刪除 MySQL 刪除表 MySQL 更新 MySQL Limit MySQL Join

Python MongoDB

MongoDB 入門 MongoDB 建立資料庫 MongoDB 集合 MongoDB 插入 MongoDB Find MongoDB Query MongoDB Sort MongoDB 刪除 MongoDB 刪除集合 MongoDB 更新 MongoDB Limit

Python 參考

Python 概述 Python 內建函式 Python 字串方法 Python 列表方法 Python 字典方法 Python 元組方法 Python 集合方法 Python 檔案方法 Python 關鍵字 Python 異常 Python 詞彙表

模組參考

Random 模組 Requests 模組 Statistics 模組 Math 模組 cMath 模組

Python 如何操作

刪除列表重複項 反轉字串 兩個數字相加

Python 示例

Python 示例 Python 編譯器 Python 練習 Python 測驗 Python 伺服器 Python 面試問答 Python 訓練營 Python 證書

機器學習 - 混淆矩陣


在此頁面上,W3schools.com 與 紐約資料科學學院 合作,為我們的學生提供數字培訓內容。


什麼是混淆矩陣?

它是一個在分類問題中用於評估模型錯誤所在的表格。

行代表實際應該為的類別。列代表我們做出的預測。使用此表格可以輕鬆檢視哪些預測是錯誤的。

建立混淆矩陣

可以透過邏輯迴歸進行的預測來建立混淆矩陣。

現在,我們將使用 NumPy 來生成實際值和預測值。

import numpy

接下來,我們需要生成“實際”和“預測”值的數字。

actual = numpy.random.binomial(1, 0.9, size = 1000)
predicted = numpy.random.binomial(1, 0.9, size = 1000)

為了建立混淆矩陣,我們需要從 sklearn 模組匯入 metrics。

from sklearn import metrics

匯入 metrics 後,我們就可以在實際值和預測值上使用混淆矩陣函式。

confusion_matrix = metrics.confusion_matrix(actual, predicted)

為了建立更易於理解的視覺化顯示,我們需要將表格轉換為混淆矩陣顯示。

cm_display = metrics.ConfusionMatrixDisplay(confusion_matrix = confusion_matrix, display_labels = [0, 1])

視覺化顯示需要我們從 matplotlib 匯入 pyplot。

import matplotlib.pyplot as plt

最後,我們可以使用 pyplot 的 plot() 和 show() 函式來顯示圖表。

cm_display.plot()
plt.show()

觀看整個示例的實際演示

示例

import matplotlib.pyplot as plt
import numpy
from sklearn import metrics

actual = numpy.random.binomial(1,.9,size = 1000)
predicted = numpy.random.binomial(1,.9,size = 1000)

confusion_matrix = metrics.confusion_matrix(actual, predicted)

cm_display = metrics.ConfusionMatrixDisplay(confusion_matrix = confusion_matrix, display_labels = [0, 1])

cm_display.plot()
plt.show()

結果

執行示例 »

結果解釋

建立的混淆矩陣有四個不同的象限

真負例(左上角象限)
假正例(右上角象限)
假負例(左下角象限)
真正例(右下角象限)

真表示預測值準確,假表示有錯誤或預測錯誤。

現在我們已經建立了一個混淆矩陣,我們可以計算不同的指標來量化模型的質量。首先,我們來看一下準確率。


廣告


建立的指標

該矩陣為我們提供了許多有用的指標,可以幫助我們評估分類模型。

不同的度量包括:準確率、精確率、召回率(靈敏度)、特異度和 F1 分數,如下所述。


準確率

準確率衡量模型在多大程度上是正確的。

如何計算

(真正例 + 真負例) / 總預測數

示例

Accuracy = metrics.accuracy_score(actual, predicted)
執行示例 »

精確率

在預測為正例的樣本中,有多少比例是真正的正例?

如何計算

真正例 / (真正例 + 假正例)

精確率不評估正確預測的負例。

示例

Precision = metrics.precision_score(actual, predicted)
執行示例 »

召回率(靈敏度)

在所有實際為正例的樣本中,有多少比例被預測為正例?

召回率(有時也稱為靈敏度)衡量模型預測正例的準確性。

這意味著它關注真正例和假負例(即被錯誤預測為負例的正例)。

如何計算

真正例 / (真正例 + 假負例)

召回率有助於理解模型預測某個例項為正例的程度。

示例

Sensitivity_recall = metrics.recall_score(actual, predicted)
執行示例 »

特異度

模型預測負例的準確性如何?

特異度與召回率相似,但從負例的角度來看。

如何計算

真負例 / (真負例 + 假正例)

由於它與召回率正好相反,我們使用 recall_score 函式,傳入相反的標籤(pos_label=0)。

示例

Specificity = metrics.recall_score(actual, predicted, pos_label=0)
執行示例 »

F1 分數

F1 分數是精確率和召回率的“調和平均數”。

它同時考慮了假正例和假負例,並且對於不平衡資料集很有用。

如何計算

2 * ((精確率 * 召回率) / (精確率 + 召回率))

此分數不考慮真負例。

示例

F1_score = metrics.f1_score(actual, predicted)
執行示例 »

所有計算合在一起

示例

#metrics
print({"Accuracy":Accuracy,"Precision":Precision,"Sensitivity_recall":Sensitivity_recall,"Specificity":Specificity,"F1_score":F1_score})
執行示例 »

×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援