sklearn.calibration库中的CalibrationDisplay类如何绘制校准曲线
发布时间:2024-01-09 16:39:22
sklearn.calibration库中的CalibrationDisplay类是用于绘制校准曲线的工具类。校准曲线用于评估分类器的预测概率的稳定性和可靠性。在分类问题中,不同的分类器可能会输出不同的概率预测结果,而校准曲线可以用来衡量这些预测概率的准确性。
在下面的例子中,我们将使用一个二分类问题来示范如何使用CalibrationDisplay类绘制校准曲线。我们将使用sklearn的datasets模块中的breast_cancer数据集作为示例数据集,然后使用逻辑回归分类器进行分类,并绘制校准曲线。
首先,我们需要导入所需要的模块和函数:
from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.calibration import calibration_curve from sklearn.calibration import CalibrationDisplay import matplotlib.pyplot as plt
接下来,我们加载数据集,并将数据集划分为训练集和测试集:
data = load_breast_cancer() X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.2, random_state=42)
然后,我们创建一个逻辑回归分类器,并用训练集进行训练:
clf = LogisticRegression() clf.fit(X_train, y_train)
接着,我们使用predict_proba函数获取分类器对测试集样本的预测概率:
y_pred_proba = clf.predict_proba(X_test)[:, 1]
接下来,我们使用calibration_curve函数计算校准曲线所需的真实标签和预测概率值:
true_labels, predicted_probs = calibration_curve(y_test, y_pred_proba, n_bins=10)
然后,我们实例化CalibrationDisplay类,并使用plot_calibration_curve函数绘制校准曲线:
display = CalibrationDisplay(true_labels, predicted_probs) display.plot_calibration_curve() plt.show()
最后,我们调用plt.show()函数来显示校准曲线图像。
完整的代码如下所示:
from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.calibration import calibration_curve from sklearn.calibration import CalibrationDisplay import matplotlib.pyplot as plt # 加载数据集 data = load_breast_cancer() X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.2, random_state=42) # 创建逻辑回归分类器并训练 clf = LogisticRegression() clf.fit(X_train, y_train) # 获取分类器的预测概率 y_pred_proba = clf.predict_proba(X_test)[:, 1] # 计算校准曲线所需的真实标签和预测概率值 true_labels, predicted_probs = calibration_curve(y_test, y_pred_proba, n_bins=10) # 绘制校准曲线 display = CalibrationDisplay(true_labels, predicted_probs) display.plot_calibration_curve() plt.show()
运行代码之后,我们将会得到一个校准曲线图像,该图像展示了逻辑回归分类器的预测概率与真实标签之间的关系。通过观察校准曲线,我们可以评估分类器的预测概率的准确性和可靠性。
