相关疑难解决方法(0)

如何解释几乎完美的准确性和AUC-ROC但零f1分数,精确度和召回率

我正在训练ML逻辑分类器使用python scikit-learn对两个类进行分类.他们的数据非常不平衡(约14300:1).我的准确度和ROC-AUC几乎达到100%,但精度,召回率和f1得分均为0%.我知道准确性通常对非常不平衡的数据没有用,但为什么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
Run Code Online (Sandbox Code Playgroud)

以上是使用逻辑回归,下面是使用决策树,决策矩阵看起来几乎相同,但AUC有很大不同.

1= class1
0= class2
Class count:
0    199979
1        21 …
Run Code Online (Sandbox Code Playgroud)

classification machine-learning roc precision-recall

12
推荐指数
1
解决办法
9634
查看次数