はじめに はじめまして。データアナリティクスラボの力岡です。 私は日頃、テーブルデータの分析業務において、LightGBMをはじめとする勾配ブースティング系アルゴリズムを活用しています。ただし、その仕組みを十分に理解したうえで使いこなせているかというと、まだ自信が持てない部分もあります。そこで本記事では、自分自身の理解を深めるとともに、これから学ぶ方々にも役立つよう、勾配ブースティング決定木(GBDT)について体系的に解説していきます。 1. 勾配ブースティング決定木 勾配ブースティング決定木(Gradient Boosting Decision Trees、GBDT) は、複数の決定木(弱学習器)を組み合わせて高い予測精度を実現する、アンサンブル学習の一手法です。その名の通り、「勾配降下法」「ブースティング」「決定木」という3つの要素を組み合わせて構成されており、実務やKaggleなどの

概要 タイトルの通りなのだが、LightGBMをGPUで回すと結果の再現性が得られないことに気づいた。CPUの場合は乱数seedを42などに固定すれば、同じ条件で何回回しても毎回同じ結果が得られる。 しかし、GPUの場合は乱数seedを固定しても回すたびに結果が変わってしまうのだ。 なぜ再現性がないのか? この問題はLightGBMの公式のissueでも議論されている。 まず、GPUを使う場合は並列で計算できる部分は並列処理をすることで効率化している。 さらに、並列化した結果を足し算するときに、順番によって微妙に値が変わってしまうということだ。 もちろん数学的には足し算の順番が変わっても結果が変わることなんてないんだけど、コンピュータでfloatなどの値を計算する以上、丸め誤差だったり複数の要因で結果が「ほんのわずかに」違うということが起きうる。 さらに、LightGBMをGPUで回した

概要 SIGNATEで2024年1月18日~2024年2月15日において開催中のコンペ「第2回 金融データ活用チャレンジ」のデータを可視化し、LightGBMでの予測を行ってみました。 可視化はSeabornを活用することで、0,1のデータの分布を比較的簡単に見ることができるようになります。 予測結果のファイル名を都度設定するのは面倒なので、notebookのファイル名がそのまま使えると便利ですよね。notebookの設定を自動的に読み取る方法も紹介します。 とりあえずLightGBMで予測してみました。欠損値の補完などがなくても予測できてベースライン作成に便利です。 Confusion Matrix や ClassificationReportを使って予測結果を出力できるようにしておきましょう。 データのインポート・前処理 ライブラリのインポートnotebookの横幅を広げたいときに

ABEJAでデータサイエンティストをしている小林です。 今回は、もしかしたらいつか業務や機械学習コンペに役立つかもしれない情報、LightGBMで弱教師あり学習を行う方法についてお話します。 コードはこちらで公開しております。 目次 はじめに 弱教師あり学習の例(マルチインスタンス学習)LightGBMで弱教師あり学習がしたい! PU分類 問題設定 解き方LightGBMの実装 実験 Partial Label Learning 問題設定 解き方LightGBMの実装 実験 マルチインスタンス学習 問題設定 解き方LightGBMの実装 実験 おわりに はじめに機械学習を行うためには、一般的に、大量の入力データと、それら一つ一つに対応した正確なラベルが必要です。 例えば、犬と猫の画像分類を行う場合には、それぞれの画像一つ一つに犬か猫のラベルがついていてほしいですね。 一方で場合に

はじめにLightGBMは、Gradient Boosting Decision Tree (GBDT) アルゴリズムをベースとした人気の高い機械学習アルゴリズムです。 そのため、SageMaker でもLightGBM を使いたいというユースケースは非常に多いと思います。 SageMaker では、LightGBM を使う方法がいくつかあるため、ここではそれらの方法について整理したいと思います。 SageMakerでLightGBMを使ってモデル構築する方法 SageMakerでLightGBMを使ってモデル構築する方法は、現時点(2023/3)で以下の4つの方法があります。 1. SageMaker built-inLightGBM を利用 2. SageMaker でカスタムスクリプトを利用 3. SageMaker Autopilot を利用 4. SageMaker Jump

