Как построить кривую RO C из двоичного классификатора softmax с двумя выходными нейронами? - PullRequest
0 голосов
/ 07 апреля 2020

Как построить кривую ro c с метками дискретных выходов в виде 2 столбцов?

Использование roc_curve () выдает ошибку:

ValueError: формат многослойного индикатора не поддерживается

y_prediction = model.predict(test_X)

y_prediction[1]
Out[27]: array([1.0000000e+00, 6.8178085e-12], dtype=float32)

y_prediction.shape
Out[23]: (514, 2)

test_y.shape
Out[24]: (514, 2)

fpr_roc, tpr_roc, thresholds_roc = roc_curve(test_y, y_prediction)

roc_auc = metrics.auc(fpr_roc, tpr_roc)

1 Ответ

0 голосов
/ 07 апреля 2020

Из документации y_true и y_score должны быть 1-й.

https://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_curve.html

y_truearray, shape = [n_samples]

Итак, просто возьмите метки вместо вывода softmax .

Добавьте следующие строки перед roc_curve ()

test_y = np.argmax(test_y, axis=-1) # getting the labels
y_prediction = np.argmax(y_prediction, axis=-1) # getting the confidence of postive class
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...