pythonのランダムシードについて-random_state


random_stateはランダムシードであり,任意のランダム性を持つクラスや関数でパラメータとしてランダムモードを制御する.random_stateが値をとると、ルールも決定されます.
random_stateは多くの関数に使用できますが、私がよく知っているのは、1、トレーニングセットテストセットの区分2、意思決定ツリーの構築3、ランダム森林の構築の3つの場所に使用されます.
1、訓練セットとテストセットを区分するクラスtrain_test_split
乱数シードは,訓練セットとテストセットを分割するたびにパターンを制御し,その値が変わらない場合に分割された結果はそっくりであり,その値が変化する場合に分割された結果は異なる.このパラメータを設定しないと、関数は自動的にランダムモードを選択し、結果も異なります.
2、決定木を構築する関数
clf = tree.DecisionTreeClassifier(criterion="entropy",random_state=30,splitter="random")

その値が変わらない場合、同じ訓練セットでツリーを構築した結果はそっくりで、テストセットに対する予測結果も同じである.
その値が変化すると、得られる結果が異なる.
このパラメータを設定しないと、関数は自動的にランダムモードを選択し、得られるたびに結果が異なります.
3、ランダム森林の構築
clf = RandomForestClassifier(random_state=0)

その値が変わらない場合、同じ訓練セットで森林を建てた結果はそっくりで、テストセットの予測結果も同じである.
その値が変わると、森を建てる結果が違います.
このパラメータを設定しないと、関数は自動的にランダムモードを選択し、得られるたびに結果が異なります.
まとめ:random_を設定する必要がある場合stateの場所に値を割り当て、このコードを複数回実行すると完全に同じ結果が得られ、他の人がこのコードを実行してもプロセスを再現することができます.このパラメータを設定しないと、ランダムにシードが選択され、実行結果も異なります.random_にはできるけどstateはパラメータを調整しますが、パラメータを調整した後に訓練セットでよく表現されたモデルが見知らぬ訓練セットでよく表現されるとは限らないので、random_を勝手に選択するのが一般的です.stateの値をパラメータとして使用します.
 
転載先:https://www.cnblogs.com/simpleDi/p/9986198.html