通过网格法搜索lasso模型中最佳参数的代码
时间: 2024-10-14 15:17:11 浏览: 67
在Python中,我们可以使用`sklearn.model_selection.GridSearchCV`结合`Lasso`回归模型来通过网格搜索(Grid Search)找到最优的正则化参数(alpha)。这里是一个基本的例子:
```python
from sklearn.linear_model import Lasso
from sklearn.model_selection import GridSearchCV
from sklearn.datasets import load_boston
from sklearn.preprocessing import StandardScaler
# 加载波士顿房价数据集
boston = load_boston()
X, y = boston.data, boston.target
# 数据预处理(通常需要标准化)
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# 定义参数网格
param_grid = {'alpha': np.logspace(-4, -0.5, 50)} # 不同的alpha值范围
# 创建Lasso模型并进行网格搜索
lasso = Lasso()
grid_search = GridSearchCV(lasso, param_grid, cv=5) # 交叉验证次数可以自定
grid_search.fit(X_scaled, y)
# 获取最佳参数和对应的模型
best_alpha = grid_search.best_params_['alpha']
best_lasso = grid_search.best_estimator_
print("Best alpha found: ", best_alpha)
print("Best model score: ", grid_search.best_score_)
```
在这个例子中,`param_grid`定义了我们要搜索的`alpha`范围。`GridSearchCV`会尝试所有指定的参数组合,并返回性能最好的那一个。
阅读全文