如何在 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)
现在您需要确保随机性不存在于算法的其他任何地方,如果不存在,那么这将是可重复的代码。
如果我用 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)
现在您需要确保随机性不存在于算法的其他任何地方,如果不存在,那么这将是可重复的代码。