1 回答
TA贡献1871条经验 获得超8个赞
您在此处定义的默认求解器有问题:
model = LogisticRegression(class_weight='balanced')
这是从以下错误消息得出的:
ValueError: Solver lbfgs supports only 'l2' or 'none' penalties, got l1 penalty.
此外,在定义参数网格之前研究文档可能会很有用:
penalty: {'l1', 'l2', 'elasticnet', 'none'}, default='l2' 用于指定惩罚中使用的范数。“newton-cg”、“sag”和“lbfgs”求解器仅支持 l2 惩罚。“elasticnet”仅受“saga”求解器支持。如果为“none”(liblinear 求解器不支持),则不应用正则化。
一旦您使用支持所需网格的不同解算器纠正它,您就可以开始:
## using Logistic regression for class imbalance
model = LogisticRegression(class_weight='balanced', solver='saga')
grid_search_cv = GridSearchCV(estimator = model, param_grid = params,
scoring= 'roc_auc',
cv = folds,
return_train_score=True, verbose = 1)
grid_search_cv.fit(X_train_pt_df, y_train_pt_df)
## reviewing the results
cv_results = pd.DataFrame(grid_search_cv.cv_results_)
另请注意,ConvergenceWarning这可能建议您需要增加默认值max_iter、tol或切换到另一个求解器并重新考虑所需的参数网格。
添加回答
举报