xgboost校准曲线代码
时间: 2023-10-23 13:09:19 浏览: 271
下面是一个使用XGBoost模型进行校准曲线绘制的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.calibration import calibration_curve
import xgboost as xgb
# 生成二分类样本数据
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)
# 训练XGBoost模型
clf = xgb.XGBClassifier()
clf.fit(X_train, y_train)
# 获取预测概率
y_pred = clf.predict_proba(X_test)[:, 1]
# 绘制校准曲线
fraction_of_positives, mean_predicted_value = calibration_curve(y_test, y_pred, n_bins=10)
plt.plot(mean_predicted_value, fraction_of_positives, 's-', label='XGBoost')
plt.plot([0, 1], [0, 1], '--', label='Ideal')
plt.legend()
plt.title('Calibration Curve')
plt.xlabel('Mean Predicted Value')
plt.ylabel('Fraction of Positives')
plt.show()
```
该代码会生成一个校准曲线图,其中X轴为预测概率的平均值,Y轴为实际的正例占比。您可以根据需要修改参数,例如将`n_bins`参数设置为不同的值以获得更精细或更粗略的曲线。
阅读全文