現代では、インターネット上で提供できるサービスにおいて、様々な効率化が行われています。例えば顧客のデータ分析を行う為に、自動で分類したり、チャットボットを導入をして問い合わせ毎に連絡先を知らせる、などです。
今回は、そのような自動でデータを分類する、LightGBMについて徹底解説していきます。
某電子専門学校卒業後、サーバー/ネットワーク運用業務を通し、ネットワーク設計/構築事業をメインにインフラ業務全般を担当。その後、某情報セキュリティ会社にて、情報セキュリティ教育事業の教育係も担当。
LightGBMとは

LightGBMとは、機械学習プログラムをベースとした、効率的なデータ分類及び予測モデルの事を指します。
何が出来るのかというと、事前にLightGBMにデータを入力し、その入力されたデータをLightGBMに学習させることで、安定かつ高速にデータ分類と予測を行わせます。
このLightGBMの特徴的なところは、教師あり学習と呼ばれるアルゴリズムを導入することで、より高度なデータ予測を可能とします。
またこのLightGBMは、何を目的にするか、の目的変数から、どのような結果になるか、説明変数をツリー状にして行っていく、決定木と呼ばれるアルゴリズムの進化版とも呼ばれています。
LightGBMの基本的な仕組み

ここではLightGBMの基本的な仕組みを紹介します。LightGBMはデータ予測型アルゴリズムですが、さまざまな仕組みで動作していて、少し理解が難しいと思われますので、一つずつ詳しく解説していきます。
決定木分析
まず一つ目に紹介する仕組みが、決定木分析です。これは、LightGBMに入力されたデータから、目的となる変数と、目的のための説明となる変数の二つから、それぞれの特徴を分類していく手法です。
勾配ブースティング
次に紹介する仕組みが、匂配ブースティングです。先ほどは決定木と呼ばれる仕組みを紹介しましたが、この匂配ブースティングは、一度行われた決定木から、次の決定木における分析において、学習したデータを反映させます。
これにより、一度学習したデータをどんどん蓄積させていくので、同じようなデータを予測させたい場合、より精度とデータ予測のスピードが向上するのです。
教師あり学習
教師あり学習は、概要でも軽く説明しましたが、目的変数と説明変数を使用し、目的のデータを予測する機械学習の事を指します。従来の教師なし学習では、目的変数を使用しないため、大きいデータベースから予測する場合、とても時間がかかります。
この教師あり学習は、目的変数と説明変数の二つの要素により、どのようなテーブルでも効率よく予測データを出力するのです。
教師あり学習と教師なし学習の違いについて知りたい方は、以下の記事をご参照ください。
LightGBMとXGBoostとの違い

LightGBMが開発される前は、XGBoost呼ばれるデータ予測型アルゴリズムが主流でした。このXGBoostも、LIghtGBMで使用されている決定木により、データを予測しています。
さらに、XGBoostが登場する前のデータ予測型アルゴリズムは、精度が低いという指摘がありました。この問題を克服したのが、XGBoostです。しかしXGBoostは、データ予測計算をする際、決定木を順番に行っていくため、長い時間がかかるという欠点がありました。その欠点を補ったデータ予測型アルゴリズムが、LightGBMなのです。
LightGBMは、決定木のデータを処理する際、優先順位をつけて処理行う為、処理が高速であり、連続したデータをまとめて処理を行うので、データの扱い方が効率的といった、主に2点のXGBoostとの違いがあります。
| 項目 | LightGBM | XGBoost |
| データの取り扱いの効率 | 優先順位をつけるため、効率が良い。 | 順番に処理を行う為、効率が悪い。 |
| 処理の速さ | 連続したデータをまとめて処理する為、速い。 | 一つずつ順番に処理を行い為、遅い。 |
自然言語処理について詳しく知りたい方は、以下の記事をご参照ください。
LightGBMを使うメリット

