为岭回归训练 alpha 值

Posted

技术标签:

【中文标题】为岭回归训练 alpha 值【英文标题】:training an alpha value for ridge regression 【发布时间】:2018-09-29 03:17:06 【问题描述】:

我有以下代码运行一个简单的岭回归:

for col in cols:                      #zscore normalization
    df[col] = (df[col] - df[col].mean())/df[col].std(ddof=0)
y = df['SPXR_D'.format(horizon)]    #my dependent variable (future market returns)
x = df[cols]                          #a bunch of variables that predict market returns
model = linear_model.Ridge(alpha=0.5) #ridge regression, guess & check based alpha
res = model.fit(x, y)

我已经读过,使用前半部分数据来查找 alpha 是最简单的方法,但这怎么可能呢?

【问题讨论】:

是的,找到一个好的 alpha 的一般方法是 cross-validation,其中对于 每个 alpha,您重复分区数据,在第一个分区上训练,在另一个分区上测试分区,并找到平均测试误差。因此,k-fold 或 leave-one-out 交叉验证的结果是平均测试误差与 alpha 的关系图,您可以选择交叉验证误差最低的 alpha。那有意义吗? (我会仔细检查,我确信 scikit-learn 有一种方法可以自动进行交叉验证并为您找到最佳 alpha。) 见scikit-learn.org/stable/modules/cross_validation.html ? 【参考方案1】:

让我指出两个可能的方向。

1) 交叉验证

RidgeCV - 只是一个结合 GridSearchCV 和 Ridge 的便捷包装器。拟合模型并检查属性 _alpha。

2) 贝叶斯方法

Bayesian Ridge Regression - 拟合模型并计算 _lambda / _alpha。

【讨论】:

以上是关于为岭回归训练 alpha 值的主要内容,如果未能解决你的问题,请参考以下文章

岭回归上重复 k 折的验证(和测试)集的 MSE?

scikit-learn : 优化岭回归参数alpha优化

岭回归:Scikit-learn 与直接计算不匹配 alpha > 0

如何从循环通过多个 alpha 的套索回归中提取给我最低均方误差的 alpha?

TensorFlow训练Logistic回归

数据挖掘系列 啥是逻辑回归训练模型?