Следующий код показывает, как при обучении на базе данных, созданных SMOTE, точность и roc_auc_score выглядят одинаково.
sm = SMOTE(random_state = 2) #creating SMOTE object
X_t, y_t = sm.fit_sample(X, y) #fitting X and y in smote and storing the new dataset in X_t and y_t
clf_temp = LinearDiscriminantAnalysis()
clf_temp.fit(X_t,y_t)
y_score = clf_temp.predict(X_t)
print(accuracy_score(y_t,y_score))
print(roc_auc_score(y_t,y_score))
0.8015075376884422
0.8015075376884422
, тогда как при обучении набор данных на том же классификаторе без SMOTE дает другой результат
clf_temp.fit(X,y)
y_score = clf_temp.predict(X)
print(accuracy_score(y,y_score))
print(roc_auc_score(y,y_score))
0.7996592361209712
0.7183922969169426