我使用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
?怎么样?
答案 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 中的更多信息。