当前位置:   article > 正文

sklearn包中对于分类问题,如何计算accuracy和roc_auc_score?_sklearn.metrics.roc_auc_score

sklearn.metrics.roc_auc_score

1. 基础条件

import numpy as np
from sklearn import metrics

y_true = np.array([1, 7, 4, 6, 3])
y_prediction = np.array([3, 7, 4, 6, 3])
  • 1
  • 2
  • 3
  • 4
  • 5

2. accuracy_score计算

acc = metrics.accuracy_score(y_true, y_prediction)
  • 1

这个没问题

3. roc_auc_score计算

The binary and multiclass cases expect labels with shape (n_samples,) while the multilabel case expects binary label indicators with shape (n_samples, n_classes).

因此metrics.roc_auc_score对于multiclasses类的roc_auc_score计算,需要一个二维array,每一列是表示分的每一类,每一行是表示是否为此类。

from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder(sparse=False)
enc.fit(y_true.reshape(-1, 1))
y_true_onehot = enc.transform(y_true.reshape(-1, 1))
y_predictions_onehot = \
    enc.transform(y_prediction.reshape(-1, 1))

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
In [201]: y_true_onehot
Out[201]: 
array([[1., 0., 0., 0., 0.],
       [0., 0., 0., 0., 1.],
       [0., 0., 1., 0., 0.],
       [0., 0., 0., 1., 0.],
       [0., 1., 0., 0., 0.]])

In [202]: y_predictions_onehot
Out[202]: 
array([[0., 1., 0., 0., 0.],
       [0., 0., 0., 0., 1.],
       [0., 0., 1., 0., 0.],
       [0., 0., 0., 1., 0.],
       [0., 1., 0., 0., 0.]])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
In [204]: enc.categories_
Out[204]: [array([1, 3, 4, 6, 7])]
  • 1
  • 2

所以结合enc.categories_y_true_onehoty_truey_true_onehot的对应关系如下:

Class13467
true value: 11
true value: 71
true value: 41
true value: 61
true value: 31

因此,对于y_predictiony_prediction_onehot的对应关系就是如下:

Class13467
Prediction value: 31
Prediction value: 71
Prediction value: 41
Prediction value: 61
Prediction value: 31

这就解释了上述y_true_onehoty_prediction_onehot的返回结果。

ensemble_auc = metrics.roc_auc_score(y_true_onehot,
                                     y_predictions_onehot)
  • 1
  • 2
In [200]: ensemble_auc
Out[200]: 0.875
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/537314
推荐阅读
相关标签
  

闽ICP备14008679号