使用視覺化 API 的 ROC 曲線#

Scikit-learn 定義了一個簡單的 API 來為機器學習建立視覺化。此 API 的主要功能是允許快速繪圖和視覺調整,而無需重新計算。在此範例中,我們將示範如何透過比較 ROC 曲線來使用視覺化 API。

# Authors: The scikit-learn developers
# SPDX-License-Identifier: BSD-3-Clause

載入資料並訓練 SVC#

首先,我們載入葡萄酒資料集並將其轉換為二元分類問題。然後,我們在訓練資料集上訓練支援向量分類器。

import matplotlib.pyplot as plt

from sklearn.datasets import load_wine
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import RocCurveDisplay
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC

X, y = load_wine(return_X_y=True)
y = y == 2

X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
svc = SVC(random_state=42)
svc.fit(X_train, y_train)
SVC(random_state=42)
在 Jupyter 環境中,請重新執行此儲存格以顯示 HTML 表示法或信任筆記本。
在 GitHub 上,HTML 表示法無法呈現,請嘗試使用 nbviewer.org 載入此頁面。


繪製 ROC 曲線#

接下來,我們使用單次呼叫 sklearn.metrics.RocCurveDisplay.from_estimator 來繪製 ROC 曲線。傳回的 svc_disp 物件允許我們在未來的繪圖中繼續使用已為 SVC 計算的 ROC 曲線。

svc_disp = RocCurveDisplay.from_estimator(svc, X_test, y_test)
plt.show()
plot roc curve visualization api

訓練隨機森林並繪製 ROC 曲線#

我們訓練一個隨機森林分類器,並建立一個圖表將其與 SVC ROC 曲線進行比較。請注意,svc_disp 如何使用 plot 繪製 SVC ROC 曲線,而無需重新計算 roc 曲線本身的值。此外,我們將 alpha=0.8 傳遞給繪圖函數以調整曲線的 alpha 值。

rfc = RandomForestClassifier(n_estimators=10, random_state=42)
rfc.fit(X_train, y_train)
ax = plt.gca()
rfc_disp = RocCurveDisplay.from_estimator(rfc, X_test, y_test, ax=ax, alpha=0.8)
svc_disp.plot(ax=ax, alpha=0.8)
plt.show()
plot roc curve visualization api

腳本的總執行時間: (0 分鐘 0.177 秒)

相關範例

使用交叉驗證的接收者操作特徵 (ROC)

使用交叉驗證的接收者操作特徵 (ROC)

偵測錯誤權衡 (DET) 曲線

偵測錯誤權衡 (DET) 曲線

scikit-learn 0.22 的發行重點

scikit-learn 0.22 的發行重點

多類別接收者操作特徵 (ROC)

多類別接收者操作特徵 (ROC)

由 Sphinx-Gallery 產生之圖庫