如何解决类型错误:__init __获得了意外的关键字参数'reg_alpha'
使用随机搜索CV查找CatboostClassfier模型的参数时。我收到类型错误: 这是我的代码段。 我正在寻找问题的catboost库,但找不到它。是什么原因导致此类Type_error?
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,"colsample_bytree" : [ 0.3,0.5,0.7 ],"subsample" : [ 0.3,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,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'
解决方法
问题在于closed
不是reg_alpha
初始化init
的参数。您会发现here未列出CatBoostClassifier
。您会为reg_alpha
找到相同的东西。从参数字典中删除这些内容将解决错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。