如何使用交叉验证获得最佳系数向量
Posted
技术标签:
【中文标题】如何使用交叉验证获得最佳系数向量【英文标题】:How to get the best coefficient vector using cross-validation 【发布时间】:2015-07-14 15:26:44 【问题描述】:我正在对数据集运行岭回归。我已经完成了 5 折交叉验证。所以基本上我的数据集分为 5 个训练和 5 个测试折叠。
这就是我在 scikit 中的做法:
from sklearn import cross_validation
k_fold=cross_validation.KFold(n=len(tourism_train_X),n_folds=5)
我这样设置正则化参数:
#Generating alpha values for regularization parameters
n_alphas = 200
alphas = np.logspace(-10, -1, n_alphas)
现在,我的疑问是,对于每个训练和测试折叠 我做这样的事情。
ridge_tourism = linear_model.Ridge()
for a in alphas:
ridge_tourism.set_params(alpha=a)
index=0
for train_indices, test_indices in k_fold:
ridge_tourism.fit(tourism_train_X[train_indices], tourism_train_Y[train_indices]) # Fitting the model
coefs.append(ridge_tourism.coef_)
问题是它会给我每个 alpha 内五个训练折叠中的每一个的系数向量。我想要的只是对于每个 alpha,选择的最佳系数向量是什么。我们如何得到它?我们如何从 5 个训练集中选择最终报告那个 alpha 的系数向量?
【问题讨论】:
“每个 alpha 的最佳系数向量”是什么意思? 【参考方案1】:对于每个 alpha 值,取 5 次验证的验证错误的平均值。然后,您将能够获得平均验证误差与曲线。 α。选择 alpha 值,它给出了最低的平均验证错误。
【讨论】:
以上是关于如何使用交叉验证获得最佳系数向量的主要内容,如果未能解决你的问题,请参考以下文章