ここではLightGBMを使用する事で得られるメリットについて、解説します。LightGBMは従来のデータ予測アルゴリズムと比べて、処理速度や精度だけでなく、得られるメリットがさまざまにあります。
迅速にデータ分析ができる
得られるメリットの一つ目が、とても速くデータの分析が行えることです。その理由は、決定木によるデータ処理と、匂配ブースティングによる決定木の処理の高速化によるものと言えるでしょう。
このようなメリットを得られるデータ予測アルゴリズムは、現在ではLightGBMだけではないでしょうか。さらに教師あり学習を組み合わせれば、大きいデータの処理でも高速に分析を行えます。
使用メモリが軽い
LightGBMは、決定木による処理を行う際、ヒストグラムと呼ばれる技術を使用します。これは、入力されたデータを数値事に区切り、グラフ化します。これにより、決定木での処理において、データの流れをスムーズにするので、一つ一つ処理するデータの量が少ないです。
データの量が少ないので、データ同士の計算を行う際も、あまり負荷がかかりません。それ故に、LightGBMでデータ予測を行う際、デバイスで使用するメモリが圧倒的に軽いといった利点があります。
自社でデータ予測を行いたいが、高い処理能力を持つデバイスが少ないといった場合、効果を発揮します。
推測精度が高い
LightGBMは、データ予測を行う際、さまざまな技術を使用します。まず決定木からデータ処理を行い、次の処理では匂配ブースティングを行います。かつ、教師あり学習を行うので、処理するデータが大きい場合でも、データ処理の効率は変わらず、次々とデータ予測の処理を行っています。
これらにより、LightGBMはデータ予測の精度が、処理するデータが大きい小さいに関わらず、推測精度がとても高いといったメリットがあります。これは、様々な技術の利点を、上手く活用する仕組みで開発された、LightGBMの特徴でもあると言えるでしょう。
大規模データの分析がしやすい
LightGBMは、大規模データの分析がしやすいといったメリットもあります。これは文中でも何度か述べていますが、教師あり学習による、目的変数を使ったデータ処理による恩恵から得られるものです。
LightGBMを使うデメリット

ここでは、LightGBMを使用する上で発生するデメリットについて解説します。LightGBMはデータ予測アルゴリズムとしては、とても優秀ですが、使用されている技術が多い故の、デメリットがあります。
過学習に陥りやすい
LightGBMには匂配ブースティングの他に、教師あり学習の技術が使用されています。それ故に、学習したものをさらに学習といった、二重の学習を行ってしまう懸念点があります。それ故に、データ処理の効率が悪くなったり、学習結果に相違がでてしまう可能性があるのです。
そういった場合には、パラメータをデータの種類ごとに、適切な設定を行いましょう。これにより、LightGBMが過学習してしまうといった点を防げます。
調整に手間がかかる
LightGBMは、決定木によるデータ処理の他にも、さまざまな設定値があります。設定が多様な為、さまざまなデータ予測の設定を行えますが、それ故に、データ予測を行う際、調整に手間がかかるといったデメリットが発生します。
それを防ぐ為に、LightGBMを導入・開発する際に、ただLightGBMを導入し、データ予測をするたびに設定値を調整するのではなく、LightGBMを使用してデータ予測をする際に、予めどのような調整をするのか、設計しておくのがよいでしょう。
LightGBMをPythonに実装する基本の手順

ここでは実際にLightGBMを、Pythonに実装する手順を紹介します。インストール方法からそれぞれの設定方法まで解説しますので、是非参考にしてください。
LightGBMをインストールする
LightGBMのインストール方法ですが、以下の三つがあります。
- Anacondaのconda-forgeからインストールする
- Google Colabを使う
- GPU版を使う
Anacondaのconda-forgeからインストールする
まずAnacondaを使ってインストールする方法ですが、condaコマンドを使用して、以下のコマンドを入力するだけで、LightGBMを導入できます。
Google Colabを使う
次にGoogle Colabを使ってインストールする方法ですが、Google Colabを知らない方に向けて説明すると、Googleが教育機関や企業など、法人に向けて提供しているWebプログラミングツールです。個人でも使用できます。
このGoogle Colabから、以下のコマンドを入力することで導入できます。
GPU版を使う
最後にGPU版のインストール方法について説明します。主にコマンドプロンプトからインストールしていきます。
まず、以下のコマンドでビルドツールや必要なソフトウェアをダウンロードします。
sudo apt install build-essential
sudo apt install cmake
最後にGPU版のLightGBMをインストールします。
これでインストールは完了です。
必要なライブラリをインポートする
LIghtGBMをインストール後は、必要なライブラリをインポートする必要があります。
Google Colabを使用してインストールした場合は、既に必要なライブラリは揃っているので、インストール及びインポートは不要です。
Anacondaや、コマンドプロンプトからインストールした場合、ライブラリが不足している可能性が高い為、個別でライブラリをインストール及び、インポートが必要です。
データの正規化を行う
次に、インストールしたLightGBMのデータ前処理を行う必要があります。この手法を行う意味は、インストールしたLightGBMを、導入したい機械学習方式に合わせたデータ処理を行わせる為に必要だからです。
その為に、データ正規化を行います。例えば画像を入力させたい場合、0~255のピクセル範囲を指定し、関数などで元のデータを比較しながら、機械学習に合わせたデータの正規化を行っていきます。
モデルやパラメータの設定を行う

