python-3.x - XGBModel' 对象没有属性 'evals_result_'
问题描述
我正在尝试在数据集上使用 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_'
解决方案
我得到了完全相同的错误,解决方案是将 eval_set 传递给 fit 函数而不是创建分类器
clf.fit(x,y,eval_set=eval_s)
然后你可以运行 clf.evals_result()
推荐阅读
- javascript - Angular JS 1.5 - 刷新计数
- arrays - '拒绝!' 返回'nil',但它实际上是从数组中删除对象?
- matlab - 获取行矩阵
- php - Spomkylabs 何塞 PHP
- vue.js - v-if inside v-用于显示数组中的最后一个元素
- spring - 如何解决 DispatcherServlet Class not found 异常
- php - 在 ubuntu AWS EC2 实例上发出“apt-get update”命令会将 PHP 版本从 7.1 升级到 7.2?
- java - values.xml:错误:发现项目 Attr/colorPrimary 不止一次
- mysql - 简单社区网站的数据库设计模式
- javascript - IFrame appendChild 页面加载后缺少孩子