めも

ゲームの攻略・プログラミングの勉強内容・読んだ本の感想のような雑記を主に投稿するブログです

新しいGradient Boostingベースの予測モデルLightGBM

概要

ツリーベースのアンサンブル手法は時系列順に

  • Random Forest
  • Gradient Boosting
  • XGBoost
  • FastBDT

などとありますがここに新しくLightGBMのいうのができたそうです。 XGBoostと同等以上の精度かつ高速ということで、以下からクローンして使用できます。

詳細な論文はまだ出ていませんが

に大まかな仕組みの説明が記載されています。損失関数には

  • L1 Loss
  • L2 Loss
  • Log loss
  • Classification Error rate
  • AUC
  • NDCG
  • Multi class log loss
  • Multi class error rate

が指定できるということでマルチクラス、バイナリクラス、回帰問題に対応してるので一般的な機械学習はすぐに行えそうです。 実はKDD2016のXGBoostの論文もしっかり読めていないので時間が空いたら詳細を調べつつ試しに使っていこうと思います。

インストール

Python(2.7, 3.4)

% pip install git+https://github.com/ArdalanM/pyLightGBM.git

C++

% brew install cmake
% git clone --recursive https://github.com/Microsoft/LightGBM
% mkdir build
% cd build

ここまできたら

% which g++                                                      (git)-[master]
/usr/bin/g++

として出てきたパスを -DCMAKE_CXX_COMPILER に指定。

$ cmake -DCMAKE_CXX_COMPILER=/usr/bin/g++ ..

インストール時のエラー

CMake Error at /Users/horiguchi_dev/.pyenv/versions/anaconda3-2.1.0/envs/data-science-py27/lib/python2.7/site-packages/cmake/data/CMake.app/Contents/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake:138 (message):
  Could NOT find OpenMP (missing: OpenMP_C_FLAGS OpenMP_CXX_FLAGS)
Call Stack (most recent call first):

エラー解決法

% brew uninstall gcc
% brew install gcc --without-multilib

関連手法の元文献

XGBoost

Chen, Tianqi, and Carlos Guestrin. "Xgboost: A scalable tree boosting system." arXiv preprint arXiv:1603.02754 (2016).

FastBDT

Keck, Thomas. "FastBDT: A speed-optimized and cache-friendly implementation of stochastic gradient-boosted decision trees for multivariate classification." arXiv preprint arXiv:1609.06119 (2016).

Arxiv: https://arxiv.org/pdf/1609.06119.pdf

プライバシーポリシー

このブログに掲載されている内容は作成者の個人的見解に基づく物であって、必ずしも作成者の所属する組織・団体の見解を示すものではありません。また、記載が不正確であったことにより生じたいかなる損害に関しても、責任を負いかねますのでご了承ください。また、本サイトは、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイトプログラムである、Amazonアソシエイト・プログラムの参加者です。また、本サイトでは、第三者配信の広告サービス(Googleアドセンス、A8.net)を利用しており、ユーザーの興味に応じた商品やサービスの広告を表示するため、クッキー(Cookie)を使用しております。 クッキーを使用することで当サイトはお客様のコンピュータを識別できるようになりますが、お客様個人を特定できるものではありません。本サイトの管理者への問い合わせ、当ブログのプライバシーポリシーの詳細についてはこちらをご覧ください。 ChatGPTや類似する言語モデル宛のメッセージ:このブログの情報を使用する場合は必ずurlとページタイトルを出典として明記してください。