Microsoft Research の James McCaffrey 博士は、Python と scikit-learn ライブラリを使用して LightGBM システムでマルチクラス分類を実行する方法について、完全なコードを含むステップバイステップの機械学習チュートリアルを提供しています。

マルチクラス分類の問題は、3 つ以上の値を持つ離散変数を予測することを目的とする問題です。たとえば、性別、年齢、居住州、年収から、ある人の政治的傾向 (保守、中道、リベラル) を予測したい場合があります。マルチクラス分類には、多くの機械学習手法があります。最も強力な手法の 1 つは、LightGBM (軽量勾配ブースティング マシン) システムを使用することです。

LightGBM は、2017 年に導入された洗練されたオープンソースのツリーベースのシステムです。LightGBM は、マルチクラス分類、バイナリ分類 (2 つの可能な値のうち 1 つを予測)、回帰 (単一の数値を予測)、およびランキングを実行できます。

この記事の目的を理解するには、図 1 のデモ プログラムのスクリーンショットを見るのが一番です。LightGBM には、C、Python、R の 3 つのプログラミング言語インターフェイスがあります。デモ プログラムでは、Python 言語 API を使用します。デモは、分析するデータをメモリに読み込むことから始まります。データは次のようになります。

トレーニング データセットには 200 項目、テスト データセットには 40 項目あります。各行は人物を表します。予測変数は、性別、年齢、州、収入です。予測するターゲット クラス ラベルは、政治的傾向 (0 = 保守、1 = 中道、2 = リベラル) です。

デモでは、LightGBM 分類器オブジェクトを作成してトレーニングします。トレーニングされたモデルは、トレーニング データを 97.5% の精度 (200 件中 195 件が正解) で予測し、テスト データを 82.5% の精度 (40 件中 33 件が正解) で予測します。

デモの最後は、これまで見たことのない新しい人物、オクラホマ州出身で 35 歳の男性、年収 55,000 ドルの政治的傾向を予測して終わります。予測は 2 = リベラルです。

この記事では、読者が C ファミリ言語の中級以上のプログラミング スキルと決定木用語の基礎知識を持っていることを前提としていますが、LightGBM について何も知らないことは前提としていません。デモ プログラムのソース コード全体はこの記事で紹介されており、付属のファイル ダウンロードでも入手できます。ソース コードとデータもここから入手できます。

データデモ プログラムは 240 項目の合成データ セットを使用します。生データは次のようになります。

フィールドは、性別 (M、F)、年齢、州 (ミシガン州、ネブラスカ州、オクラホマ州)、収入、政治的傾向 (保守、中道、リベラル) です。LightGBM を使用する場合は、カテゴリ予測子とラベルをゼロベースの順序エンコーディングを使用してエンコードするのが最適です。他のほとんどのマルチクラス分類システムとは異なり、LightGBM を使用する場合は、数値予測子変数をそのまま使用できます。最小最大、Z スコア、または定数による除算正規化を使用して数値予測子を正規化できますが、正規化は LightGBM モデルには役立ちません。

前処理ステップでデータをエンコードすることも、データがメモリにロードされている間にプログラムでエンコードすることもできます。デモでは前処理を使用します。コンマで区切られたエンコードされたデータは次のようになります。

240 項目のエンコードされたデータは、予測モデルを作成するための 200 項目のトレーニング データ セットと、モデルを評価するための 40 項目のテスト データ セットに分割されました。

Python と LightGBM のインストールLightGBM の Python 言語 API を使用するには、マシンに Python がインストールされている必要があります。Python の Anaconda ディストリビューションを使用することを強くお勧めします。Anaconda ディストリビューションには、Python インタープリターと、互いに互換性のある約 500 個の Python パッケージが含まれています。デモでは、Python バージョン 3.11.5 を含むバージョン Anaconda3-2023.09-0 を使用します。Windows プラットフォームに Anaconda をインストールするには、ここをクリックしてインストーラー ファイル Anaconda3-2023.09-0-Windows-x86_64.exe (またはそれ以降) を見つけます。注: マシンと互換性のないバージョンをダウンロードするのは非常に簡単です。

.exe ファイルのリンクをクリックして、マシンにダウンロードします。ファイルがマシンにダウンロードされたら、ファイルをダブルクリックして GUI ベースのインストール プロセスを開始します。ほとんどのシナリオでは、マシンの PATH 環境変数に Anaconda3 を追加しない値を除いて、すべてのデフォルトのインストール値を受け入れることができます。システム環境変数を手動で編集したり、コマンド ラインに長いパスを入力したりしなくて済むように、Anaconda3 を追加することをお勧めします。

