代表的な機械学習アルゴリズム
前ページ(6-1)では、教師あり学習・教師なし学習や過学習といった機械学習の基礎概念を扱いました。本ページ(6-2)では、実際によく使われる代表的なアルゴリズムそのものを見ていきます。決定木を中心に、それを束ねたアンサンブル学習(ランダムフォレスト、勾配ブースティング・XGBoost・LightGBM)、境界線を引くSVM、距離で判定するkNNなど、DS検定でよく問われる手法を扱います。あわせて、機械学習の手法を3つ以上説明できることや、連合学習・大域的説明と局所的説明の違いなど、前ページと合わせて13項目すべてをカバーする構成です。
単回帰・重回帰・ロジスティック回帰といった「回帰」「分類」の代表選手は、次のページ「6-3. 回帰と分類」でくわしく扱います。
1. 機械学習アルゴリズムの全体マップ
機械学習の手法は数多くありますが、DS検定では手法を3つ以上知っており、それぞれの概要と解決できる問題(回帰・分類・クラスター分析など)を説明できることが求められます。まずは代表的な手法を、解決できる問題の種類とセットで俯瞰しておきましょう。
| 手法 | 学習の種類 | 主に解決できる問題 |
|---|---|---|
| 線形回帰・ロジスティック回帰 | 教師あり学習 | 回帰・分類 |
| 決定木 | 教師あり学習 | 回帰・分類 |
| ランダムフォレスト・勾配ブースティング | 教師あり学習 | 回帰・分類 |
| SVM(サポートベクターマシン) | 教師あり学習 | 分類・回帰 |
| kNN(k近傍法) | 教師あり学習 | 分類・回帰 |
| k-means・階層クラスタリング | 教師なし学習 | クラスター分析 |
このページでは、この中でも決定木をベースとした手法群と、SVM・kNNを中心に解説します。回帰・分類の細かな手法や、クラスタリングは以降のページで扱いますので、まずは「どんな手法が、どんな問題を解決するために存在するのか」という全体像をつかんでください。
試験では「この手法は何ができるか」がセットで問われることが多いよ。名前を覚えるだけじゃなくて、「回帰?分類?グループ分け?」を必ずセットにして覚えよう!
2. 決定木 ― 条件分岐で予測する、直感的なモデル
決定木※1は、「もし〇〇なら」という条件分岐(Yes/No)を木の枝のように積み重ねて、最終的な予測(回帰であれば数値、分類であればカテゴリ)にたどり着くモデルです。人間が意思決定をするときのフローチャートに近い構造をしているため、モデルの中身をそのまま図として可視化でき、非常に直感的に理解しやすいという特徴があります。
- 「年齢は40歳以上か?」→Yesなら「購入金額は過去半年で5万円以上か?」→…と条件分岐をたどり、最終的に「解約しやすい/しにくい」を判定する
- 「今日の来店客数は50人以上か?」→Yesなら「気温は25度以上か?」→…とたどり、アイスの発注数量を予測する
決定木は単体で使うと、条件分岐を深く複雑にしすぎることで訓練データに過剰適合しやすい(過学習しやすい)という弱点があります。この弱点を補うために生まれたのが、次に紹介するアンサンブル学習という考え方です。
3. アンサンブル学習 ― 複数のモデルの「集合知」を使う
アンサンブル学習※2とは、1つの強力なモデルを作るのではなく、複数の(比較的シンプルな)モデルを組み合わせて、全体としての予測精度を高めるアプローチです。決定木をベースとしたアンサンブル学習には、大きく2つの流派があります。
ひとつはバギング系の代表であるランダムフォレスト※3です。訓練データからランダムに一部を抽出し、それぞれ異なる決定木を大量に作って、最後にその多数決(分類)や平均(回帰)を取ります。個々の決定木の癖が互いに打ち消し合うことで、単体の決定木よりも安定した予測ができ、過学習しにくくなります。
もうひとつはブースティング系の代表である勾配ブースティング(Gradient Boosting Decision Tree:GBDT)です。決定木を1本ずつ順番に作っていき、前の木が間違えた部分を、次の木が重点的に学習することで、少しずつ誤差を減らしていく手法です。GBDTをさらに高速化・高精度化した派生形として、XGBoostやLightGBMがあり、実務のコンペティションや現場分析で広く使われています。決定木をベースとしたアンサンブル学習をライブラリを使って実行でき、変数の寄与度を正しく解釈できることは、DS検定のスキルチェック項目です。
| 手法 | 系統 | 考え方 |
|---|---|---|
| ランダムフォレスト | バギング | 並列に複数の木を作り、多数決・平均を取る |
| GBDT | ブースティング | 直前の木の誤差を、次の木が順番に補正していく |
| XGBoost / LightGBM | ブースティング(GBDTの派生) | GBDTを高速化・高精度化した実装 |
これらのアンサンブル学習はPythonのライブラリ(scikit-learnやXGBoost、LightGBMなど)を使えば比較的簡単に実行できますが、大切なのは実行して終わりにしないことです。モデルが出力する変数の寄与度(重要度)を見て、「どの変数が予測にどれだけ効いているか」を正しく解釈することが実務での価値につながります。ただし、寄与度が高いからといって、必ずしもその変数が「因果関係として結果を引き起こしている」とは限らない点には注意が必要です。
ランダムフォレストは「並列」、勾配ブースティング(GBDT・XGBoost・LightGBM)は「直列」で決定木を組み合わせるとイメージすると、両者の違いを覚えやすくなります。
XGBoostとLightGBMって名前だけ見ると難しそうだけど、「GBDTを速く・強くした派生形」って理解しておけばOK!試験でも名前の対応関係がよく問われるよ。
4. SVM ― 境界線を最大限引き離す発想
SVM(サポートベクターマシン)※4は、データをグループに分ける「境界線」を引くことで分類を行う手法です。SVMの特徴は、単に分けられればよいのではなく、それぞれのグループの最も境界に近いデータ点(サポートベクター)から、境界線までの距離(マージン)ができるだけ大きくなるように境界線を引く点にあります。マージンを最大化することで、未知のデータに対しても安定した分類ができる(汎化性能が高い)と考えられています。
- 「不良品/正常品」のセンサーデータを、できるだけ余裕を持って分ける境界線を引いて自動判定する
- 手書き文字の画像データを、数字ごとに分類する
5. kNN ― 「似ているものは近くにいる」という発想
kNN(k近傍法)※5は非常にシンプルな考え方に基づく手法です。予測したいデータ点について、既存のデータの中から距離が近いk個のデータを探し出し、その多数派のクラス(分類の場合)や平均値(回帰の場合)を予測結果とします。「似た者同士は近くに集まる」という直感をそのままアルゴリズムにしたイメージです。
kNNは学習の段階では特別な計算をせず、予測時にそのつど距離計算を行うのが特徴です。仕組みがシンプルで理解しやすい一方、特徴量の数(次元)が多くなると、前ページで扱った次元の呪いの影響を受けやすく、距離の意味が薄れて精度が悪化しやすいという弱点があります。
kNNの「k」は、参照する近傍データの個数です。kが小さすぎるとノイズに弱くなり、大きすぎると細かい違いを捉えられなくなります。適切なkの値は交差検証などで調整します。
まとめ
本ページ(6-2)では、決定木・アンサンブル学習(ランダムフォレスト・GBDT・XGBoost・LightGBM)・SVM・kNNといった代表的なアルゴリズムを扱いました。前ページ(6-1)の基礎概念と合わせて、DS検定の機械学習分野の必須知識を一通り押さえたことになります。最後に振り返っておきましょう。
- 手法と解決できる問題 ― 各アルゴリズムがどんな問題(回帰・分類・クラスター分析)を解決するかをセットで理解する
- 決定木 ― 条件分岐を積み重ねて予測する、直感的で可視化しやすいモデル
- アンサンブル学習 ― ランダムフォレスト(並列)、GBDT・XGBoost・LightGBM(直列)による精度向上と、変数の寄与度の解釈
- SVM ― マージンを最大化する境界線で分類を行う手法
- kNN ― 近くのデータの多数決・平均で予測するシンプルな手法
次のページ(6-3)では、単回帰・重回帰・ロジスティック回帰といった、回帰と分類の基本となる手法を、数式の意味も含めてくわしく見ていきます。
- 決定木 … 「もし〇〇なら」という条件分岐を木構造で積み重ねて、回帰・分類の予測を行う機械学習モデルのこと。↩
- アンサンブル学習 … 複数のモデルを組み合わせることで、単体のモデルより高い予測精度と安定性を得る手法の総称。↩
- ランダムフォレスト … 訓練データの一部をランダムに抽出して複数の決定木を並列に作り、その多数決や平均で予測するバギング系のアンサンブル学習手法のこと。↩
- SVM(サポートベクターマシン) … データを分けるグループ間のマージン(余白)を最大化するように境界線を引く分類・回帰手法のこと。↩
- kNN(k近傍法) … 予測したいデータに距離が近いk個のデータを参照し、その多数決や平均で予測する手法のこと。↩