from sklearn.datasets import load_wine
X, y = load_wine(return_X_y=True)
# only keep two features in order to make this problem harder
X = X[:, 0:2]
from sklearn.linear_model import LogisticRegression
clf = LogisticRegression()
from sklearn.model_selection import train_test_split
from sklearn.metrics import roc_auc_score
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)
clf.fit(X_train, y_train)
y_score = clf.predict_proba(X_test)
# use 'ovo' (One-vs-One) or 'ovr' (One-vs-Rest)
roc_auc_score(y_test, y_score, multi_class='ovo')
0.9399801587301587
from sklearn.model_selection import cross_val_score
# use 'roc_auc_ovo' (One-vs-One) or 'roc_auc_ovr' (One-vs-Rest)
cross_val_score(clf, X, y, cv=5, scoring='roc_auc_ovo').mean()
0.9086960878627546
© 2020 Data School. All rights reserved.