テストデータから混同マトリックスを取得するには、2つのステップを実行する必要があります。
- テストデータの予測を行う
たとえばmodel.predict_generator
、テストジェネレーターから最初の2000の確率を予測するために使用します。
generator = datagen.flow_from_directory(
'data/test',
target_size=(150, 150),
batch_size=16,
class_mode=None, # only data, no labels
shuffle=False) # keep data in same order as labels
probabilities = model.predict_generator(generator, 2000)
- ラベル予測に基づいて混同行列を計算します
たとえば、確率をそれぞれ1000匹の猫と1000匹の犬がある場合と比較します。
from sklearn.metrics import confusion_matrix
y_true = np.array([0] * 1000 + [1] * 1000)
y_pred = probabilities > 0.5
confusion_matrix(y_true, y_pred)
テストおよび検証データに関する追加の注記
Kerasのドキュメントでは、トレーニングデータ、検証データ、テストデータの3つの異なるデータセットを使用しています。トレーニングデータは、モデルパラメーターを最適化するために使用されます。検証データは、エポックの数など、メタパラメーターに関する選択を行うために使用されます。最適なメタパラメータでモデルを最適化した後、テストデータを使用して、モデルのパフォーマンスの公正な推定値を取得します。