小编Aci*_*lah的帖子

sklearn - 在多次运行中保存 train_test_split 分割/状态?

Python、pandas、jupyter、scikit-learn。

我需要:

  • 对数据集进行 n 个不同的分割。
  • 做一些事情以便以后能够在另一个笔记本/脚本中重现它们中的任何一个。
  • 优雅的方式会很好。

现在我正在使用 sklearn train_test_split,但使用替代方案也可以。如果我理解正确的话 random_state 参数可以按以下方式使用:

n = 10**6
while n > 0:
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state = n)

    #whatever I'm going to to with this split 
    n-=1
Run Code Online (Sandbox Code Playgroud)

然后我希望能够重现分裂。我可以转储模型以在另一台笔记本上重现它们吗?这有效吗?

UPD 我根据经验找到了正确的答案。(请指导我是否有特定的方法来回答您自己的问题)。

火车测试分割可以作为模型转储/加载。

joblib.dump(train_test_split, path)
my_train_test_split = joblib.load(path)
Run Code Online (Sandbox Code Playgroud)

对于多个数据集。我在一个循环中在两个不同的数据集上使用它两次,传递唯一的随机状态。我能够使用加载的模型重现每个数据集的分割。这就是我所需要的。

python pandas scikit-learn

1
推荐指数
1
解决办法
4813
查看次数

标签 统计

pandas ×1

python ×1

scikit-learn ×1