Python 类型错误:uuu init_uuuu()获取了意外的关键字参数';reg_alpha';
使用随机搜索CV查找CATBoostClassifier模型的参数时。我收到类型错误: 这是我的代码片段。 我查找了有关该问题的catboost库,但找不到它。是什么导致了这种类型的错误Python 类型错误:uuu init_uuuu()获取了意外的关键字参数';reg_alpha';,python,machine-learning,jupyter-notebook,xgboost,Python,Machine Learning,Jupyter Notebook,Xgboost,使用随机搜索CV查找CATBoostClassifier模型的参数时。我收到类型错误: 这是我的代码片段。 我查找了有关该问题的catboost库,但找不到它。是什么导致了这种类型的错误 para={ "n_estimators" : [1000,5000,10000], "learning_rate" : [0.05, 0.10, 0.15, 0.20, 0.25, 0.30 ] , "max_depth"
para={
"n_estimators" : [1000,5000,10000],
"learning_rate" : [0.05, 0.10, 0.15, 0.20, 0.25, 0.30 ] ,
"max_depth" : [ 3, 4, 5, 6, 8, 10, 12, 15],
"reg_alpha" : [0.4,0.7,1,3],
"reg_lambda" : [0.2,0.4,0.7,1,3],
"colsample_bytree" : [ 0.3, 0.4, 0.5 , 0.7 ],
"subsample" : [ 0.3, 0.5, 0.7, 1]
}
import catboost as cb
cbg = cb.CatBoostClassifier()
random_search=RandomizedSearchCV(cbg,
param_distributions=para,
n_iter=5,
scoring='roc_auc',
n_jobs=-1,
cv=5,
verbose=3)
random_search.fit(X,y)
TypeError Traceback (most recent call last)
<ipython-input-18-68719ca71dd9> in <module>
----> 1 random_search.fit(X,y)
~\Anaconda3\envs\py3.6-TF2.3\lib\site-packages\sklearn\utils\validation.py in inner_f(*args, **kwargs)
70 FutureWarning)
71 kwargs.update({k: arg for k, arg in zip(sig.parameters, args)})
---> 72 return f(**kwargs)
73 return inner_f
74
~\Anaconda3\envs\py3.6-TF2.3\lib\site-packages\sklearn\model_selection\_search.py in fit(self, X, y, groups, **fit_params)
760 # of the params are estimators as well.
761 self.best_estimator_ = clone(clone(base_estimator).set_params(
--> 762 **self.best_params_))
763 refit_start_time = time.time()
764 if y is not None:
~\Anaconda3\envs\py3.6-TF2.3\lib\site-packages\sklearn\utils\validation.py in inner_f(*args, **kwargs)
70 FutureWarning)
71 kwargs.update({k: arg for k, arg in zip(sig.parameters, args)})
---> 72 return f(**kwargs)
73 return inner_f
74
~\Anaconda3\envs\py3.6-TF2.3\lib\site-packages\sklearn\base.py in clone(estimator, safe)
86 for name, param in new_object_params.items():
87 new_object_params[name] = clone(param, safe=False)
---> 88 new_object = klass(**new_object_params)
89 params_set = new_object.get_params(deep=False)
90
TypeError: __init__() got an unexpected keyword argument 'reg_alpha'
第={
“n_估计数”:[1000500010000],
“学习率”:[0.05,0.10,0.15,0.20,0.25,0.30],
“最大深度”:[3,4,5,6,8,10,12,15],
“reg_alpha”:[0.4,0.7,1,3],
“reg_lambda”:[0.2,0.4,0.7,1,3],
“colsample_bytree”:[0.3,0.4,0.5,0.7],
“子样本”:[0.3,0.5,0.7,1]
}
将catboost作为cb导入
cbg=cb.CatBoostClassifier()
随机搜索=随机搜索CV(cbg,
参数分布=第,
n_iter=5,
得分='roc_auc',
n_jobs=-1,
cv=5,
冗长的(3)
随机搜索拟合(X,y)
TypeError回溯(最近一次调用上次)
在里面
---->1随机搜索拟合(X,y)
内部文件中的~\Anaconda3\envs\py3.6-TF2.3\lib\site packages\sklearn\utils\validation.py(*args,**kwargs)
70未来警告)
71 kwargs.update({k:arg代表k,arg在zip中(sig.parameters,args)})
--->72返回f(**kwargs)
73返回内部\u f
74
~\Anaconda3\envs\py3.6-TF2.3\lib\site packages\sklearn\model\u selection\\u search.py in fit(self、X、y、groups、**fit\u参数)
760个参数也是估计量。
761 self.best_estimator=克隆(克隆(基本_estimator)。设置参数(
-->762**self.best(最佳参数)
763重新安装\u开始\u时间=时间。时间()
764如果y不是无:
内部文件中的~\Anaconda3\envs\py3.6-TF2.3\lib\site packages\sklearn\utils\validation.py(*args,**kwargs)
70未来警告)
71 kwargs.update({k:arg代表k,arg在zip中(sig.parameters,args)})
--->72返回f(**kwargs)
73返回内部\u f
74
克隆中的~\Anaconda3\envs\py3.6-TF2.3\lib\site packages\sklearn\base.py(估计器,安全)
86对于名称,在新的\u对象\u params.items()中使用参数:
87新对象参数[名称]=克隆(参数,安全=假)
--->88新对象=klass(**新对象参数)
89参数集=新对象。获取参数(深=假)
90
TypeError:\uuuu init\uuuuuuuuuuuuu()获取了意外的关键字参数“reg\u alpha”
问题在于reg_alpha
不是init
序列化CatBoostClassifier
的参数。您会发现,reg_alpha
未列出。对于colsample\u bytree
,您会发现同样的情况。从参数字典中删除这些参数可以解决此错误