Lasso回归参数调优:使用GridSearchCV寻找最佳alpha值
使用GridSearchCV调优Lasso回归模型
本示例演示如何使用GridSearchCV来找到Lasso回归模型的最佳alpha参数。
代码示例
# 定义参数范围
param_grid = {'alpha': np.logspace(-4, 4, 9)}
# 创建Lasso模型
lasso = Lasso(max_iter=10000)
# 使用GridSearchCV寻找最佳参数
grid_search = GridSearchCV(lasso, param_grid, cv=5, scoring='r2')
grid_search.fit(x_poly, y)
# 输出最佳参数和对应的分数
print('Best Parameters: ', grid_search.best_params_)
print('Best Score: ', grid_search.best_score_)
# 使用最佳参数重新训练模型
reg = Lasso(alpha=grid_search.best_params_['alpha'], max_iter=10000)
reg.fit(x_poly, y)
# 输出最大预测值和对应的X矩阵内容
max_y = np.max(reg.predict(x_poly))
max_x = x[np.argmax(reg.predict(x_poly))]
print('Max Predicted y: ', max_y)
print('Corresponding X: ', max_x)
代码解释
-
param_grid = {'alpha': np.logspace(-4, 4, 9)}: 定义了参数范围,alpha参数的范围从10的-4次方到10的4次方,共有9个取值。 -
lasso = Lasso(max_iter=10000): 创建了一个Lasso模型,max_iter参数指定了最大迭代次数为10000次。 -
grid_search = GridSearchCV(lasso, param_grid, cv=5, scoring='r2'): 使用GridSearchCV进行网格搜索,lasso为要搜索的模型,param_grid为参数范围,cv为交叉验证的折数,scoring为评分标准(这里使用的是R平方)。 -
grid_search.fit(x_poly, y): 对x_poly和y进行拟合,寻找最佳参数。 -
print('Best Parameters: ', grid_search.best_params_): 输出最佳参数。 -
print('Best Score: ', grid_search.best_score_): 输出最佳分数。 -
reg = Lasso(alpha=grid_search.best_params_['alpha'], max_iter=10000): 使用最佳参数重新创建Lasso模型。 -
reg.fit(x_poly, y): 对x_poly和y进行拟合,使用最佳参数训练模型。 -
max_y = np.max(reg.predict(x_poly)): 预测x_poly对应的y的最大值。 -
max_x = x[np.argmax(reg.predict(x_poly))]: 找到使得预测值最大的x的值。 -
print('Max Predicted y: ', max_y): 输出最大预测值。 -
print('Corresponding X: ', max_x): 输出使得最大预测值的x的值。
总结
通过使用GridSearchCV,我们可以找到Lasso回归模型的最佳alpha参数,从而获得最佳的模型性能。
原文地址: https://www.cveoy.top/t/topic/fOhw 著作权归作者所有。请勿转载和采集!