Index ソフト・ハード LightGBM | lightGBMの構成・方式 |
予測の精度 推論 モデル保存 Training パラメータ データセット TrainingAPI 2つのAPI 機能・要件 タスク 導入 Sample |
予測の精度 (正確さ) ・MNITの例
print("accuracy score: {}".format(accuracy_score(t_test, y_pred)))
print("elapsed time: {}".format(time.time() - start)
推論
y_pred = lgb_bst.predict(X_validation, num_iteration=lgb_bst.best_iteration)
y_pred = y_pred.round(0)
モデル保存
lgb_bst.save_model('model.txt', num_iteration=lgb_bst.best_iteration)
Training ・訓練実行 関数の返り値として訓練されたモデルが帰ってくる。(Boosterクラス)
gbm = lgb.train(
lgbm_params,
lgb_train_data,
valid_sets=lgb_eval_data,
categorical_feature=[1,2,3,4,5,7],
num_boost_round=100,
early_stopping_rounds=20,
verbose_eval=1,
)
ハイパーパラメータ ・パラメータ
lgbm_params = {
'task' : 'train',
'boosting_type' : 'gbdt',
'objective' : 'lambdarank',
'metric' : 'ndcg', # lambdarank用
'ndcg_eval_at' : [1,2,3], # lambdarank用
'force_col_wise' : 'true',
'learning_rate' : 1e-8, # 極めて小さい値
'min_data' : 1,
'min_data_in_bin' : 1,
}
・参考データセット ・Datasetオブジェクト 特徴量とそれに対する正解ラベルをセットで保持
lgb_train_data = lgb.Dataset(
all_rank_train,
all_target_train,
categorical_feature=[1,2,3,4,5,7],
group=all_query_train
)
lgb_eval_data = lgb.Dataset(
all_rank_test,
all_target_test,
categorical_feature=[1,2,3,4,5,7],
group=all_query_test
)
Training API(使用法) ・modelオブジェクトを作成し train() メソッドを使用 Scikit-learn APIでは fit() メソッドを使用① Datasetオブジェクトを作成 ( lgb.Dataset() ) ② ハイパーパラメータを辞書として用意 ( params = {} ) 使用する評価指標は params引数中に、metricsとして指定③ lgb.train() にDatasetオブジェクトとハイパーパラメータ辞書を渡す。 Scikit-Learn API (2つのAPI) ・LightGBMには Training APIと Scikit-Learn API という2種類の実装方式が存在 Scikit-learn APIでは fit() メソッドを使用・使用するデータセットの型 numpy配列(ndarray)をそのまま渡せる。・学習用メソッド名 fit()メソッド・使用する評価指標 学習時のfit()メソッドの eval_metric引数に渡す。 |
All Rights Reserved. Copyright (C) ITCL |