为了账号安全,请及时绑定邮箱和手机立即绑定

具有属性 loss_curve_ 的 MLPRegressor 问题

具有属性 loss_curve_ 的 MLPRegressor 问题

摇曳的蔷薇 2023-10-06 16:38:52
我想使用以下代码绘制loss_curve:import pandas as pdimport matplotlib.pyplot as pltfrom sklearn.model_selection import train_test_splitfrom sklearn.neural_network import MLPRegressordef plotCurves(Xtrain,ytrain,Xval,yval):    solver=["lbfgs", "sgd", "adam"]    for i in solver:        mlp=MLPRegressor(activation='relu',max_iter=1000,solver=i)        mlp.fit(Xtrain,ytrain)        pred=mlp.predict(Xval)        print (mlp.score(Xval,yval))        pd.DataFrame(mlp.loss_curve_).plot()但是,当我运行我的代码时,出现以下错误:'MLPRegressor' object has no attribute 'loss_curve_'在Anaconda IDE 1.9.7版本中,当我编码时会出现这种方法。我可以尝试什么来解决这个问题?
查看完整描述

1 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

只有随机求解器loss_curve_才会在拟合后在估计器上公开属性,因此在第一次迭代中,lbfgs求解器会失败。您可以通过以下方式验证这一点:


from sklearn.datasets import make_classification

from sklearn.neural_network import MLPRegressor


X, y = make_classification(n_samples=5)


solver=[

    "lbfgs",

    "sgd",

    "adam"

]


for i in solver:

    mlp = MLPRegressor(activation='relu',solver=i)

    mlp.fit(X,y)

    print(hasattr(mlp, "loss_curve_"))

False

True

True

如果您想访问此属性,您需要坚持使用 adam 或 sgd 求解器。


查看完整回答
反对 回复 2023-10-06
  • 1 回答
  • 0 关注
  • 96 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信