要遍历逻辑回归参数以找到最佳模型,可以使用网格搜索(Grid Search)的方法。网格搜索通过指定参数的候选值列表,然后对每一组参数进行模型训练和评估,最后选择表现最好的参数组合。
以下是一个使用网格搜索的示例代码:
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import GridSearchCV
from sklearn.datasets import make_classification
# 创建一个虚拟数据集
X, y = make_classification(n_samples=100, n_features=10, random_state=42)
# 定义逻辑回归模型
model = LogisticRegression()
# 定义要调整的参数及其候选值
param_grid = {
'penalty': ['l1', 'l2'],
'C': [0.1, 1, 10],
'solver': ['liblinear', 'saga']
}
# 使用网格搜索进行参数调整
grid_search = GridSearchCV(estimator=model, param_grid=param_grid, cv=5)
grid_search.fit(X, y)
# 打印最佳参数组合和模型评分
print("Best parameters: ", grid_search.best_params_)
print("Best score: ", grid_search.best_score_)
这段代码中,我们使用了scikit-learn库的LogisticRegression
模型和GridSearchCV
类。首先,我们创建了一个虚拟数据集X
和y
。然后,我们定义了逻辑回归模型model
。接下来,我们指定了要调整的参数及其候选值,包括正则化类型(penalty
)、正则化强度(C
)和求解器(solver
)。
然后,我们使用GridSearchCV
类创建了一个网格搜索对象grid_search
,并将模型和参数候选范围传递给它。接着,我们使用虚拟数据集X
和y
来拟合网格搜索对象,它将对每一组参数进行模型训练和评估。最后,我们打印出最佳参数组合和最佳模型评分。
需要注意的是,由于随机数的影响,每次运行网格搜索可能会得到不同的最佳参数组合和模型评分。因此,无法复制完全相同的结果。然而,网格搜索的目的是找到最佳参数组合,以获得最佳性能的模型。