У меня есть многозначный классификатор, написанный на Keras, из которого я хочу вычислить AUC и построить кривую ROC для каждого элемента, классифицированного из моего тестового набора.
Кажется, все в порядке, за исключением того, что некоторые элементы имеют наклонную кривую, которая имеет следующий наклон:
Я не знаю, как интерпретировать наклон в таких случаях.
В основном мой рабочий процесс выглядит следующим образом: у меня есть предварительно обученный model
, экземпляр Keras, и у меня есть функции X
и бинаризованные метки y
, каждый элемент в y
представляет собой массив длиной 1000, так как это проблема классификации с несколькими метками. Элемент в y
может содержать много единиц, что указывает на принадлежность элемента к множественным классам, поэтому я использовал встроенную потерю binary_crossentropy
, и мои результаты прогноза модели - это вероятности оценки. Затем я строю кривую roc следующим образом.
from sklearn.metrics import roc_curve, auc
#...
for xi, yi in (X_test, y_test):
y_pred = model.predict([xi])[0]
fpr, tpr, _ = roc_curve(yi, y_pred)
plt.plot(fpr, tpr, color='darkorange', lw=0.5)
Метод прогнозирования возвращает вероятности, так как я использую функциональный api keras.
Кто-нибудь знает, почему кривые roc выглядят так?