如何在 sklearn 中使用 LassoLarsCV 获得可重现的分割?

how to get reproducible splits using LassoLarsCV in sklearn?

如果我用 sklearn 适合 LassoCV,我可以做到

    model_LassoCV = LassoCV(cv=3,random_state=2018).fit(X, y)

并为交叉验证获得可重现的分割。 但是,如果我这样做

    model_LassoCV = LassoLarsCV(cv=3,random_state=2018).fit(X, y)

根据文档,LassoLarsCV 没有 random_state。 那么如何使用 LassoLarsCV 获得可重现的结果?

要用作 cross-validation 生成器的对象可以作为 cv 参数传递。所以你可以通过你自己的CV迭代器来控制训练测试的生成。

类似于:

from sklearn.model_selection import KFold
kfold = KFold(n_splits=3, random_state=2018)
model_LassoCV = LassoLarsCV(cv=kfold)
model_LassoCV.fit(X, y)

现在您需要确保随机性不存在于算法的其他任何地方,如果不存在,那么这将是可重复的代码。