ロジスティック回帰のまとめ・その1
何となくで使ってきたロジスティック回帰モデルを勉強しなおした。
ロジスティック回帰モデルとは
ざっくり言うと、ある出来事が「起こる」、「起こらない」ことを予測する方法で、また、起こる/起こらないは、二値分類でも多クラス分類にも使える。
この確率の計算は、データをロジット(logit)関数に渡し、特徴量と重みパラメータを計算して、ロジスティック関数に当てはめている。また、ロジットを対数オッズ(log-odds)、ロジスティック関数をシグモイド関数と呼ぶこともある。 このとき、ロジスティック関数は、起こる/起こらないを0から1の確率で示し、0.5以上なら「起こる」と0.5未満なら「起こらない」と予測する。また、入力変数$x$が大きくなるほど出力変数$P(x)$が1に近づき、小さくなるほど0に近づくS字型の曲線になる。$x$は $- \infty$から$\infty$の値をとるが、$P(x)$は0から1に収まるようになる。
$$ P(x) = \frac{1}{1 + e^{-x}}\ \ast eはネイピア数(約2.718) $$
また、ロジット関数は入力変数$x$と重み(係数)$w$とバイアス(切片)$b$からなる多項式で、この$w$と$b$からなるパラメータ$\theta$を推定することが重要になる。
$$ x = w_1 x_1 + w_2 x_2 + \cdots + w_k x_k + b\ \ast kは入力変数の個数 $$
パラメータ推定には最尤推定法を用いる。最尤推定法は観測されたデータから得た尤度関数を作成し、これを最大化するパラメータ$\theta$を求める。
$$ L(\theta) = \prod_{i=1}^n P(x_i)^{y_i} (1 - P(x_i))^{1 - y_i} $$
この尤度関数の最大化には、勾配降下法を用いる。ここでは、尤度関数の勾配(傾き)を計算して、勾配が最大になる方向にパラメータ$\theta$を少しずつ更新していく。
$$ w_j := w_j + \alpha \frac{\partial L(\theta)}{\partial w_j} $$
$$ b := b + \alpha \frac{\partial L(\theta)}{\partial b} $$
このとき、$\frac{\partial L(\theta)}{\partial w_j}$と$\frac{\partial L(\theta)}{\partial b}$は尤度関数の偏微分係数で、$x_{ij}$は$i$番目のデータの$j$番目の偏微分係数は次の式で求める。
$$ \frac{\partial L(\theta)}{\partial w_j} = \sum{i=1}^n (y_i - P(x_i)) x{ij} $$
$$ \frac{\partial L(\theta)}{\partial b} = \sum_{i=1}^n (y_i - P(x_i)) $$
なお、ロジスティック回帰モデルでは、学習率$\alpha$と更新する回数(反復回数)を予め決める必要がある。このとき、学習率$\alpha$は、パラメータ$\theta$を更新するステップサイズで、大きすぎると尤度関数の最大値を見逃す可能性が上がり、小さすぎると収束時間が長くなる。そして、反復回数は多すぎると計算時間がかかり、少なすぎると尤度関数の最大値に収束しない可能性が上がる。
ロジスティック回帰モデルを用いた予測モデル構築の手順
パラメータを推定し、予測モデルを作成(学習)し、この作成した予測モデルの評価(誤差計算)する。そして、新しいデータを予測して性能を求める流れになります。
例えば、5教科の成績から入学試験の合否を予測する場合だと、入力変数$x$は5教科の成績(0から100点)、出力変数$y$は入学試験の合否(合格:1, 不合格:0)にしたロジスティック回帰モデルになる。
ロジスティック回帰モデルの流れは、
- データセットの準備: まず、過去の何人かの生徒の5教科の成績と入学試験の合否の組み合わせを準備する。この手元の5教科の成績と入学試験の合否の組み合わせが、学習に必要なデータセット(学習セット)になる。また、5教科の成績が特徴量、説明変数(入力変数)と目的変数(出力変数)になる。
- パラメータの推定: ロジスティック回帰モデルで入力変数と出力変数の関係をモデル化する。このとき、パラメータ推定の方法を選択して、入力変数と出力変数の関係を確率モデルにあてはめ、最適なパラメータを推定する。
- 予測モデルの学習: 推定したパラメータを用いて、ロジスティック回帰モデルを学習する。このとき、推定したパラメータと入力変数から出力変数から作成した予測モデルを使って予測結果を求める。
- 予測モデルの誤差計算: 学習して得た予測モデルの予測結果と元のデータセットの目的変数の差異を計算(誤差計算)して、予測モデルの精度や適合度を評価する。このとき、誤差計算の方法を選択して、評価指標を基準にモデルの性能を評価する。期待する性能でないときは、予測モデルを調整し、改善する。
- 予測: モデルが適切に学習されたら、新しいデータポイントに対して予測を行うことができます。特徴量をモデルに与え、予測結果を得ることで、未知のデータを予測する。
パラメータ推定
入力変数と出力変数の関係を定量化するために用いる。
手法 | 年代 | 特徴 | メリット | デメリット | 採用基準 |
---|---|---|---|---|---|
ニュートン・ラフソン法 | 1690年代 | 対数尤度関数の二階微分を用いてパラメータを更新 | - 収束が速い - 最適パラメータを見つけやすい |
ヘッセ行列の計算がコスト高 | 小規模データ、低次元パラメータに適している |
最尤推定法 | 1770年代 | 観測データの尤度を最大化 | - 直感的 - 一般的なパラメータ推定法 |
解が求まらない場合がある | ロジスティック回帰などの確率モデルのパラメータ推定で一般的 |
フィッシャー情報行列 | 1920年代 | 情報行列を使ってパラメータの推定精度を評価 | - 推定パラメータの共分散行列を推定できる | 多いパラメータに不向き | 推定パラメータの信頼性や精度を評価したい場合 |
勾配降下法 | 1950年代 | 目的関数の勾配を利用してパラメータを更新 | - 実装が比較的簡単 - 大規模データ向け |
- 収束回数が不確定 - 局所最適解に収束しやすい |
収束速度よりも実装しやすさが重要な場合 |
正則化法 | 1960年代 | 正則化項を用いて過剰適合を抑制 | - 過学習を防ぎ、汎化性能が上がる | - 正則化パラメータの調整が必要 - 適切な設定が難しい |
パラメータ数が多く、過学習を防ぎたい場合 |
共役勾配法 | 1950年代 | 共役勾配を用いて勾配の方向を効率的に探索 | - 省メモリ - 大規模データや高次元パラメータ向け |
- 収束回数が不確定 - 解が求まらない場合がある |
大規模データ、高次元パラメータに適している |
モーメンタム法 | 1980年代 | 過去の勾配情報を利用して、収束速度を上げる | - 局所的な最小値に陥りにくい - 収束が安定 |
- ハイパーパラメータの調整が必要 - 適切な設定が難しい |
収束速度、局所最小値の回避を重視 |
L-BFGS法 | 1980年代 | 勾配情報と近似ヘッセ行列を用いてパラメータを更新 | - 省メモリ - 収束が高速 |
- 近似ヘッセ行列の更新方法の選択が難しい - 適切な設定が難しい |
ロジスティック回帰モデルでは、最尤推定法と勾配降下法が一般的らしい。
- 入力変数$x$にロジット関数を適用してロジット値を計算する。このとき、ロジット関数は多項式で、この多項式の係数$w$と切片$b$がパラメータ$\theta$になる。
- ロジット値にシグモイド関数を適用して確率値を計算する。この確率値は合格確率に対応し、テストの点数が高いほど1に近づき、低いほど0に近づく。
- 確率値と実際の合否値との誤差をコスト関数で評価する。クロスエントロピー誤差がコスト関数になり、予測確率と真の値の対数の積の和が誤差関数になる。
- 勾配降下法でパラメータを更新して、コスト関数を最小化する。勾配降下法では、コスト関数の偏微分係数(勾配)に学習率をかけたものをパラメータから引いて、コスト関数が減少する方向にパラメータを移動させる。
誤差計算
パラメータ推定の際にモデルの性能を評価するため行う。クロスエントロピー誤差を使うことが多いらしい。
種類 | 特徴 | 適用 |
---|---|---|
平均二乗誤差 | 実測値と予測値の差の平均の二乗を計算 回帰モデルの予測精度を測る |
数値予測や連続値の予測(回帰)に用いる |
対数尤度 | パラメータ付きの確率モデルの尤度関数を対数変換して計算 パラメータを与えたときの観測値の尤度を評価 |
確率モデルや分布推定に用いる |
クロスエントロピー誤差 | 確率分布の真値と予測値の間の情報理論的な距離を計算 分類モデルの性能を測定する |
確率予測やクラス分類に用いる |
予測モデルの評価指標
分類モデルの性能を総合的に評価する方法で、問題の性質や目標に応じて適切な評価指標を選ぶ。
評価指標 | 計算対象 | 評価対象 |
---|---|---|
正解率 (accuracy) | - 正しく予測したサンプルの割合 - データの偏りに影響されやすい - 正解率が高くても適合率や再現率が低い場合がある |
全体的な予測の正確さ |
適合率 (precision) | - 陽性と予測されたサンプルのうち、 実際に陽性であるサンプルの割合 - 陽性予測の信頼性やコスト効率を高める |
陽性に対する予測精度 |
再現率 (recall) | - 実際に陽性であるサンプルのうち、 正しく陽性と予測されたサンプルの割合 - 陽性事象の漏れやリスク回避を重視する |
陽性に対する予測の網羅性 |
F1スコア (F1 score) | - 適合率と再現率の調和平均 - 適合率と再現率のトレードオフに対応できる |
適合率と再現率のバランスを考慮した総合的な性能 |