前提・実現したいこと
pythonにて多クラス分類を行なっています。
発生している問題・エラーメッセージ
モデル生成時のパラメータ設定で一部のパラメータ(下記warning)が正しく設定できません。
なお、初期値も後で修正する可能性があるため、全パラメータを記載しております。
どうぞよろしくお願いいたします。
[Warning] Unknown parameter: silent [LightGBM] [Warning] Unknown parameter: class_weight [LightGBM] [Warning] Unknown parameter: importance_type
該当のソースコード
python
1def make_model(X, Y): 2 train_df = X.join(Y) 3 train_set, eval_set = train_test_split(train_df, test_size=0.2, random_state=4) 4 target = Y.name 5 train_X = train_set.drop(target, axis=1).values 6 train_Y = train_set[target].values 7 eval_X = eval_set.drop(target, axis=1).values 8 eval_Y = eval_set[target].values 9 10 train_data = lgb.Dataset(train_X, label=train_Y) 11 eval_data = lgb.Dataset(eval_X, label=eval_Y) 12 13 params = { 14 'task': 'train' 15 , 'boosting_type' : 'gbdt' 16 , 'num_leaves' : 31 17 , 'max_depth' : -1 18 , 'learning_rate' : 0.1 19 , 'n_estimators' : 100 20 , 'subsample_for_bin' : 200000 21 , 'objective' : 'multiclassova' 22 , 'num_class' : 6 23 , 'class_weight' : 'balanced' 24 , 'min_split_gain' : 0.0 25 , 'min_child_weight' : 0.001 26 , 'min_child_samples' : 20 27 , 'subsample' : 1.0 28 , 'subsample_freq' : 0 29 , 'colsample_bytree' : 1.0 30 , 'reg_alpha' : 0.0 31 , 'reg_lambda' : 0.0 32 , 'random_state' : None 33 , 'n_jobs' : int(multiprocessing.cpu_count() * 0.5) 34 , 'silent' : True 35 , 'importance_type' : 'split' 36 , 'verbosity': -1 37 } 38 39 logging.info(params) 40 41 model = lgb.train( 42 params 43 ,train_data 44 ,valid_sets = eval_data 45 ,num_boost_round = 100 46 ,verbose_eval = 0 47 ) 48 49 return model
試したこと
lightgbmのソースを確認したところ、class_weightに渡すべきは辞書型
とのことだったので、{'0':1,'1':2}のような形で渡しましたが、正しく読み込まれませんでした。
補足情報(FW/ツールのバージョンなど)
OS:macOS Catalina
CPU:3.2 GHz 6コア 12スレッド
メモリ:16 GB
python:3.7.5