from sklearn.datasets import load_breast_cancer
data = load_breast_cancer()
X = data.data
y = 1 - data.target
#Inverser 0 et 1 sur l'étiquette
X = X[:, :10]
from sklearn.linear_model import LogisticRegression
model_lor = LogisticRegression(max_iter=1000)
model_lor.fit(X, y)
y_pred = model_lor.predict(X)
・ 2 lignes x 2 colonnes sont affichées ・ Une matrice de données réelles et de données prédites est créée ・ En haut à gauche est (0, 0), en bas à droite est (1, 1)
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y, y_pred)
print(cm)
・ Pourcentage de prédictions correctes pour tous les résultats de prédiction
from sklearn.metrics import accuracy_score
accuracy_score(y, y_pred)
・ Pourcentage de ce qui était prévu comme positif par rapport à ce qui était prévu comme positif (Côté droit de la colonne)
from sklearn.metrics import precision_score
precision_score(y, y_pred)
・ Rapport entre les choses dont on peut prédire qu'elles sont positives et celles qui sont réellement positives (Côté descendant)
from sklearn.metrics import f1_score
f1_score(y, y_pred)
・ Moyenne harmonisée de rappel et de précision ・ Il y a un compromis entre précision et rappel
from sklearn.metrics import f1_score
f1_score(y, y_pred)
・ Une méthode pour exprimer si elle est classée 0 ou 1 par une valeur continue de 0-1 (lorsqu'elle est ajoutée, elle devient égale à 1) ・ 0.5 est défini comme seuil pour scilit-learn par défaut.
#model_lor.predict_proba(X)
import numpy as np
y_pred2 = (model_lor.predict_proba(X)[:, 1]>0.1).astype(np.int)
print(confusion_matrix(y, y_pred2))
print(accuracy_score(y, y_pred2))
print(recall_score(y, y_pred2))
・ AUC: zone sous la courbe ・ ROC: caractéristique de fonctionnement du récepteur ・ AUC est la zone inférieure de la courbe ROC ・ Courbe ROC ・ ・ ・ Axe horizontal: taux de faux positifs, FP Axe vertical: vrai taux positif, TP
from sklearn.metrics import roc_curve
probas = model_lor.predict_proba(X)
fpr, tpr, thresholds = roc_curve(y, probas[:, 1])
%matplotlib inline
import matplotlib.pyplot as plt
plt.style.use('fivethirtyeight')
fig, ax = plt.subplots()
fig.set_size_inches(4.8, 5)
ax.step(fpr, tpr, 'gray')
ax.fill_between(fpr, tpr, 0, color='skyblue', alpha=0.8)
ax.set_xlabel('False Positive Rate')
ax.set_ylabel('True Positive Rate')
ax.set_facecolor('xkcd:white')
plt.show()
from sklearn.metrics import roc_auc_score
roc_auc_score(y, probas[:, 1])
Recommended Posts