Я новичок в Keras и я использую кривую roc с моим тестовым набором данных для оценки качества моей модели (модель была сделана с использованием функционального API и идентифицирована как "model
" в моем фрагменте кода) .
Я планирую использовать кривую ROC (используя roc_curve из scikit-learn).
Пример:
fpr_keras, tpr_keras, thresholds_keras = roc_curve(y_true,y_scores)
Чтобы сделать это, как сказано в документации, мне нужны настоящие двоичные метки (y_true
в примере) и целевые оценки (y_scores
в примере).
Но я не знаю, как получить все истинные двоичные метки из теста ImageDataGenerator
(test_generator
(см. Ниже) возвращает DirectoryIterator).
И я не знаю, как получить соответствующие целевые оценки с помощью model.predict_generator
(он возвращает массив размером с пакет)
Прямо сейчас мой код выглядит так (обобщенно):
from keras.preprocessing.image import ImageDataGenerator
from sklearn.metrics import roc_curve
height=150
width=150
batch_size=16
test_datagen = ImageDataGenerator(rescale=1./255)
test_generator = test_datagen.flow_from_directory(
'data/test',
target_size=(height, width),
batch_size=batch_size,
class_mode='binary')
y_pred_keras = model.predict_generator(test_generator,1).ravel()