ROC曲线(Receiver Operating Characteristic Curve)是一种用于评估分类器性能的图形工具,它显示了在不同阈值下真阳性率(True Positive Rate, TPR)和假阳性率(False Positive Rate, FPR)之间的关系,下面是一个使用Python和matplotlib库绘制ROC曲线的例子:
(图片来源网络,侵删)
确保已经安装了所需的库:
pip install numpy matplotlib scikit-learn
可以使用以下代码来生成ROC曲线:
import numpy as np from sklearn import metrics import matplotlib.pyplot as plt from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression 创建一个模拟数据集 X, y = make_classification(n_samples=1000, n_features=20, n_classes=2, random_state=42) 将数据集分为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) 使用逻辑回归模型进行分类 clf = LogisticRegression() clf.fit(X_train, y_train) y_pred_proba = clf.predict_proba(X_test)[::, 1] 计算不同阈值下的真阳性率和假阳性率 fpr, tpr, thresholds = metrics.roc_curve(y_test, y_pred_proba) 计算AUC值 roc_auc = metrics.auc(fpr, tpr) 绘制ROC曲线 plt.figure() plt.plot(fpr, tpr, color='darkorange', lw=2, label='ROC curve (area = %0.2f)' % roc_auc) plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--') plt.xlim([0.0, 1.0]) plt.ylim([0.0, 1.05]) plt.xlabel('False Positive Rate') plt.ylabel('True Positive Rate') plt.title('Receiver Operating Characteristic Example') plt.legend(loc="lower right") plt.show()
这段代码首先创建了一个模拟的二分类数据集,并将其分为训练集和测试集,使用逻辑回归模型对测试集进行分类,并计算预测概率,使用metrics.roc_curve
函数计算不同阈值下的真阳性率和假阳性率,使用matplotlib绘制ROC曲线,并计算AUC值。
(图片来源网络,侵删)
本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/61535.html