使用GridSearchCV做弹性网正则化逻辑回归遇参数数量错误
GridSearchCV参数传递错误的解决方法
问题原因
你遇到的__init__() takes 3 positional arguments but 4 were given错误,核心是GridSearchCV构造函数中,scoring参数不能以位置参数形式传递。
GridSearchCV的__init__方法仅允许前两个参数(estimator和param_grid)作为位置参数传入,后续所有参数(包括scoring)都必须通过关键字参数(参数名=值)的形式指定。你直接传入的第三个位置参数'roc_auc'会被当成额外的位置参数,加上方法自身的self参数,就出现了“传入4个参数但只接受3个”的矛盾。
修正后的代码
parameter_grid = {'l1_ratio': [0.1, 0.3, 0.5, 0.7, 0.9]} GS = GridSearchCV( LogisticRegression(penalty='elasticnet', solver='saga', max_iter=1000), parameter_grid, scoring='roc_auc' # 显式指定参数名,以关键字参数传递 )
内容的提问来源于stack exchange,提问作者Eve Chen
相关产品推荐
相关产品推荐

