【发布时间】:2020-09-05 15:37:08
【问题描述】:
我想在拟合后打印 RandomizedSearchCV 的属性 best_estimator。 但出了点问题。 以下是我的主要代码:
from xgboost.sklearn import XGBRegressor
from sklearn.model_selection import GridSearchCV
from sklearn.model_selection import RandomizedSearchCV
parameters = {
'min_child_weight':[2,3,4],
}
xlf = XGBRegressor(learning_rate=0.1,n_estimators=50,max_depth=5,min_child_weight = 1,
subsample=0.8,colsample_btree=0.8,objective='reg:linear',
scale_pos_weight=1,random_state=27)
n_iter_search = 5
gsearch = RandomizedSearchCV(xlf,param_distributions=parameters,n_iter=n_iter_search, cv=2, iid=False)
start=time.clock()
gsearch.fit(x_train.values,y_train.values,eval_set = [(x_test.values,y_test.values)],eval_metric = "rmse",
early_stopping_rounds = 20)
end=time.clock()
print('RandomSearch Running time: %s Seconds'%(end-start))
print("Best score: %0.3f" % gsearch.best_score_)
best_estimator = gsearch.best_estimator_
print("Best parameters set",best_estimator)
以下是我的错误信息:
Traceback (most recent call last):
File "D:\PythonProject\TestPackagePytorch\code.py", line 213, in <module>
print("Best parameters set",best_estimator)
File "E:\Anaconda3\envs\tensorflow\lib\site-packages\sklearn\base.py", line 279, in __repr__
repr_ = pp.pformat(self)
File "E:\Anaconda3\envs\tensorflow\lib\pprint.py", line 144, in pformat
self._format(object, sio, 0, 0, {}, 0)
File "E:\Anaconda3\envs\tensorflow\lib\pprint.py", line 161, in _format
rep = self._repr(object, context, level)
File "E:\Anaconda3\envs\tensorflow\lib\pprint.py", line 393, in _repr
self._depth, level)
File "E:\Anaconda3\envs\tensorflow\lib\site-packages\sklearn\utils\_pprint.py", line 170, in format
changed_only=self._changed_only)
File "E:\Anaconda3\envs\tensorflow\lib\site-packages\sklearn\utils\_pprint.py", line 414, in _safe_repr
params = _changed_params(object)
File "E:\Anaconda3\envs\tensorflow\lib\site-packages\sklearn\utils\_pprint.py", line 98, in _changed_params
if (repr(v) != repr(init_params[k]) and
KeyError: 'base_score'
而在训练的过程中,出现了一句话:
This may not be accurate due to some parameters are only used in language bindings but
passed down to XGBoost core. Or some parameters are not used but slip through this
verification. Please open an issue if you find above cases.
我也尝试过 GridSearchCV 但失败并得到相同的错误信息。 请帮我! 另外,我曾尝试尝试其他数据集并获得相同的错误信息。
【问题讨论】:
-
这看起来像是 Scikit-Learn 或 XGBoost 中的错误。我会向 Scikit-Learn 提交错误报告。请务必仔细遵循错误报告说明。
-
这个问题有进展吗?你能解决吗? @stackoverflow.com/users/13575116/%e4%bd%99%e4%b9%9d%e5%a4%a9
标签: python tensorflow scikit-learn keyerror