我使用的是LogisticRegression,它使用的是“liblinear”求解器和默认惩罚(l2)。代码运行良好:
LR = LogisticRegression(random_state=1, solver='liblinear')
LR.fit(x_train_scaled, y_train)
x_test_scaled = min_max_scaler.transform(x_test)
y_pred = LR.predict(x_test_scaled)我尝试了l1 (LASSO)和'liblinear‘,因为我在我的预测器中有很多相关的特征,我想把它们的系数降到零。代码运行良好,但LR性能没有提高。所以,现在我想试一试弹性网,看看它对模型的影响(必须使用“saga”解算器和弹性网)。但是现在我的代码抛出了一个我不知道如何解决的错误?
代码:
LR = LogisticRegression(random_state=1, solver='saga', penalty='elasticnet')
LR.fit(x_train_scaled, y_train)
x_test_scaled = min_max_scaler.transform(x_test)
y_pred = LR.predict(x_test_scaled)第二行错误(拟合步骤):
ValueError: l1_ratio must be between 0 and 1; got (l1_ratio=None)发布于 2022-05-31 14:00:59
diabetic_classifer = LogisticRegression(penalty='elasticnet',solver='saga',C=0.5,l1_ratio=1)
diabetic_classifer.fit(X_train, y_train)我想你必须设置l1_ratio=1,这是参数之一。我也不完全明白。我相信我们可以把它设为0到1。
想要更多的信息。
https://stackoverflow.com/questions/69816317
复制相似问题