XGBModel对象没有属性’evals_result_’

我在尝试在一个数据集上使用xgboost。我在不同的博客中看到了同样的语法,但在调用clf.evals_result()时遇到了错误。这是我的代码:

from xgboost import XGBRegressor as xgbfrom sklearn.metrics import mean_absolute_error as maeevals_result ={}eval_s = [(x, y),(xval,yval)]clf = xgb(n_estimators=100,learning_rate=0.03,tree_method='gpu_hist',lamda=0.1,eval_metric='mae',eval_set=eval_s,early_stopping_rounds=0,evals_result=evals_result)clf.fit(x,y) r = clf.evals_result()

这是我收到的错误信息:

---------------------------------------------------------------------------AttributeError                            Traceback (most recent call last)<ipython-input-138-2d6867968043> in <module>      1 ----> 2 r = clf.evals_result()      3       4 p = clf.predict(xval)/opt/conda/lib/python3.6/site-packages/xgboost/sklearn.py in evals_result(self)    399          'validation_1': {'logloss': ['0.41965', '0.17686']}}    400         """--> 401         if self.evals_result_:    402             evals_result = self.evals_result_    403         else:AttributeError: 'XGBRegressor' object has no attribute 'evals_result_'

回答:

我遇到了完全相同的错误,解决方案是将eval_set传递给fit函数,而不是在创建分类器时传递。

clf.fit(x,y,eval_set=eval_s) 

然后你就可以运行clf.evals_result()了

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注