从Keras模型获取混淆矩阵

时间:2019-06-05 10:15:58

标签: keras

我使用Keras使用以下NN模型:

import numpy as np
from keras import Sequential
from keras.layers import Dense

path = 'pima-indians-diabetes.data.csv'
dataset = np.loadtxt(path, delimiter=",")
X = dataset[:,0:8]
Y = dataset[:,8]
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.2)

model = Sequential()
model.add(Dense(16, input_dim=8, activation='relu'))
model.add(Dense(32, activation='relu'))
model.add(Dense(1, activation='sigmoid'))

model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(X_train, y_train, epochs=100, batch_size=16, validation_data=(X_test, y_test))

请问是否可以提取confusion matrix?怎么样?

2 个答案:

答案 0 :(得分:5)

您可以使用scikit-learn

y_pred = model.predict(X_test)
confusion_matrix = sklearn.metrics.confusion_matrix(y_test, np.rint(y_pred))

答案 1 :(得分:0)

可以使用 TensorFlow(几乎是 Keras =)来完成。

首先使用经过训练的模型对测试集进行预测:

predictions = model.predict(x_test)

然后您可以导入 TensorFlow 并使用其 confusion_matrix 方法,如下所示。

import tensorflow as tf
conf_matrix = tf.math.confusion_matrix(labels=y_test,
                                       predictions=predictions)

TensorFlow documentation 中的更多信息。