[詳細記事] E資格のための教師あり学習:回帰・分類モデルを網羅
E資格の取得を目指す皆さん、こんにちは!
機械学習の基礎である「教師あり学習」、特に回帰と分類のモデルについて、どこから手をつけていいか分からない…と感じていませんか?
この記事では、E資格のシラバスにも含まれる重要な教師あり学習モデルを、初心者の方にも分かりやすく、網羅的に解説していきます。一つ一つのモデルの基本的な考え方をしっかり押さえて、E資格合格への道を切り拓きましょう!
まずは基本!教師あり学習とは?
教師あり学習は、例えるなら「答え(正解ラベル)付きの問題集」をコンピュータに与えて学習させる方法です。この問題集(データ)には、「こういう入力(特徴量)のとき、答え(正解ラベル)はこうなる」というペアがたくさん含まれています。モデルは、この関係性を学習し、未知のデータに対して答えを予測できるようになることを目指します。
教師あり学習は、予測したい答えの種類によって大きく2つに分けられます。
- 回帰 (Regression): 株価や気温、売上など、連続する数値を予測する問題です。「明日の気温は何度?」といった問いに答えます。
- 分類 (Classification): メールがスパムか否か、画像に写っているのが犬か猫かなど、あらかじめ決められたカテゴリのどれに当てはまるかを予測する問題です。「このメールはスパム?」といった問いに答えます。
数値予測の基本:回帰モデル 📈
線形回帰 (最小二乗法)
線形回帰は、最もシンプルで直感的に理解しやすい回帰モデルです。データ全体の傾向に最もフィットする一本の「直線」を引くことで、数値を予測します。
例えば、気温とアイスクリームの売上の関係を考えてみましょう。たくさんの日の気温と売上データをグラフにプロットすると、なんとなく右肩上がりの傾向が見えるはずです。線形回帰は、このデータ点全体の真ん中あたりを通る、最も「それらしい」直線を求めます。
この「最もそれらしい」直線を引くための方法が最小二乗法です。具体的には、各データ点と直線との「距離(残差)」を計算し、その二乗和が最小になるような直線の傾きと切片を決定します。つまり、全ての点からの誤差が全体として最も小さくなる直線を探す、というわけです。
ポイント
- シンプルな関係性を捉えるのに適している。
- 予測の根拠が分かりやすい(解釈性が高い)。
過学習を防ぐ工夫:正則化 (Lasso, Ridge)
線形回帰はシンプルで強力ですが、モデルが学習データに過剰に適合してしまう「過学習」に陥ることがあります。例えるなら、練習問題は完璧に解けるけど、少しひねった応用問題になると全く手が出せない状態です。
この過学習を防ぐためのテクニックが正則化です。モデルが複雑になりすぎないように、式の項に「ペナルティ」を加えることで、滑らかな(汎用性の高い)直線を引くように調整します。
代表的な正則化の手法に Lasso (ラッソ) 回帰と Ridge (リッジ) 回帰があります。
- Ridge回帰: 全ての特徴量を少しずつ使いながら、モデルの係数が大きくなりすぎるのを防ぎます。多くの特徴量が予測に少しずつ関わっている場合に有効です。
- Lasso回帰: 予測に重要でないと判断した特徴量の係数を完全にゼロにします。これにより、どの特徴量が重要なのかを自動的に選択する(特徴量選択)効果があります。
使い分けのヒント
- 予測に不要な特徴量が多いと感じたら → Lasso
- 多くの特徴量が関係していそうなら → Ridge
カテゴリ分けの基本:分類モデル 📂
確率を予測する:ロジスティック回帰 (シグモイド関数)
ロジスティック回帰は、「回帰」という名前がついていますが、分類のためのモデルです。特に、2つのカテゴリのどちらに属するか(例:合格/不合格、スパム/非スパム)を予測するのが得意です。
線形回帰のように直線を引いて予測値を計算するまでは似ていますが、その結果をそのまま使うのではなく、シグモイド関数という特殊な関数に通します。
シグモイド関数は、どんな数値が入力されても、必ず0から1の間の確率に変換してくれる便利な関数です。S字カーブを描くのが特徴で、出力された値が0.5より大きければカテゴリA、小さければカテゴリB、といったように分類します。
ポイント
- 結果が確率で出力されるため、予測の確信度が分かる。
- シンプルで計算が高速。
境界線で分ける:サポートベクターマシン (SVM, カーネル法)
サポートベクターマシン (SVM) は、「マージン最大化」という考え方でデータを分類する強力なモデルです。
異なるカテゴリのデータ点が混在する中で、それらを最も上手く分離する「境界線(決定境界)」を引くことを目指します。このとき、SVMは単に境界線を引くだけでなく、各カテゴリに最も近いデータ点(サポートベクター)と境界線との距離(マージン)が最大になるように線を引きます。このマージンを大きく取ることで、未知のデータに対する予測が安定しやすくなります(汎化性能が高まります)。
しかし、現実のデータはきれいに直線で分けられないことも多いです。そこで登場するのがカーネル法です。カーネル法は、元の次元では直線で分離できなくても、データを高次元の空間に写し取る(ように見せかける)ことで、きれいに分離できる境界線を見つけ出す魔法のようなテクニックです。
ポイント
「もし~なら」で判断:決定木
決定木は、私たちの意思決定のプロセスに非常に似た、直感的で分かりやすいモデルです。「もし○○が△△以上なら、次は□□をチェックする」といった「if-then」ルールの連なりで、データを分類していきます。
データをいくつかの質問(条件)で次々と分割していき、最終的に各データがどのカテゴリに属するかを決定します。その構造が木の枝分かれのように見えることから、決定木と呼ばれています。
メリット
- モデルの構造が視覚的に分かりやすい。
- なぜその予測になったのか、理由の説明が容易。
- 数値データだけでなく、カテゴリデータも扱える。
みんなの知恵を借りる:アンサンブル学習
アンサンブル学習は、複数のモデル(学習器)を組み合わせて、単体のモデルよりも高い予測性能を目指す手法です。「三人寄れば文殊の知恵」ということわざのように、多様なモデルの意見を統合することで、より賢明な判断を下します。
ここでは、決定木をベースにした代表的なアンサンブル学習を2つ紹介します。
ランダムフォレスト
ランダムフォレストは、たくさんの決定木を並列に作り、それぞれの予測結果の多数決(分類の場合)や平均(回帰の場合)で最終的な答えを決めます。
ポイントは、各決定木を作る際に、学習データと特徴量の両方をランダムにサンプリングすることです。これにより、一つ一つの木は少しずつ異なる視点で学習し、多様性が生まれます。結果として、モデル全体が過学習に陥りにくく、安定した高い性能を発揮します。
勾配ブースティング
勾配ブースティングも複数の決定木を使いますが、ランダムフォレストとは作り方が異なります。こちらは、決定木を直列に順番に作っていくのが特徴です。
まず、1本目の決定木で予測し、その予測の誤り(間違い)を、2本目の決定木が学習します。さらに、1本目と2本目を合わせた予測の誤りを3本目が学習…というように、前のモデルの弱点を次のモデルが補う形で学習を進めていきます。これにより、非常に高い精度を達成することができます。
ランダムフォレストと勾配ブースティングの違い
- ランダムフォレスト: 並列学習。各モデルが独立して学習し、最後に多数決。安定性重視。
- 勾配ブースティング: 直列学習。モデルが前のモデルの間違いを修正するように学習。精度重視。