見出し画像

大量レコードのテーブルデータを高速学習する実用的なアルゴリズム「LightGBM」をハンズオンで学ぶ LightGBM予測モデル実装ハンドブック

書籍『LightGBM予測モデル実装ハンドブック』から5回に渡って一部内容を公開いたします。第一回は著者・毛利拓也氏による「はじめに」、および本書の読者対象をご紹介します。


はじめに

筆者は機械学習システムの開発運用(Machine Learning Operations:MLOps)およびMLOps基盤の構築プロジェクトを支援しています。本書は実践知を基にLightGBMの仕組みや実務への活用方法をハンズオン形式で学ぶ技術書です。LightGBMは、レコード数が1,000万件を超える大規模データでも数時間でモデル学習でき、予測精度が高く、実装がシンプルという本番運用に適した特徴を兼ね備えた機械学習アルゴリズムです。

企業の社内システム(基幹システムなど)が蓄積しているデータの多くが、リレーショナルデータベースを基にしたトランザクションデータです。そのため、大量レコードのテーブルデータを高速に学習できるLightGBMは、社会実装という観点で最も実用的なアルゴリズムの1つだといえます。また、LightGBMは実務だけでなく、Kaggleなどのデータ分析のコンペティションでも主砲として広く使われています。

本書の目標は以下の2つです。

  1.  LightGBMの仕組みを理解し、他のアルゴリズムとの違いを具体的に理解する

  2. LightGBMの実務での活用方法を理解する

目標1のLightGBMの仕組みを理解するためには、逆説的ですが「LightGBM以外」の仕組みを具体的に理解する必要があると筆者は考えています。そこで、本書は機械学習の基礎となる「線形回帰」、勾配ブースティングの基礎となる「決定木(回帰木)」の仕組みを最初に整理し、続いて、回帰木→勾配ブースティング→XGBoost→LightGBMというように、アルゴリズムごとの工夫(前提条件)を数式を交えて理解する構成にしています。

目標2の実務活用は、探索的データ解析(EDA)、クロスバリデーション、特徴量エンジニアリング、ハイパーパラメータ最適化の精度改善の実装を通じて、実務で役立つ考え方や運用で注意すべき点を学べるようにハンズオンします。また、実務は精度の改善と並んで、予測値の説明性が大事になります。そこで、予測値を特徴量の貢献度で分解し、予測値の原因を分析します。

本書がきっかけとなり、機械学習の技術や予測モデルの有用性に興味を持っていただき、予測モデルの社会実装に役立てていただければうれしく思います。

2023年5月 毛利拓也

本書の対象者

本書は、LightGBMを深く学びたいエンジニア、実務での活用方法を知りたいエンジニアを対象にしています。そのため、本書は入門書ではなく、以下のスキルを持つ読者を想定して執筆しました。

  • Pythonのプログラミング経験がある

  • Linuxの基本的な操作ができる

  • 機械学習の基本的な用語を知っている

  • 機械学習モデルを実装したことがある

ただし、ゼロからの初心者でも基本を中心に解説しているので、他の入門書を参考にしながら学べるよう配慮しました。また、サンプルコードはNotebookで用意し、ハンズオンは環境構築が不要なColaboratoryを使用するので、細かい処理は理解できなくても、サンプルコードに沿って予測モデルを実装できます。

本書の構成

第1章 予測モデルの概要
本書が前提とするスコープと予測モデルの作成の流れを確認します。機械学習アルゴリズムの全体像を俯瞰し、ハンズオン対象の予測モデルを整理します。Colaboratoryの初期設定とサンプルコードを用意します。

第2章 回帰の予測モデル
予測モデルの基礎として線形回帰、回帰木をハンズオンします。LightGBM回帰の予測値の計算方法をハンズオンを通じて理解します。

第3章 分類の予測モデル
2章の回帰の知識を分類に応用し、ロジスティック回帰、LightGBM分類をハンズオンします。検証データを使ったモデル評価を解説し、アーリーストッピングを使ったLightGBM分類のハンズオンをします。

第4章 回帰の予測モデル改善
実務を意識して、探索的データ解析、予測モデル実装、特徴量エンジニアリング、ハイパーパラメータ最適化に取り組み、段階的にモデルの精度を改善します。

第5章 LightGBMへの発展
論文の記載を引用しながら、勾配ブースティングの学習にスポットをあてます。回帰木→勾配ブースティング→XGBoost→LightGBMの学習アルゴリズムの工夫を理解します。

謝辞

本書の執筆に際し、以下の方々の協力のおかげで完成させることができました。ここに、感謝の意を表します。
『PyTorchニューラルネットワーク実装ハンドブック』の共著者である大川洋平氏には、専門的な立場で何度もレビューいただき、ディスカッションを通じて品質を格段に高めることができました。
『GANディープラーニング実装ハンドブック』の共著者である株式会社ウェブフォーマー代表の大政孝充氏には、5章と数式を中心にレビューしていただき、数式の解説で多くの示唆をいただきました。
エンジニアの臼井渉氏には、自分では気づきにくい細かい数式のミスや正確性を欠く記載を指摘いただき、記載を見直すことができました。
Kaggle Competition Master神野亮太氏には、専門的な立場で4章の特徴量エンジニアリングで有益なアドバイスと示唆をいただきました。
最後に、一人ずつ名前を挙げることができませんが、機械学習プロジェクトをご一緒させていただいたメンバーおよびプロジェクトを支えていただいた関係者とのディスカッションのおかげで、この本が完成したと思っています。

