2017-08-18 3 views
1

LightGBM(Windowsプラットフォーム)で何が起こっているのか理解できません。これまで私はこのアルゴリズムを本当に強力なものにしていましたが、今は彼のパフォーマンスがとても悪いです。比較のためLightGBM内部の問題

(各アルゴリズムのデフォルトパラメータ)LightGBMは単純DIFF -metric =に従って行う(実際 - 予測)

  • CatBoostRegressor() - 18142884
  • XGBoostRegressorを() - 20235110
  • GradientBoostingRegressor() - 20437130
  • LGBMRegressor() - (バージョン= 2.0.5)

私はHyperOptといくつかのより良いパラメータを見つけるためにしようとしていたが、また、成功

LGBM_SPACE = { 
    'type': 'LGBM', 
    'task': hp.choice('lgbm_task', ['train', 'prediction']), 
    'boosting_type': hp.choice('lgbm_boosting_type', ['gbdt', 'dart']), 
    'objective': hp.choice('lgbm_objective', ['regression']), 
    'n_estimators': hp.choice('lgbm_n_estimators', range(10, 201, 5)), 
    'learning_rate': hp.uniform('lgbm_learning_rate', 0.05, 1.0), 
    'num_leaves': hp.choice('lgbm_num_leaves', range(2, 7, 1)), 
    'tree_learner': hp.choice('lgbm_tree_learner', ['serial', 'feature', 'data']), 
    'metric': hp.choice('lgbm_metric', ['l1', 'l2', 'huber', 'fair']), 
    'huber_delta': hp.uniform('lgbm_huber_delta', 0.0, 1.0), 
    'fair_c': hp.uniform('lgbm_fair_c', 0.0, 1.0), 
    'max_depth': hp.choice('lgbm_max_depth', range(3, 11)), 
    'min_data_in_leaf': hp.choice('lgbm_min_data_in_leaf', range(0, 6, 1)), 
    'min_sum_hessian_in_leaf': hp.loguniform('lgbm_min_sum_hessian_in_leaf', -16, 5), 
    'feature_fraction': hp.uniform('lgbm_feature_fractionf', 0.0, 1.0), 
    'feature_fraction_seed': hp.choice('lgbm_feature_fraction_seed', [12345]), 
    'bagging_fraction': hp.uniform('lgbm_bagging_fraction', 0.0, 1.0), 
    'bagging_freq': hp.choice('lgbm_bagging_freq', range(0, 16, 1)), 
    'bagging_seed': hp.choice('lgbm_bagging_seed', [12345]), 
    'min_gain_to_split': hp.uniform('lgbm_min_gain_to_split', 0.0, 1.0), 
    'drop_rate': hp.uniform('lgbm_drop_rate', 0.0, 1.0), 
    'skip_drop': hp.uniform('lgbm_skip_drop', 0.0, 1.0), 
    'max_drop': hp.choice('lgbm_max_drop', [-1] + range(2, 51, 1)), 
    'drop_seed': hp.choice('lgbm_uniform_drop', [12345]), 
    'verbose': hp.choice('lgbm_verbose', [-1]), 
    'num_threads': hp.choice('lgbm_threads', [2]), 
} 

ずに最良の結果は、それが上記との比較では、超悪い、ちょうど450422301ました。すべてscikit-学ぶAPIとして使用するの

例:

model = LGBMRegressor() 
model.fit(X, Y) 
model.predict(XT) 

答えて

1

masterブランチから最新のコードを使用してみてください。 Scikit-learn APIに一貫性のないパラメータが発生しました。修正されたパラメータは#1033です。

またはあなたのalg_conf "min_child_weight" に追加することができます:1E-3、 "min_child_samples":20

+0

グレート!精度の観点から調整する必要のあるパラメータの最適なサブセットに関するアドバイスを参照してください。 – SpanishBoy

関連する問題