Python 3.x XGBModel&x27;对象没有属性';评估结果';

Python 3.x XGBModel&x27;对象没有属性';评估结果';,python-3.x,machine-learning,scikit-learn,xgboost,Python 3.x,Machine Learning,Scikit Learn,Xgboost,我试图在数据集上使用xgboost。我在不同的博客中看到过相同的语法,但调用clf.evals_result()时出错 这是我的密码 from xgboost import XGBRegressor as xgb from sklearn.metrics import mean_absolute_error as mae evals_result ={} eval_s = [(x, y),(xval,yval)] clf = xgb(n_estimators=100,learning_rat

我试图在数据集上使用xgboost。我在不同的博客中看到过相同的语法,但调用clf.evals_result()时出错 这是我的密码

from xgboost import XGBRegressor as xgb
from sklearn.metrics import mean_absolute_error as mae

evals_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_'
---------------------------------------------------------------------------
AttributeError回溯(最近一次呼叫上次)
在里面
1.
---->2 r=clf.评估结果()
3.
4 p=clf.预测值(xval)
/评估结果中的opt/conda/lib/python3.6/site-packages/xgboost/sklearn.py(self)
399'验证1':{'logloss':['0.41965','0.17686']}
400         """
-->401如果自我评估结果:
402评估结果=自我评估结果_
403其他:
AttributeError:“XGBRegressionr”对象没有属性“evals\u result\”

我得到了完全相同的错误,解决方案是将eval_集传递给fit函数,而不是创建分类器

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

然后可以运行clf.evals\u result()

这很好。避免了这种常见错误。