Как интерпретировать почти идеальную точность и AUC-ROC, но ноль f1, точность и отзыв

Я обучаю ML Logistic Classifier классифицировать два класса, используя Python Scikit-Learn. Они находятся в крайне несбалансированных данных (около 14300: 1). Я получаю почти 100% точности и ROC-AUC, но 0% точности, отзыва и оценки f1. Я понимаю, что точность обычно бесполезна в очень несбалансированных данных, но почему показатель ROC-AUC также близок к идеальному?

from sklearn.metrics import roc_curve, auc

# Get ROC 
y_score = classifierUsed2.decision_function(X_test)
false_positive_rate, true_positive_rate, thresholds = roc_curve(y_test, y_score)
roc_auc = auc(false_positive_rate, true_positive_rate)
print 'AUC-'+'=',roc_auc

1= class1
0= class2
Class count:
0    199979
1        21

Accuracy: 0.99992
Classification report:
             precision    recall  f1-score   support

          0       1.00      1.00      1.00     99993
          1       0.00      0.00      0.00         7

avg / total       1.00      1.00      1.00    100000

Confusion matrix:
[[99992     1]
 [    7     0]]
AUC= 0.977116255281

Выше используется логистическая регрессия, ниже используется дерево решений, матрица решений выглядит практически идентично, но AUC сильно отличается.

1= class1
0= class2
Class count:
0    199979
1        21
Accuracy: 0.99987
Classification report:
             precision    recall  f1-score   support

          0       1.00      1.00      1.00     99989
          1       0.00      0.00      0.00        11

avg / total       1.00      1.00      1.00    100000

Confusion matrix:
[[99987     2]
 [   11     0]]
AUC= 0.4999899989

Ответы на вопрос(1)

Ваш ответ на вопрос