AroON_1106
@AroON_1106

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

lightgbmの結果が毎回変わってしまう

解決したいこと

lightgbm, optuna を使って機械学習をしているのですが、実行結果が毎回変わってしまいます。
random_stateの設定し忘れがないか何度も確認したのですが結局分からず・・・。
わかる方よろしくおねがいします。

該当コード


import lightgbm
from sklearn.metrics import roc_auc_score
import optuna
from sklearn.model_selection import train_test_split
#X, y はDataFrameです。欠損値補完にもlightgbmを用いていますが、そこの時点では毎回同じ結果になっていることは確認済みです
X_train, X_valid, y_train, y_valid = train_test_split(X, y, test_size=0.3, stratify=y, random_state=42)
def objective(trial):
    param_grid = {
        "num_leaves": trial.suggest_int("num_leaves", 30, 100),
        "max_bin": trial.suggest_int("max_bin", 200, 500),
        "num_iterations": trial.suggest_int("num_iterations", 100, 200),
        "max_depth": trial.suggest_int("max_depth", 1, 1000)
    }

    model = lightgbm.LGBMClassifier(**param_grid, random_state=42)
    model.fit(X_train, y_train)
    return roc_auc_score(y_valid, model.predict_proba(X_valid)[:, 1])
study = optuna.create_study(direction="maximize", sampler=optuna.samplers.RandomSampler(seed=42))
study.optimize(objective, n_trials=100, n_jobs=-1)
study.best_params #これも毎回違います
model = lightgbm.LGBMClassifier(random_state=42, **study.best_params)
model.fit(X_train, y_train)
roc_auc_score(y_valid, model.predict_proba(X_valid)[:, 1]) #このスコアが毎回変わってしまいます

よろしくおねがいします。

0

No Answers yet.

Your answer might help someone💌