import
matplotlib.pyplot as plt
from
sklearn.datasets
import
load_breast_cancer
from
sklearn.linear_model
import
LogisticRegression
from
sklearn.model_selection
import
train_test_split
from
sklearn.metrics
import
brier_score_loss
data
=
load_breast_cancer()
X
=
data.data
y
=
data.target
X_train, X_test, y_train, y_test
=
train_test_split(X, y,
test_size
=
0.2
,
random_state
=
23
)
clf
=
LogisticRegression(max_iter
=
1000
, random_state
=
23
)
clf.fit(X_train, y_train)
prob_pos
=
clf.predict_proba(X_test)[:,
1
]
b_score
=
brier_score_loss(y_test, prob_pos)
print
(
"Brier Score :"
,b_score)
true_pos, pred_pos
=
calibration_curve(y_test, prob_pos, n_bins
=
10
)
plt.plot(pred_pos,
true_pos,
marker
=
'o'
,
linewidth
=
1
,
label
=
'Logistic Regression'
)
plt.plot([
0
,
1
],
[
0
,
1
],
linestyle
=
'--'
,
label
=
'Perfectly Calibrated'
)
plt.title(
'Probability Calibration Curve'
)
plt.xlabel(
'Predicted Probability'
)
plt.ylabel(
'True Probability'
)
plt.legend(loc
=
'best'
)
plt.show()