randomforestで回帰予測を行っています。
下記のように、train_test_splitでデータ分割し、次に回帰モデル作成しています。
この時、random_stateの値をどう決めたらよいでしょうか。
参考図書が0でしたので、当初0を使用しています。
しかし、42を使っていた図書もあり、42で試しました。
すると評価値であるmseの値も変化します。
いずれも私の入力データによる値ですが、以下のようになります。
そして、参考で下記に「random_stateの使用状況」を示しています。
random_state=0で、mseが、train時で1.47、test時で3.07
random_state=42で、mseが、train時で1.45、test時で5.14
random_state=1234で、mseが、train時で0.91、test時で16.32
random_state=None(4回実施)で、mse(4回の最低~最大)が、train時で0.79~1.39、test時で9.03~19.83
random_stateによる乱数シード指定のコツを教えてください。
よろしくお願いいたします。
追伸:train_test_splitとRandomForestRegressorで同じrandom_state値をとるのが、
複数のテキストで紹介されています。これも理由があるのでしょうか。
以下が、random_stateの使用状況
特徴量と正解を訓練データとテストデータに分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
ランダムフォレスト回帰のモデルを作成
model = RandomForestRegressor(bootstrap=True, n_estimators=1000, criterion='mse', max_depth=None, random_state=0, n_jobs=-1)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/05 10:21
2020/04/05 12:39