背景と目的 ビジネスにおいて機械学習による回帰モデルを構築する際に、単に「予測値(点予測)」が知りたいというよりも、「予測値が(どれくらいの確率で)どれくらいの範囲に収まりそうか(区間予測)」を知りたい場面があります。例えば天気予報を眺めてみると台風の進路予測には予報円が出ており、ある程度幅を持たせて進路を予測するといったことが行われています。あるいは需要予測を行う場合に「95%の確率で40個~60個の間に入りそうだ」という幅を持たせた予測をすることができれば、「売れ残りがでると損失が大きいので、明日の仕入れ量は40個にしよう」といった意思決定に繋げることができるかもしれません。 そこで、本記事ではテーブルデータの回帰タスクで広く利用されており皆様にとって馴染み深い勾配ブースティングアルゴリズムを用いて、「幅を持たせた予測」を実装する方法を紹介します。 各手法の概要 この区間予測を実装する

今回はLightGBM の cv() 関数について書いてみる。LightGBM の cv() 関数は、一般的にはモデルの性能を評価する交差検証に使われる。 一方で、この関数から取り出した学習済みモデルを推論にまで使うユーザもいる。 今回は、その理由やメリットとデメリットについて書いてみる。 cv() 関数から取り出した学習済みモデルを使う理由とメリット・デメリットについて 一部のユーザの間では有名だけど、LightGBM の cv() 関数は各 Fold の決定木の増やし方に特色がある。 まず、LightGBM では決定木の集まりを Booster というオブジェクトで管理している。 Booster が内包する決定木の本数は、ラウンド (イテレーション) 数として認識できる。 https://github.com/microsoft/LightGBM/blob/v3.0.0rc1/py

Optuna 開発メンバの小嵜 (@smly) です。この記事ではOptuna の拡張機能として開発しているLightGBM Tuner について紹介します。LightGBM Tuner はLightGBM に特化したハイパーパラメータ自動最適化のためのモジュールです。Pyhton コードの import 文を 1 行変更するだけで簡単に利用できます。LightGBM Tuner はエキスパートの経験則を自動化しコードに落とし込むことで、従来より短い時間で最適なハイパーパラメータを探索できます。また記事の後半では従来手法と比較したベンチマーク結果についても紹介します。ベンチマークをとることで、従来の方法と比較して効率的に探索できることを確認しました。 ナイーブなLightGBM のハイパーパラメータチューニングLightGBM は勾配ブースティング法の高速な実装を提供する人気の

皆さん、機械学習でモデルの学習時、何していますか? ぼーっとコンソールに出力されるログを眺めていませんか? 「お、思ったより下がった!」「あれ、精度悪くなってる、頑張れ!!」 と思いながら、見るのは意外と楽しいですよね。 でも応援したところで、モデルがその分頑張ってくれるわけでもないし、ドラマチックな展開があるわけでもないので、見てても時間の無駄なんですよね。 そんなことを考えてるときに気付いてしまいました。 「あれ、この時間筋トレしたらよくね?」 そんなわけで、機械学習の合間に筋トレできるような環境を考えました。NTTドコモの服部です。 こちらはNTTドコモサービスイノベーション部 AdventCalender2019 23日目の記事です。 この記事の対象者 筋トレ好き 運動不足な機械学習界隈の人 kagglerなどLightGBMをよく使う人 なんで筋トレするの? モデルの精度向上の

Kaggleなどのデータ分析コンペでテーブルデータを扱う場合、最近は取りあえずLightGBMを利用する場合が多いです。本記事では、初手の機械学習アルゴリズムとして「LightGBM」*1を採用する理由を紹介します。あくまで2019年10月末時点での個人の主観なので、ご参考までにご覧いただければと思います。 1. 欠損値をそのまま扱える 2. カテゴリ変数の指定ができる 3. 特徴量のスケーリングが不要 4. feature importanceが確認できる 5. 精度が出やすく最終的なモデルとして残る可能性が高い 6. 比較的大きいデータも高速に扱える 7. 過去の経験からハイパーパラメータの勘所がある おわりに 初手としては、手の混んだ特徴量を作らずに、まずは何かしらの予測結果を生成したい場合も多いです。LightGBMは既存のデータセットを極力加工せずに利用するという観点で、特徴量

1リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く