sklearn中给定折叠分割的交叉验证



我正在学习如何在Python中使用Lasso和Ridge以及sklearn。我得到了一列中的折叠。我想在5倍交叉验证的基础上找到最佳参数。

我的数据如下:

    mpg cylinders  displacement  horsepower  weight  acceleration  origin  fold
0   18          8           307         130    3504          12.0       1     3
1   15          8           350         165    3693          11.5       1     0
2   18          8           318         150    3436          11.0       1     2
3   16          8           304         150    3433          12.0       1     2
4   17          8           302         140    3449          10.5       1     3

reg_para = [0.001, 0.005, 0.01, 0.05, 0.1, 0.5, 1, 5, 10, 50, 100]

mpg是y/target变量,其他列是预测器。最后一列包含折叠。我想运行拉索和山脊,并找到最佳参数。我遇到的问题是在交叉验证中包含指定的折叠。以下是我迄今为止(为拉索)拥有的:

from sklearn.linear_model import Lasso, LassoCV
lasso_model = LassoCV(cv=5, alphas=reg_para)
lasso_fit = lasso_model.fit(X,y)

有没有一种简单的方法来合并折叠拆分?非常感谢您的任何帮助

如果您的数据在pandas数据帧中,那么您所需要做的就是访问该列

fold_labels = df["fold"]
from sklearn.cross_validation import LeaveOneLabelOut
cv = LeaveOneLabelOut(fold_labels)
lasso_model = LassoCV(cv=cv, alphas=reg_para)

因此,如果你在数组fold_labels中获得折叠标签,你可以只使用LeaveOneLabelOut(很抱歉是非功能代码。不过,这应该足以阐明这个想法。)

相关内容

  • 没有找到相关文章

最新更新