【问题标题】:Get confusion matrix from a Keras model从 Keras 模型中获取混淆矩阵
【发布时间】:2019-10-20 20:21:30
【问题描述】:

我有以下使用 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吗?怎么样?

【问题讨论】:

标签: keras


【解决方案1】:

你可以使用scikit-learn:

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

【讨论】:

    【解决方案2】:

    可以使用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 中的更多信息。

    【讨论】:

      猜你喜欢
      • 2018-11-27
      • 2021-07-28
      • 2020-10-03
      • 2020-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多