基本的な考え方
(Press ?
for help, n
and p
for next and previous slide)
村田 昇
判別分析 (discriminant analysis) の目的
個体の特徴量からその個体の属する クラス を予測する関係式を構成する方法
\(X=\boldsymbol{x}\) の下で \(Y=k\) となる 条件付確率 を計算
\begin{equation} p_{k}(\boldsymbol{x})=P(Y=k|X=\boldsymbol{x}) \end{equation}
観測データ : \(n\) 個の \((Y,X_{1},\dots,X_{q})\) の組
\begin{equation} \{(y_{i},x_{i1},\dots,x_{iq})\}_{i=1}^n \end{equation}
事象 \(X=\boldsymbol{x}\) が起きたという条件の下で 事象 \(Y=k\) が起きる条件付確率
\begin{equation} p_{k}(\boldsymbol{x}) = P(Y=k|X=\boldsymbol{x}) = \frac{P(Y=k,X=\boldsymbol{x})}{P(X=\boldsymbol{x})} \end{equation}
\(Y=k\) の下での \(X\) の条件付き確率質量関数
\begin{equation} f_{k}(\boldsymbol{x}) = P(X=\boldsymbol{x}|Y=k)=\frac{P(X=\boldsymbol{x},Y=k)}{P(Y=k)} \end{equation}
のモデル化を通じて \(p_{k}(\boldsymbol{x})\) をモデル化する
Bayesの定理を用いればよい
事象で書くと以下のようになる
\begin{equation} P(A|B) =\frac{P(A)P(B|A)}{P(B)} \end{equation}離散変数の場合は
\begin{equation} P(Y=k|X=x) =\frac{P(Y=k)P(X=x|Y=k)}{P(X=x)} \end{equation}と書くことができる
\(f_{k}(\boldsymbol{x})\) から \(p_{k}(\boldsymbol{x})\) を得る数学的原理
原因 \(X=\boldsymbol{x}\) から結果 \(Y=k\) が生じる確率 を 結果 \(Y=k\) が生じる原因が \(X=\boldsymbol{x}\) である確率 から計算する方法
Bayes の公式 (Bayes’ formula)
\begin{equation} p_{k}(\boldsymbol{x}) = P(Y=k|X=\boldsymbol{x}) = \frac{f_{k}(\boldsymbol{x})P(Y=k)}{\sum_{l=1}^{K}f_l(\boldsymbol{x})P(Y=l)} \end{equation}
定義より
\begin{equation} f_{k}(\boldsymbol{x}) = P(X=\boldsymbol{x}|Y=k) = \frac{P(X=\boldsymbol{x},Y=k)}{P(Y=k)} \end{equation}
求める条件付確率
\begin{equation} p_{k}(\boldsymbol{x}) = P(Y=k|X=\boldsymbol{x}) = \frac{f_{k}(\boldsymbol{x})P(Y=k)}{P(X=\boldsymbol{x})} \end{equation}
分母の展開
\begin{align} P(X=\boldsymbol{x}) &= \sum_{l=1}^{K}P(X=\boldsymbol{x},Y=l)\\ &= \sum_{l=1}^{K}f_l(\boldsymbol{x})P(Y=l) \end{align}
Bayes の公式による書き換え
\begin{equation} p_{k}(\boldsymbol{x}) = \frac{f_{k}(\boldsymbol{x})\pi_{k}}{\sum_{l=1}^{K}f_l(\boldsymbol{x})\pi_l} = \frac{f_{k}(\boldsymbol{x})}{\sum_{l=1}^{K}f_l(\boldsymbol{x})\pi_l} \cdot\pi_{k} \end{equation}
事前に特別な情報がない場合
データから自然に決まる確率
\begin{equation} \pi_{k} = \frac{\text{\(Y=k\)のサンプル数}}{\text{全サンプル数}} \end{equation}
事前に情報がある場合
食事・運動・飲酒・ストレスなどの生活の特徴から生活習慣病か否かを判別
- 健常者の食事・運動・飲酒・ストレスなどの特徴量を収集
- 罹患者の食事・運動・飲酒・ストレスなどの特徴量を収集
- 事前確率は 別の調査の日本人の罹患率 を利用
判別関数 : \(\delta_{k}(\boldsymbol{x})\) (\(k=1,\dots,K\))
\begin{equation} p_{k}(\boldsymbol{x}) < p_l(\boldsymbol{x}) \Leftrightarrow \delta_{k}(\boldsymbol{x}) < \delta_l(\boldsymbol{x}) \end{equation}
共分散行列 \(\Sigma\) : すべてのクラスで共通
\begin{equation} f_{k}(\boldsymbol{x}) = \frac{1}{(2\pi)^{q/2}\sqrt{\det\Sigma}} \exp\left(-\frac{1}{2}(\boldsymbol{x}-\boldsymbol{\mu}_{k})^{\mathsf{T}} \Sigma^{-1}(\boldsymbol{x}-\boldsymbol{\mu}_{k})\right) \end{equation}
線形判別関数 : \(\boldsymbol{x}\) の1次式
\begin{equation} \delta_{k}(\boldsymbol{x}) = \boldsymbol{x}^{\mathsf{T}}\Sigma^{-1}\boldsymbol{\mu}_{k} -\frac{1}{2}\boldsymbol{\mu}_{k}^{\mathsf{T}}\Sigma^{-1}\boldsymbol{\mu}_{k} +\log\pi_{k} \end{equation}
平均の推定 (クラスごとに行う)
\begin{equation} \hat{\boldsymbol{\mu}}_{k} = \frac{1}{n_{k}}\sum_{i:y_{i}=k}\boldsymbol{x}_{i} \end{equation}
分散の推定 (まとめて行う)
\begin{equation} \hat{\Sigma} = \frac{1}{n{-}K}\sum_{k=1}^{K}\sum_{i:y_{i}=k} (\boldsymbol{x}_{i}-\hat{\boldsymbol{\mu}}_{k}) (\boldsymbol{x}_{i}-\hat{\boldsymbol{\mu}}_{k})^{\mathsf{T}} \end{equation}
\(X\)の条件付確率 \(f_{k}(\boldsymbol{x})\) に関する仮定
のもとで 事後確率と線形判別関数の同値性
\begin{equation} p_{k}(\boldsymbol{x}) < p_l(\boldsymbol{x}) \Leftrightarrow \delta_{k}(\boldsymbol{x}) < \delta_l(\boldsymbol{x}) \end{equation}
を示しなさい
同値関係を順に確認すればよい
\begin{align} &p_{k}(\boldsymbol{x}) < p_l(\boldsymbol{x})\\ &\Leftrightarrow f_{k}(\boldsymbol{x})\pi_{k} < f_l(\boldsymbol{x})\pi_l\\ &\qquad\text{(分母は共通)}\\ &\Leftrightarrow \log f_{k}(\boldsymbol{x})+\log\pi_{k} < \log f_l(\boldsymbol{x})+\log\pi_l\\ &\Leftrightarrow -\frac{1}{2}(\boldsymbol{x}-\boldsymbol{\mu}_{k})^{\mathsf{T}} \Sigma^{-1}(\boldsymbol{x}-\boldsymbol{\mu}_{k})+\log\pi_{k}\\ &\phantom{\Leftrightarrow}\quad < -\frac{1}{2}(\boldsymbol{x}-\boldsymbol{\mu}_l)^{\mathsf{T}} \Sigma^{-1}(\boldsymbol{x}-\boldsymbol{\mu}_l)+\log\pi_l\\ &\qquad\text{(2次の項は右辺と左辺で共通)}\\ &\Leftrightarrow \delta_{k}(\boldsymbol{x}) < \delta_l(\boldsymbol{x}) \end{align}
共分散行列 \(\Sigma_{k}\) : クラスごとに異なる
\begin{equation} f_{k}(\boldsymbol{x}) = \frac{1}{(2\pi)^{q/2}\sqrt{\det\Sigma_{k}}} \exp\left(-\frac{1}{2}(\boldsymbol{x}-\boldsymbol{\mu}_{k})^{\mathsf{T}} \Sigma_{k}^{-1}(\boldsymbol{x}-\boldsymbol{\mu}_{k})\right) \end{equation}
2次判別関数 : \(\boldsymbol{x}\) の2次式
\begin{equation} \delta_{k}(\boldsymbol{x}) = -\frac{1}{2}\det\Sigma_{k} -\frac{1}{2}(\boldsymbol{x}-\boldsymbol{\mu}_{k})^{\mathsf{T}} \Sigma_{k}^{-1}(\boldsymbol{x}-\boldsymbol{\mu}_{k}) +\log\pi_{k} \end{equation}
平均の推定 (クラスごとに行う)
\begin{equation} \hat{\boldsymbol{\mu}}_{k} = \frac{1}{n_{k}}\sum_{i:y_{i}=k}\boldsymbol{x}_{i} \end{equation}
分散の推定 (クラスごとに行う)
\begin{equation} \hat{\Sigma}_{k} = \frac{1}{n_{k}-1}\sum_{i:y_{i}=k} (\boldsymbol{x}_{i}-\hat{\boldsymbol{\mu}}_{k}) (\boldsymbol{x}_{i}-\hat{\boldsymbol{\mu}}_{k})^{\mathsf{T}} \end{equation}
\(X\)の条件付確率 \(f_{k}(\boldsymbol{x})\) に関する仮定
のもとで 事後確率と2次判別関数の同値性
\begin{equation} p_{k}(\boldsymbol{x}) < p_l(\boldsymbol{x}) \Leftrightarrow \delta_{k}(\boldsymbol{x}) < \delta_l(\boldsymbol{x}) \end{equation}
を示しなさい
同値関係を順に確認すればよい
\begin{align} &p_{k}(\boldsymbol{x}) < p_l(\boldsymbol{x})\\ &\Leftrightarrow f_{k}(\boldsymbol{x})\pi_{k} < f_l(\boldsymbol{x})\pi_l\\ &\Leftrightarrow \log f_{k}(\boldsymbol{x})+\log\pi_{k} < \log f_l(\boldsymbol{x})+\log\pi_l\\ &\Leftrightarrow -\frac{1}{2}\det\Sigma_{k} -\frac{1}{2}(\boldsymbol{x}-\boldsymbol{\mu}_{k})^{\mathsf{T}} \Sigma_{k}^{-1}(\boldsymbol{x}-\boldsymbol{\mu}_{k}) +\log\pi_{k}\\ &\phantom{\Leftrightarrow}\quad < -\frac{1}{2}\det\Sigma_l -\frac{1}{2}(\boldsymbol{x}-\boldsymbol{\mu}_l)^{\mathsf{T}} \Sigma_l^{-1}(\boldsymbol{x}-\boldsymbol{\mu}_l) +\log\pi_l\\ &\Leftrightarrow \delta_{k}(\boldsymbol{x}) < \delta_l(\boldsymbol{x}) \end{align}
変動の関係
\begin{equation} \text{(全変動)} = \text{(群内変動)} + \text{(群間変動)} \end{equation}\begin{equation} A = W + B \end{equation}
説明変数の線形結合で新たな特徴量を構成する
\begin{equation} Z=\boldsymbol{\alpha}^{\mathsf{T}} X \end{equation}
このとき\(Z\)の群内変動と群間変動を求めなさい
定義どおりに計算する
\begin{align} A &=\sum_{i=1}^{n}(\boldsymbol{x}_{i}-\boldsymbol{\mu}) (\boldsymbol{x}_{i}-\boldsymbol{\mu})^{\mathsf{T}}\\ &= \sum_{i=1}^{n}(\boldsymbol{x}_{i}-\boldsymbol{\mu}_{y_{i}}+\boldsymbol{\mu}_{y_{i}}-\boldsymbol{\mu}) (\boldsymbol{x}_{i}-\boldsymbol{\mu}_{y_{i}}+\boldsymbol{\mu}_{y_{i}}-\boldsymbol{\mu})^{\mathsf{T}}\\ &= \sum_{i=1}^{n}(\boldsymbol{x}_{i}-\boldsymbol{\mu}_{y_{i}}) (\boldsymbol{x}_{i}-\boldsymbol{\mu}_{y_{i}})^{\mathsf{T}} + \sum_{i=1}^{n}(\boldsymbol{\mu}_{y_{i}}-\boldsymbol{\mu}) (\boldsymbol{\mu}_{y_{i}}-\boldsymbol{\mu})^{\mathsf{T}}\\ &\quad +\sum_{i=1}^{n}(\boldsymbol{x}_{i}-\boldsymbol{\mu}_{y_{i}}) (\boldsymbol{\mu}_{y_{i}}-\boldsymbol{\mu})^{\mathsf{T}} +\sum_{i=1}^{n}(\boldsymbol{\mu}_{y_{i}}-\boldsymbol{\mu}) (\boldsymbol{x}_{i}-\boldsymbol{\mu}_{y_{i}})^{\mathsf{T}} \end{align}
添字の扱いに注意する
\begin{align} &= \sum_{i=1}^{n}(\boldsymbol{x}_{i}-\boldsymbol{\mu}_{y_{i}}) (\boldsymbol{x}_{i}-\boldsymbol{\mu}_{y_{i}})^{\mathsf{T}} + \sum_{k=1}^{K}\sum_{i:y_{i}=k} (\boldsymbol{\mu}_{k}-\boldsymbol{\mu}) (\boldsymbol{\mu}_{k}-\boldsymbol{\mu})^{\mathsf{T}}\\ &\quad +\sum_{k=1}^{K}\sum_{i:y_{i}=k} (\boldsymbol{x}_{i}-\boldsymbol{\mu}_{k}) (\boldsymbol{\mu}_{k}-\boldsymbol{\mu})^{\mathsf{T}} +\sum_{k=1}^{K}\sum_{i:y_{i}=k} (\boldsymbol{\mu}_{k}-\boldsymbol{\mu}) (\boldsymbol{x}_{i}-\boldsymbol{\mu}_{k})^{\mathsf{T}}\\ &= \sum_{i=1}^{n}(\boldsymbol{x}_{i}-\boldsymbol{\mu}_{y_{i}}) (\boldsymbol{x}_{i}-\boldsymbol{\mu}_{y_{i}})^{\mathsf{T}} + \sum_{k=1}^{K}n_{k}(\boldsymbol{\mu}_{k}-\boldsymbol{\mu}) (\boldsymbol{\mu}_{k}-\boldsymbol{\mu})^{\mathsf{T}}\\ &= W+B \end{align}
定義どおりに計算する
\begin{align} \sum_{i=1}^{n} (z_{i}-\mu_{y_{i}})^{2} &= \sum_{i=1}^{n} (z_{i}-\mu_{y_{i}})(z_{i}-\mu_{y_{i}})\\ &= \sum_{i=1}^{n}(\boldsymbol{\alpha}^{\mathsf{T}}\boldsymbol{x}_{i} -\boldsymbol{\alpha}^{\mathsf{T}}\boldsymbol{\mu}_{y_{i}}) (\boldsymbol{\alpha}^{\mathsf{T}}\boldsymbol{x}_{i} -\boldsymbol{\alpha}^{\mathsf{T}}\boldsymbol{\mu}_{y_{i}})^{\mathsf{T}}\\ &= \boldsymbol{\alpha}^{\mathsf{T}} \sum_{i=1}^{n}(\boldsymbol{x}_{i}-\boldsymbol{\mu}_{y_{i}}) (\boldsymbol{x}_{i}-\boldsymbol{\mu}_{y_{i}})^{\mathsf{T}} \boldsymbol{\alpha} = \boldsymbol{\alpha}^{\mathsf{T}} W\boldsymbol{\alpha}\\ \sum_{k=1}^{K}n_{k}(\mu_{k}-\mu)^{2} &= \boldsymbol{\alpha}^{\mathsf{T}} B\boldsymbol{\alpha} \end{align}
Fisherの基準
\begin{equation} \text{maximize}\quad \boldsymbol{\alpha}^{\mathsf{T}} B\boldsymbol{\alpha} \quad\text{s.t.}\quad \boldsymbol{\alpha}^{\mathsf{T}} W\boldsymbol{\alpha}=\text{const.} \end{equation}
\(K=2\) の場合 : 最大固有値を用いる (線形判別と一致)
\begin{equation} \boldsymbol{\alpha}\propto W^{-1}(\boldsymbol{\mu}_{1}-\boldsymbol{\mu}_2) =\Sigma^{-1}(\boldsymbol{\mu}_{1}-\boldsymbol{\mu}_2) \end{equation}
9,10月のデータの散布図
Figure 1: 散布図
線形判別 (2値)
Figure 2: 線形判別 (判別関数の値)
線形判別 (2値)
Figure 3: 線形判別 (判別境界)
2次判別 (2値)
Figure 4: 2次判別
Fisherの線形判別 (多値)
Figure 5: 多値判別