在再次运行脚本时是否保持random_state?

时间:2016-08-29 19:39:40

标签: python random scikit-learn

假设我有一个名为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

如何确保后续运行中的traintest数据框(即我再次运行script.py时)与train和{{1}相同来自先前迭代的数据帧?如果你不离开控制台,我知道test有效,但如果我明天回来,将我的电脑恢复,这些random_statetrain套的平等性是否会保留在,并重新运行test

我正在测试不同机器学习算法的准确性,所有算法都存储在不同的脚本中,这就是为什么我要确保列车和测试集在脚本之间是相同的。

1 个答案:

答案 0 :(得分:1)

随机说明运行代码时如何处理。指定随机状态的整个概念是每次使用相同参数运行此代码时具有完全相同的结果。因此,只要您不更改df,test_size和random_state,无论经过多少天,此函数都将始终返回相同的值。但是,如果更新底层库,它可能会改变。