Python 如何利用交叉验证得到最佳系数向量
我正在数据集上运行岭回归。我已经做了5次交叉验证。所以基本上我的数据集分为5个序列和5个测试折叠 我在scikit中就是这样做的:Python 如何利用交叉验证得到最佳系数向量,python,numpy,machine-learning,scikit-learn,Python,Numpy,Machine Learning,Scikit Learn,我正在数据集上运行岭回归。我已经做了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
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个序列集中选择最终报告该α的哪个系数向量?对于每个α值,取5次验证的验证误差平均值。然后,您将能够得到平均验证误差v.s.α的曲线。选择alpha值,该值给出最低的平均验证误差。您所说的“每个alpha的最佳系数向量”是什么意思?