python 校准曲线
时间: 2023-11-25 14:52:35 浏览: 42
校准曲线是一种用于评估模型校准效果的可视化工具。在Python中,我们可以使用sklearn库中的calibration_curve函数来绘制校准曲线。下面是一个简单的例子:
假设我们有一个二分类模型,我们可以使用以下代码来绘制校准曲线:
```python
from sklearn.calibration import calibration_curve
from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
# 生成一个二分类数据集
X, y = make_classification(n_samples=10000, n_features=20, n_informative=10, n_redundant=0, random_state=42)
# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 训练一个逻辑回归模型
clf = LogisticRegression()
clf.fit(X_train, y_train)
# 绘制校准曲线
prob_pos = clf.predict_proba(X_test)[:, 1]
fraction_of_positives, mean_predicted_value = calibration_curve(y_test, prob_pos, n_bins=10)
plt.plot(mean_predicted_value, fraction_of_positives, "s-", label="Logistic Regression")
plt.plot([0, 1], [0, 1], "k--", label="Perfectly calibrated")
plt.legend()
plt.show()
```
在上面的代码中,我们首先生成了一个二分类数据集,然后将其分为训练集和测试集。接下来,我们训练了一个逻辑回归模型,并使用predict_proba函数获取测试集上的预测概率。最后,我们使用calibration_curve函数计算校准曲线的两个参数:fraction_of_positives和mean_predicted_value,并使用matplotlib库将其绘制出来。