Я работаю с несбалансированным набором данных. Дает ли применение алгоритма SMOTE для повышения качества класса меньшинства ту же точность и roc_auc_score? - PullRequest
1 голос
/ 26 февраля 2020

Следующий код показывает, как при обучении на базе данных, созданных 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...