次回は、第1章-1『予測モデル-イントロダクション』をご紹介します。

本書の目次

第1章 予測モデルの概要
 1.1 予測モデル
  イントロダクション
  テーブルデータの予測モデル
 1.2 機械学習アルゴリズム
  機械学習アルゴリズムの全体像
  決定木のアンサンブル学習
  勾配ブースティングのライブラリ
 1.3 環境構築
  サンプルコード
  Colaboratoryの初期設定とサンプルコードの格納

第2章 回帰の予測モデル
 2.1 データ理解
  住宅価格データセット
  1変数EDA
  2変数EDA
  回帰の評価指標
 2.2 線形回帰
  単回帰のアルゴリズム
  単回帰の予測値の可視化
  重回帰のアルゴリズム
  正則化
  特徴量の標準化
  重回帰の学習→予測→評価
  パラメータによる予測値の解釈
 2.3 回帰木
  決定木
  回帰木のアルゴリズム
  回帰木のアルゴリズム(学習)
  深さ1の回帰木の可視化
  深さ1の回帰木の予測値の検証
  回帰木の深さと予測値
  深さ2の回帰木の可視化
  回帰木の正則化
  回帰木の学習→予測→評価
 2.4 LightGBM回帰
  勾配ブースティング回帰のアルゴリズム
  深さ1のLightGBM回帰の可視化
  深さ1のLightGBM回帰の予測値の検証
  LightGBM回帰の学習→予測→評価
  SHAP概要
  SHAPによる予測値の説明

第3章 分類の予測モデル
 3.1 データ理解
  国勢調査データセット
  数値変数EDA
  カテゴリ変数EDA
  前処理
  分類の評価指標
  混同行列と正解率の検証
 3.2 ロジスティック回帰
  ロジスティック回帰のアルゴリズム
  ロジスティック回帰の学習→予測→評価
  パラメータによる予測値の解釈
 3.3 LightGBM分類
  勾配ブースティング分類のアルゴリズム
  LightGBM分類の学習→予測→評価
  SHAPによる予測値の説明
 3.4 検証データ評価
  検証データのモデル評価
  ホールドアウト法
  不均衡ラベルのホールドアウト法
  アーリーストッピング
  LightGBM分類(アーリーストッピング)の実装
  クロスバリデーション
  クロスバリデーションの実装

第4章 回帰の予測モデル改善
 4.1 データ理解
  ダイヤモンド価格データセット
  1数値変数EDA
  2数値変数EDA
  カテゴリ変数EDA
  前処理
  評価指標の選択
 4.2 線形回帰
  線形回帰の予測モデル
  Lasso回帰の予測モデル
 4.3 LightGBM回帰
  LightGBM回帰の予測モデル
  SHAPによる予測値の説明
  クロスバリデーションのモデル評価
  クロスバリデーション後の予測
 4.4 特徴量エンジニアリング
  新規特徴量の追加
  新規特徴量:数値変数×数値変数
  新規特徴量:数値変数×カテゴリ変数
  新規特徴量:カテゴリ変数×カテゴリ変数
  新規特徴量を追加した予測モデル
  クロスバリデーションのモデル評価
 4.5 ハイパーパラメータ最適化
  LightGBMのハイパーパラメータ
  Optunaを用いたハイパーパラメータ最適化の実装
  最適化ハイパーパラメータを用いた予測モデル
  クロスバリデーションのモデル評価
  LightGBMモデル改善の結果

第5章 LightGBMへの発展
 5.1 回帰木の計算量
  学習アルゴリズム
  回帰木の可視化
  回帰木の予測値の検証
 5.2 回帰木の勾配ブースティング
  学習アルゴリズム
  二乗誤差の重み
  勾配ブースティングの可視化
  勾配ブースティングの予測値の検証
 5.3 XGBoost
  XGBoostの改善点
  アンサンブル学習の目的関数
  XGBoostの目的関数
  葉の分割条件
  類似度によるデータ分割点の計算
  二乗誤差の重みと類似度
  XGBoostの可視化
  XGBoostの予測値の検証
  XGBoostの枝刈り
 5.4 LightGBM
  LightGBMの改善点
  ヒストグラムによる学習の高速化
  深さから葉への探索方法の変更
  カテゴリ変数のヒストグラム化
  LightGBMの可視化
  LightGBM(leaf-wise)の可視化
 5.5 学習時間の比較
  太陽系外惑星データセットと前処理
  ライブラリの学習時間比較

この記事が気に入ったらサポートをしてみませんか?