我正在使用内置的KerasClassifier包装器在练习神经网络上执行kfold交叉验证,以对著名的“虹膜数据集”进行分类。我想绘制模型随时间变化的性能图。我不确定如何使用KerasClassifier包装器执行此操作。
model.history()方法
### Neural Network Time!
import tensorflow as tf
from tensorflow import keras
from keras.wrappers.scikit_learn import KerasClassifier
from keras.layers import Dense
from keras.models import Sequential
from sklearn.model_selection import KFold
kfold = KFold(n_splits=10, shuffle=True, random_state=seed)
### Build small model
def small_network():
model = Sequential()
model.add(Dense(8, activation='relu'))
model.add(Dense(10, activation='relu'))
model.add(Dense(3, activation='softmax'))
# Compile the model
model.compile(optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'])
return model
small_estimator = KerasClassifier(build_fn=small_network, epochs=50, verbose=0)
small_results = cross_val_score(small_estimator, X, y_hot, cv=kfold)
print("Small Network Accuracy: %.2f%% (%.2f%%)" % (small_results.mean()*100, small_results.std()*100))
#GRAPH OF MODEL HISTORY!!!
我希望能够使用KerasClassifier对象随时间创建模型精度图。
答案 0 :(得分:0)
仅在运行验证后使用:
import seaborn as sns
sns.lineplot(data=small_results)
然后您可以自定义情节