StratifiedKFold:洗牌和随机状态

3

为了交叉验证目的,我已经完成了以下操作:

from sklearn.cross_validation import StratifiedKFold
n_folds = 5
SKFolds = list(StratifiedKFold(ytrain, n_folds, shuffle=True))

我在考虑一个细节:如果某人(例如我的老师)再次运行代码,我希望得到相同的最终结果。然而,我忘记指定random_state参数!而且,我不幸的是不能从头开始,因为我的模型需要很长时间来拟合,而且已经接近完成了。
我的问题是:是否可能找到导致我的SKFolds的random_state是什么?(我的笔记本仍然打开,所以也许信息可以在某个地方找到?)或者,我可以做一些像将我的SKFolds保存在csv文件中,然后在重新启动笔记本时加载它们,以确保我将在折叠上获得相同的分割?
谢谢您的帮助!

2
最好(也更清晰)将您的折叠保存到磁盘上。如果每个数据点都有某种ID,则可以仅使用这些ID存储采样。 - lenz
你可以使用固定常量来初始化随机数生成器。 - Dan D.
1个回答

3
您可以使用pickle保存SKFolds对象,然后只需加载它并将其作为原样使用。
import cPickle as pickle

# To save the object
pickle.dump( SKFolds , open( "skfolds.p", "wb" ) )

# To load the object
SKFolds = pickle.load( open( "skfolds.p", "rb" ) )

非常感谢这个解决方案! - Vivien

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接