matplotlib 使用sklean在MLPClassifier中绘制训练和测试数据的损失与历元的问题

w9apscun  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(151)

我在社区中看到了这段代码,使用MLPClassifier绘制损失与时期。我认为代码中有一些错误,因为验证曲线看起来很奇怪。有人能给予我一个关于如何修复下面代码的建议吗?

X_train,X_test,y_train,y_test = train_test_split( X,y,test_size=0.2)
mlp=MLPClassifier( validation_fraction=0.2, early_stopping=True, warm_start= True)
mlp.fit(X_train,y_train)


plt.figure()
plt.plot (mlp.loss_curve_, label='Training')
plt.plot(mlp.validation_scores_, label='Validation')
plt.xlabel('Epochs')
plt.ylabel("Classification score")
plt.grid()
plt.show()

ut6juiuv

ut6juiuv1#

是的,你正在绘制loss_curve_,这是损失(错误),而validation_scores_是每个训练时期的验证分数(准确性)-参见the documentation
如果您想要1-1比较,可以使用partial_fit比较每个epoch的训练和验证分数,但这可能需要额外的努力。请参阅:Is it possible to get test scores for each iteration of MLPClassifier?

相关问题