欢迎访问宙启技术站
智能推送

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()

运行代码之后,我们将会得到一个校准曲线图像,该图像展示了逻辑回归分类器的预测概率与真实标签之间的关系。通过观察校准曲线,我们可以评估分类器的预测概率的准确性和可靠性。