Scikit-Learnであるアルゴリズム(Xgboost)をグリッドサーチさせていますが、毎回値が変わります。
コードは下記です。
Python
1from sklearn.model_selection import KFold 2import xgboost as xgb 3from sklearn import model_selection 4 5# XGBClassifierの基本モデル 6clf = xgb.XGBRegressor(random_state=1234) 7# これで変わらなくなると、参考URLに書いていた 8kf = KFold(n_splits=3,random_state=1234) 9# グリッドサーチ 10clf_cv = model_selection.GridSearchCV( 11 clf, 12 params=params, 13 verbose=1, 14 cv=kf, 15 n_jobs=6, 16) 17# 最適化 18clf_cv.fit(train_df_x,train_df_y)
GridSearchCV はランダムな要素はないですし、KFold() も shuffle=True としない限り、こちらもランダムな要素はないです。
なので、XGBRegressor が怪しい気がします。
xgboost は使ったことがないのでわかりませんが、GridSearchCV を使わずに一旦単体で学習を行い、 毎回同じ学習結果になるか確認されてはどうでしょうか。(例: 学習後の精度が毎回同じか、学習した重みが毎回同じかなど)
回答1件
あなたの回答
tips
プレビュー