0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

言語モデルに数値予測をさせてはいけないのか - LightGBM による実践的アプローチ

Posted at

はじめに

「ChatGPT や Claude に Excel ファイルを渡せば、高精度な予測ができるはずだ。」

この考えには、言語モデルの根本的な限界が見過ごされています。

課題

限界①:言語モデルは「数字」が苦手。その理由はトークン化にある

言語モデルは、テキストを「トークン」という単位に分割して処理します。
頻出する単語は 1 つのトークンになりますが、数字は文字列としてバラバラに分割される傾向があります。
この分割により、モデルは数値の「近さ」や「大きさ」を直感的に理解するのが難しくなります。

限界②:表は 2 次元、モデルは 1 次元。構造情報の損失が発生する

人間は表を 2 次元で瞬時に理解できますが、言語モデルは 1 次元の文字列として入力する必要があります。

限界③:トークンコストの爆発。予測のたびに高額な請求が発生

表形式データをテキストに変換すると、膨大な量のトークンが生成されます。
予測を実行するたびに、この膨大なテキスト全体をモデルに送信し、ゼロから法則性を見つけ出す必要があります。運用コストが非現実的なレベルまで増加します。

LightBGM と XGboost

表形式データ予測の業界標準モデル LightBGM もしくは XGboost を使う。

LightBGM XGboost
Microsoft が開発し、軽量かつ高速な学習が特徴 LightGBM 以前のデファクトスタンダードであり、今も広く使われる
スクリーンショット 2026-01-11 19.37.48.png スクリーンショット 2026-01-11 19.37.55.png

今回は、LightGBM を使っていきます。

LightGBM を 3 行で説明:

  1. 機械学習の予測アルゴリズム(未来の数値を予測する仕組み)
  2. 高速で正確(大量データでもサクサク動く)
  3. 表形式データが得意(Excelのような表のデータに最適)

LightBGM を使う

作成するモデル

質問: 来年の賃金は何%上がる?

LightGBM: 過去のデータを学習
├── 2015年: 業種・企業規模・地域 → 値上げ率
├── 2016年: 業種・企業規模・地域 → 値上げ率
├── ...
└── 2024年: 業種・企業規模・地域 → 値上げ率

学習完了!
→ 2025年の条件を入力すると、予測値が出る

こんな感じの賃金の値上げを予測するモデルを作成してみます。

環境

Claude Code でも GitHub Copilot でもなんでも良いですが、GitHub Copilot を使っていきます。

なお、利用するモデルですが、普段は Claude Sonnet 4.5 を使うことが多いのですが、今回のようなケースの場合どのモデルが最適かイマイチ不明でしたのでわざと Auto としてみます。
スクリーンショット 2026-01-12 16.09.33.png

データの準備

まず、次のように日本の賃金値上げを予測するモデルを作成するため、以下のようなデータを用意しておきます。(今回は Demo ですのでこれも GitHub Copilot にお願いして作成してもらいます。)

  • japanese_wage_increase_detailed.csv - 詳細データ
  • japanese_wage_summary.csv - 年間サマリー

スクリーンショット 2026-01-12 16.16.21.png
スクリーンショット 2026-01-12 16.20.46.png

LightGBM モデルの作成

先程のデータを元に今後の賃金値上げを予測するモデルを GitHub Copilot に LightGBM で作成しみてもらいます。

スクリーンショット 2026-01-12 16.41.56.png
スクリーンショット 2026-01-12 16.44.09.png

いくつか要点を絞って確認してみます。

まず、以下のメインスクリプトは、lightgbm ライブラリを使っていい感じに、ざっくりと以下のような動作をしてくれているようです。

  1. データ読み込み
  2. 変換
  3. モデル作成
  4. 予測
  • wage_prediction_model.py

次に以下のデータのファイルを見てみます。何となくですが、関東や関西の賃上げ率が高いんだろうなというのがわかるかなと思います。

  • wage_predictions_2025.csv - 2025年の全予測結果

スクリーンショット 2026-01-12 16.54.25.png

最後に です。 0.9 以上になっているため「良い予測」が得られていると言えるのかなと思います。

アプリの構築

今作成したモデルを運用したいので、アプリにしていきます。
本来では詳しい要件を指定して作成すべきなのだと思いますが、今回は Demo ですので一旦は GitHub Copilot に任せていきます。
(ちなみに、前提で Auto にしていたのですが、最初 GPT-5.1-Codex が使われ細かい要件を聞いてきて面倒だったので、ここだけは Claude Sonnet 4.5 を利用しています。)

streamlit で、アプリを作成してくれたようです。自分は経済に詳しいわけではないのでの実際にどのような入力値を与えれば、精度の高い予測をしてくれるかはわかりませんが、以下のような情報を入力し「予測実行」を押すと、とりあえず賃金値上げが期待できるんだろうなと言うことがわかります。このあたりはドメイン固有の知識も必要になってくれるんだろうなと思います。
スクリーンショット 2026-01-12 17.17.12.png
スクリーンショット 2026-01-12 17.51.54.png
スクリーンショット 2026-01-12 17.52.09.png

まとめ

LightGBM を使った賃金値上げ予測モデルを実装してみました。

重要なポイント:

  • 言語モデルは自然言語処理には優れていますが、数値予測には専用ツールを使うべき
  • LightGBM/XGBoostは表形式データに特化しており、高速・高精度・低コスト
  • GitHub Copilot などのコーディング支援ツールを活用すれば、機械学習の専門知識がなくても実装可能

表形式データを扱う際は、適切なツールを選択することが成功の鍵となります。言語モデルと機械学習モデル、それぞれの得意分野を理解し、使い分けることが重要です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?