【问题标题】:training an alpha value for ridge regression为岭回归训练 alpha 值
【发布时间】: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。)

标签: python pandas scipy scikit-learn regression


【解决方案1】:

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

1) 交叉验证

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

2) 贝叶斯方法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-28
    • 2020-05-02
    • 2016-11-28
    • 2012-10-07
    • 1970-01-01
    • 2021-08-01
    相关资源
    最近更新 更多