lr模型 调参 案例
时间: 2023-12-03 18:05:28 浏览: 30
好的,关于 LR 模型的调参,我可以给你一个简单的案例。
假设我们要使用 LR 模型来对一个二分类问题进行预测,我们已经准备好了数据,并将其分为了训练集和测试集。现在我们需要对 LR 模型的超参数进行调优,以达到更好的预测效果。
首先,我们需要选择一些超参数,比如正则化系数 λ、学习率 α、迭代次数等。然后,我们可以使用网格搜索或随机搜索等方法,在超参数空间中搜索最优的超参数组合。这里以网格搜索为例:
```python
from sklearn.model_selection import GridSearchCV
from sklearn.linear_model import LogisticRegression
# 初始化 LR 模型
lr = LogisticRegression()
# 定义超参数空间
param_grid = {'C': [0.1, 1, 10], 'penalty': ['l1', 'l2'], 'solver': ['liblinear']}
# 进行网格搜索
grid_search = GridSearchCV(lr, param_grid, cv=5, scoring='accuracy')
grid_search.fit(X_train, y_train)
# 输出最优超参数组合和对应的分数
print("Best parameters: ", grid_search.best_params_)
print("Best score: ", grid_search.best_score_)
```
在上面的代码中,我们使用了 GridSearchCV 对 LR 模型进行了网格搜索。其中,我们定义了超参数空间为正则化系数 C、正则化方式 penalty 和求解器 solver。然后,我们将 LR 模型、超参数空间、交叉验证次数 cv 和评价指标 scoring 传入 GridSearchCV 中进行搜索。最后,输出最优超参数组合和对应的分数。
接下来,我们可以使用最优超参数组合重新训练 LR 模型,并在测试集上进行预测,以评估模型的性能。
```python
# 使用最优超参数组合重新训练模型
lr_best = LogisticRegression(C=1, penalty='l1', solver='liblinear')
lr_best.fit(X_train, y_train)
# 在测试集上进行预测
y_pred = lr_best.predict(X_test)
# 输出模型在测试集上的评分
from sklearn.metrics import accuracy_score
print("Accuracy score: ", accuracy_score(y_test, y_pred))
```
在上述代码中,我们使用了最优超参数组合重新训练了 LR 模型,并在测试集上进行了预测。最后,输出了模型在测试集上的准确率。
以上就是一个简单的 LR 模型调参的案例,希望能对你有所帮助。