train_test_splitのrandom_stateの重要性は何ですか?[複製]

Nov 28 2020

この特定の行でrandom_state = 0の意味は何ですか?

X_train, X_test, y_train, y_test = train_test_split(X,  y, test_size = 0.25, random_state = 0)

回答

1 ombk Nov 28 2020 at 02:18

ランダム状態は、データのサンプリング方法を修正するためのパラメーターです。したがって、同じモデルを再現する場合はrandom_state、任意の値を選択し、次にコードを実行すると、同じデータ分割が得られます。

あなたが持っている例、あなたがlist1=[1,2,3,4]それrandom_stateに順列のために追加することができるとしましょうrandom_state=0、list1はそうなるでしょう[2,3,4,1]random_state=2それはそうであるかもしれないので[3,1,4,2]...X_train X_testなどのために同じこと...

入力した乱数ごとに異なる分割が行われます。

seralouk Nov 28 2020 at 03:42

random_stateランダムジェネレーターにシードを設定するだけなので、トレインテストの分割は常に決定論的です。シードを設定しないと、毎回異なります。

ドキュメント:

random_stateintRandomStateインスタンスまたはNone、オプション(デフォルト= None)の
場合intrandom_stateは乱数ジェネレーターによって使用されるシードです。場合はRandomState、インスタンス、random_state乱数発生器があります。の場合None、乱数ジェネレーターは。RandomStateによって使用されるインスタンスnp.randomです。