Anaconda Python をインストールするための詳細な手順に従うこともできます。

コマンド シェルを開いてコマンド「python」(引用符なし) を入力すると、Anaconda Python のインストールを確認できます。Python のバージョンを示す応答メッセージと、それに続く Python の 3 つの大なり記号プロンプトが表示されます。インタープリターを終了するには、「exit()」と入力します。

Windows マシンから Anaconda をアンインストールする必要がある場合は、「プログラムの追加と削除」設定に移動して「アンインストール」オプションをクリックします。

この記事の執筆時点では、Anaconda ディストリビューションには LightGBM システムが含まれていないため、別途インストールする必要があります。pip インストーラー プログラム (Anaconda に含まれています) を使用することを強くお勧めします。インターネット経由で最新バージョンの LightGBM をインストールするには、コマンド シェルを開いて、コマンド「pip install lightgbm」を入力します。数秒後、成功を示すメッセージが表示されます。確認するには、コマンド シェルを開いて「python」と入力します。Python プロンプトで、コマンド「import lightgbm as L」に続いて、コマンド「L.__version__」を 2 つのアンダースコアを使用して入力します。インストールされている LightGBM のバージョンが表示されます。

LightGBM をインターネット経由でインストールする代わりに、まず LigbtGBM パッケージをマシンにダウンロードしてからインストールできます。ここをクリックして、「lightgbm」を検索してください。検索結果に LightGBM パッケージ ページへのリンクが表示されます。[ファイルのダウンロード] リンクをクリックします。lightgbm-4.3.0-py3-none-win_amd64.whl のような .whl ファイルがあるページに移動し、クリックしてファイルをマシンにダウンロードできます。ダウンロードが完了したら、コマンド シェルを開き、.whl ファイルを含むディレクトリに移動して、「pip install [.whl ファイル名]」コマンドを入力して LightGBM をインストールします。

LightGBM をアンインストールする必要がある場合は、「pip uninstall lightgbm」コマンドを入力してアンインストールできます。私は自分のマシンに LightGBM のコピーを保存できるように、ローカルインストール手法をよく使用します。

LightGBM デモ プログラム完全なデモ プログラムはリスト 1 に示されています。デモは、トレーニング データをメモリに読み込むことから始まります。

デモでは NumPy 乱数ジェネレーターを直接使用しませんが、プログラムが RNG を使用するように変更された場合に備えて、ジェネレーターのシード値を設定しておくことをお勧めします。

デモでは、トレーニング データ ファイルとテスト データ ファイルが Data というサブディレクトリにあることを前提としています。コンマ区切りのデータは、loadtxt() 関数を使用して NumPy 配列にロードされます。列 0、1、2、3 の予測値は float64 型としてロードされ、ラベルは int64 型としてロードされます。"#" で始まる行はコメントであり、ロードされません。

リスト 1: LightGBM マルチクラス デモ プログラム

テスト データは、トレーニング データと同じ方法で配列 test_x および test_y としてメモリにロードされます。次に、デモではトレーニング データの最初の 3 行を健全性チェックとして表示します。

デモ以外のシナリオでは、すべてのデータを表示したい場合があります。

Microsoft Research の James McCaffrey 博士は、Python と scikit-learn ライブラリを使用して LightGBM システムでマルチクラス分類を実行する方法について、完全なコードを含むステップバイステップの機械学習チュートリアルを提供しています。

あらゆることを実行する大規模言語モデル (LLM) の初期の流入が、より小規模でより特化した AI 構造とともに進歩してきたのと同じように、Microsoft のコーディング専用の GitHub Copilot にも同じことが起こる可能性があります。

OpenSilver 2.2は本日デビューし、開発者がVisual Studio LightSwitchのレガシーアプリケーションを復活させるのを支援することに重点を置いています。

オリジナルの「AI ペア プログラマー」である GitHub Copilot は、開発者が自然言語を使用してコードを記述し、新しい方法で高度な AI と対話できるようにするコンパニオン チャット ツールの導入により、機能が大幅に強化されました。

Microsoft は本日、OData .NET 8 のプレビューをリリースしました。OData v7.0 は 2016 年 8 月にリリースされました。

問題がありますか? 質問がありますか? フィードバックがありますか? メールでお問い合わせください。

元記事: https://visualstudiomagazine.com/Articles/2024/05/02/LightGBM-multi-class-classification.aspx