LightGBMをインストールし、データの正規化が完了したら、モデル及びパラメータの設定を行います。モデルは、導入したい機械学習モデルのインストールを行っていきます。モデルによってインストールするファイルが異なりますのでご注意下さい。
モデルのインストールが完了したら、パラメータの設定を行っていきます。パラメータは、導入したモデル(機械学習モデル)に最適なパラメータと、予測したいデータに合わせてパラメータを設定していく必要があります。
特にパラメータは、さまざまな設定値や適切な値が存在しますので、柔軟性が高いですが、設計によっては挙動がおかしくなるため、十分に検証してから本番環境に移行させましょう。
モデルの訓練・分析を行う

LightGBMのインストールから、モデルのインストール、パラメータの設定が完了したら、最後にモデルの訓練・分析を行います。LightGBMはデータの予測や分析を行う為のものであり、インストールと設定が完了して終わりではありません。
モデルの訓練と分析を行うことにより、実際にデータ予測などを行う際、適切に動作するかテストします。この工程において、モデルとパラメータの設定は適切か、機械学習が適切なパフォーマンスで動作しているか、など様々な動作テストを行っていきます。
この工程で意図した通りの動作をしていない場合、再設定を行うことで、LightGBMのパフォーマンスを最適化していきます。
LightGBMを最適化するコツ

ここでは実際にLightGBMを導入し、最適化するコツについて紹介します。主にモデルのチューニングや過学習させないことで、LightGBMを最適化できます。
ハイパーパラメータのチューニングを行う
LightGBMには、主に以下の3つの重要なハイパーパラメータが存在します。
- num_leaves
- min_data_in_leaf
- max_depth
num_leaves
num_leavesには、決定木の分岐の多さを設定するものです。このnum_leavesが、最適化する為に一番重要とされます。この設定値は、max_depthと同時に設定する事で、決定木の分岐をどれくらい深くまで行うか、が設定可能です。
min_data_in_leaf
min_data_in_leafは決定木をどれくらい少なくするか、の設定を行います。この設定値を上手く調整することで、モデルの学習機能を適切に設定できます。多すぎると過学習となり、少なすぎると学習をあまりしない為、シビアな調整が求められます。
max_depth
最後にmax_depthですが、前述の通り、決定木の深度を設定します。この項目単体での設定でなく、それぞれ二つの設定値と上手く調整することで、最適化されます。
過学習の対策を行う
LightGBMでの最適化のコツ二つ目は、過学習の対策を行うことです。過学習とは、簡単に言うと、それぞれの設定値が適切にされておらず、モデルが速めに学習を止めてしまうことです。
モデルが学習を止めてしまうと、次のデータ予測をする際、LightGBMのモデルが学習を行わない為、同じようなデータ処理を行ってしまいます。
それを防ぐ為には、max_data_in_leafを適切に設定する事が必要です。また、max_data_in_leafを含めたハイパーパラメータの見直しをすることで、改善できます。
LightGBMの活用例

ここではLightGBMをそれぞれの業界で実際に活用した例を紹介します。市場予測や広告運用など、LightGBMを導入する事でどのような効果があったのかを、具体的に解説していきます。
市場予測
まず市場予測でのLightGBMでの活用例ですが、とあるショッピングモールでの売り上げを、LightGBMで予測することで、適切な日や週に、お弁当や人気商品などを、在庫を過不足なく販売できたとのことです。
これにより、実際の店舗の在庫が過不足がなく、適切な売り上げを達成できたのです。LightGBMは、モデルに適切な設定を行えば、市場予測にとても役立つものと言えるでしょう。
広告運用
次に広告運用におけるLightGBMの活用例について解説します。
また、LightGBMは学習をするので、次年度にはどのような広告運用が適切なのかを予測できますので、いちいち企画を行う必要がありません。
クレジットスコアリング
最後に金融業界の、クレジットスコアリングにおけるLightGBMの活用例について解説します。クレジットスコアリングとは、顧客が金融機関とローンによる貸し借りを行い、その返済方法や期間についてのプランをスコアリングしたものです。
このスコアリングを、LightGBMのモデルに読み込ませることで、さまざまな顧客の返済プランを自動算出し、社員がそれぞれの返済状況を把握する必要が無いのです。
このようなクレジットスコアリングにおいても、LightGBMは存分に活用できると言っていいでしょう。
LightGBMをPythonに実装してデータ分析の精度を上げよう

LightGBMの概要から導入方法、活用事例まで解説しました。現代ではLightGBMを始めとした、さまざまな機械学習プログラムを導入する企業が増えています。
もし企業において、機械学習プログラムを導入したいと考えているのであれば、LightGBMをPythonに実装させましょう。LightGBMを導入させれば、データの分析を自動化できます。これにより業務の効率を格段に上げる事が可能です。
もし、機械学習プログラムの導入を考えていて、どれを導入すればよいかわからないと考えているのであれば、株式会社Jiteraに相談すると良いです。さまざまなAIによる開発実績により、適切な機械学習プログラムをご提案できるでしょう。
株式会社Jiteraに相談する

