假设我有一个名为script.py
的程序:
import pandas as pd
import numpy as np
from sklearn.cross_validation import train_test_split
if __name__ == "__main__":
df = pd.DataFrame({"x": [1,2,3,4,5,6,6,5,6,3], "y": [1,1,0,0,0,0,1,0,0,1]})
train, test = train_test_split(df, test_size = 0.20, random_state = 100)
如果我从命令行运行这个脚本一次:
H:>python script.py
我如何确保train
和test
数据帧在随后的运行(即当我再次运行script.py
)是相同的train
和test
数据帧从以前的迭代?我知道如果你不离开控制台,random_state
可以工作,但是如果我明天回来,打开我的PC,重新运行script.py
,这些train
和test
集是否会保持平等?
我正在测试不同机器学习算法的准确性,这些算法都存储在不同的脚本中,这就是为什么我想确保训练集和测试集在脚本中是相同的。
随机状态如何与运行代码无关。指定随机状态的整个概念是,每次使用相同的参数运行此代码时,都具有完全相同的结果。因此,只要不更改df、testrongize和random_state,这个函数将始终返回相同的值,无论经过多少天。但是,如果更新底层库,它可能会发生变化。