Pattern Recognition

  1. 1. Pattern recognition紹介
    1. 1.1. 機械学習・統計的学習とは
    2. 1.2. 特徴抽出
    3. 1.3. 特徴ベクトル
    4. 1.4. 特徴の型
  2. 2. 識別規則と学習法
    1. 2.1. 識別規則の構成法
      1. 2.1.1. 教師付き学習(Supervised learning)
      2. 2.1.2. 教師なし学習(unsupervised learning)
    2. 2.2. 汎化能力
      1. 2.2.1. 学習データとテストデータの作り方
      2. 2.2.2. ホールドアウト法(Holdout法)
        1. 2.2.2.1. 非線形回帰
      3. 2.2.3. 交差確認法(Cross Validation:CV)
        1. 2.2.3.1. K-分割交差検証法(K-fold cross validation)
      4. 2.2.4. 一つ抜き法(LOOCV)
      5. 2.2.5. ブートストラップ法(bootstrap)
    3. 2.3. 汎化能力の評価法とモデル選択
      1. 2.3.1. バイアス・分散トレードオフ
  3. 3. ベイズ識別規則
    1. 3.1. ベイズの定理
      1. 3.1.1. 事後確率
      2. 3.1.2. 事前確率
      3. 3.1.3. 尤度
      4. 3.1.4. 周辺確率
    2. 3.2. 例題1
      1. 3.2.1. クラス条件付き確率を求める
      2. 3.2.2. 同時確率を求める
      3. 3.2.3. 周辺分布を求める
      4. 3.2.4. 事後確率を求める
    3. 3.3. 尤度比(事前確率の比率)
    4. 3.4. 誤り率最小化
    5. 3.5. 最小損失基準
      1. 3.5.1. 最小損失基準に基づく識別の例
    6. 3.6. 期待損失最小化
    7. 3.7. ROC曲線
      1. 3.7.1. 混同行列(Confusion Matrix)
      2. 3.7.2. ROCによる性能評価
      3. 3.7.3. 動作点の選択
    8. 3.8. 課題3.1
    9. 3.9. 課題3.2
  4. 4. 確率モデルと識別関数
    1. 4.1. 観測データの線形変換
      1. 4.1.1. 平均ベクトル
      2. 4.1.2. 共分散行列
      3. 4.1.3. 標本平均ベクトルと標本共分散行列
      4. 4.1.4. 観測データの標準化
      5. 4.1.5. 観測データの無相関化
      6. 4.1.6. 観測データの白色化
    2. 4.2. 確率モデル
    3. 4.3. d次元正規分布関数
    4. 4.4. 正規分布から導かれる識別関数
    5. 4.5. 確率モデルパラメータの最尤推定
    6. 4.6. 正規分布の最尤推定
  5. 5. k最近傍法(KNN)
    1. 5.1. 最近傍法とボロノイ境界
    2. 5.2. ボロノイ図
    3. 5.3. 鋳型の数と識別性能
    4. 5.4. kNN法
      1. 5.4.1. 最適な最近傍数kを求める
    5. 5.5. 漸近仮定とkNN誤り率の期待値
    6. 5.6. kNN法の改善
      1. 5.6.1. 誤り削除型KNN法(Edited kNN)
      2. 5.6.2. 圧縮型kNN(Condensed kNN)
      3. 5.6.3. 分枝限定法
      4. 5.6.4. 近似最近傍探索
  6. 6. 線形識別関数
    1. 6.1. 超平面の方程式
    2. 6.2. 最小2乗誤差基準によるパラメータの推定
      1. 6.2.1. 正規方程式
    3. 6.3. 多クラス問題への拡張
      1. 6.3.1. 一対多
      2. 6.3.2. 一対一
      3. 6.3.3. 最大識別関数法
    4. 6.4. 線形判別分析
      1. 6.4.1. フィッシャーの線形判別関数
      2. 6.4.2. 判別分析法
      3. 6.4.3. 判別分析2値化法
      4. 6.4.4. 多クラス問題への拡張
      5. 6.4.5. あやめデータの判別空間の構成
    5. 6.5. 課題6.1
    6. 6.6. 課題6.2
    7. 6.7. 課題6.3
  7. 7. ロジスティック回帰
    1. 7.1. ロジスティック回帰モデル
      1. 7.1.1. オッズ比について
    2. 7.2. パラメータの最尤推定
    3. 7.3. 多クラス問題への拡張と非線形変換
    4. 7.4. 非線形基底関数による変換とロジスティック回帰
    5. 7.5. ピマインディアンデータのロジスティック回帰
  8. 8. パーセプトロン型学習規則(Perceptron)
    1. 8.1. パーセプトロン
      1. 8.1.1. 学習の難しさの尺度
      2. 8.1.2. マージンの大きさ
      3. 8.1.3. パーセプトロンの収束定理
    2. 8.2. 誤差伝搬法(BP)
      1. 8.2.1. 多層パーセプトロン
      2. 8.2.2. 誤差逆伝搬法の学習規則
      3. 8.2.3. 実行例-手書き数字の学習
    3. 8.3. 誤差逆伝搬法の学習特性
      1. 8.3.1. 初期値依存性
      2. 8.3.2. 隠れ素子の数
        1. 8.3.2.1. 実行例-初期値依存性と隠れ素子の数による誤り率の変化
      3. 8.3.3. 過学習と正則化
        1. 8.3.3.1. 実行例-あやめデータにおける正則化項の効果
      4. 8.3.4. 隠れ層の数と識別能力
      5. 8.3.5. 学習回路の尤度
  9. 9. サポートベクトルマシン(SVM)
    1. 9.1. サポートベクトルマシンの導出
      1. 9.1.1. 最適識別超平面
      2. 9.1.2. KKT条件
        1. 9.1.2.1. サポートベクトル
    2. 9.2. 線形分離可能でない場合への拡張
      1. 9.2.1. KKT条件
      2. 9.2.2. ソフトマージン最大化
    3. 9.3. 非線形特徴写像
      1. 9.3.1. 多項式カーネル
      2. 9.3.2. 動径基底関数カーネル
      3. 9.3.3. ピマインディアンデータのSVMによる識別
    4. 9.4. ν-サポートベクトルマシン
      1. 9.4.1. ピマインディアンデータへのν-SVMの適用
    5. 9.5. 1クラスサポートベクトルマシン
      1. 9.5.1. ピマインディアンの外れ値検出
  10. 10. 部分空間法
    1. 10.1. 部分空間
    2. 10.2. 主成分分析(Principal Component Analysis PCA)
      1. 10.2.1. 画像データの主成分分析
    3. 10.3. 特異値分解
    4. 10.4. 部分空間法
      1. 10.4.1. CLAFIC法
      2. 10.4.2. 手書き数字の部分空間法による認識
    5. 10.5. カーネル主成分分析
    6. 10.6. カーネル部分空間法
  11. 11. クラスタリング(Cluster analysis)
    1. 11.1. 類似度と非類似度
      1. 11.1.1. 距離の公理
      2. 11.1.2. ミンコフスキー距離(Minkowski distance)
    2. 11.2. 非階層型クラスタリング(K-平均法)
      1. 11.2.1. アルゴリズムK-平均法
    3. 11.3. 階層型クラスタリング(融合法)
      1. 11.3.1. アルゴリズム融合法
      2. 11.3.2. データの連結方法
      3. 11.3.3. 階層的クラスタリングの分析例
    4. 11.4. 確率モデルによるクラスタリング
      1. 11.4.1. 混合分布モデル
      2. 11.4.2. 識別可能性
      3. 11.4.3. 色彩強度の混合モデルによる推定
      4. 11.4.4. 完全データの対数尤度
      5. 11.4.5. EMアルゴリズム(Expectation-Maximum)
      6. 11.4.6. 2コンポーネントの正規混合モデルの推定
  12. 12. 識別器の組み合わせによる性能評価
    1. 12.1. ノーフリーランチ定理
    2. 12.2. 決定木
      1. 12.2.1. 決定木と線形モデル
      2. 12.2.2. 心臓病データ
      3. 12.2.3. トップダウン的な手法
      4. 12.2.4. 決定木に関する諸定義
      5. 12.2.5. ノード分割規則
      6. 12.2.6. 木の剪定
    3. 12.3. バギング(bagging)
    4. 12.4. アダブースト(AdaBoost)
    5. 12.5. ランダムフォレスト(random forests)
      1. 12.5.1. ランダムフォレストによるデータ解析
      2. 12.5.2. あやめデータによる性能評価
  13. 13. 总结-机器学习与数据挖掘
    1. 13.1. 问题
    2. 13.2. 监督式学习(分类・回归)
    3. 13.3. 聚类
    4. 13.4. 降维
    5. 13.5. 结构预测
    6. 13.6. 异常检测
    7. 13.7. 神经网络
    8. 13.8. 强化学习
    9. 13.9. 理论
  14. 14. 参考文献

CS专业课学习笔记

Pattern recognition紹介

パターン認識は自然情報処理のひとつ。画像・音声などの雑多な情報を含むデータの中から、一定の規則や意味を持つ対象を選別して取り出す処理である

パターン認識が扱う問題

  • 前立腺がんのリスク因子を特定する
  • 録音された音声を分類する
  • 個人属性情報(demographics)や、食習慣、検診記録から心臓発作になるかどうか予測する
  • スパムメールを検出する
  • 手書きの郵便番号を識別する
  • 組織サンプルの遺伝子情報を使って癌のクラスわけを行う
  • 衛星写真から、土地の利用目的分類を行う

機械学習・統計的学習とは

機械学習とは、人間が自然に行っている学習能力と同様に機能をコンピュータで実現しようとする技術や手法のこと。

統計的学習はモデリングに重点を置くのに対して、機械学習は、最適化理論からの学習のアプローチである場合は多い。

元々は、人工知能分野の一部として研究されていたが、機械学習は統計学と密接な関わりを持つようになり「統計的学習」と言われるようになった

応用分野:

  • パターン認識
  • データマイニング
  • 自然言語処理
  • 音声処理、画像処理
  • バイオインフォマティクス(Bioinformatics)
  • 脳科学
  • 農業
  • 経済・金融

パターン認識はICT(information and Computer Technology)の要素技術

特徴抽出

入力データから抽出されるたくさんの特徴をまとめること

例: 硬貨の識別問題なら、硬貨の重さ、サイズ、穴の有無など

特徴ベクトル

特徴量をベクトルの形に並べたもの

このような特徴量のベクトルを入力として、予め用意しておいた「型・類型」に当てはめること

例: 硬貨の識別問題なら、1, 5, 10, 50, 100, 500円,(それ以外)のどれかの「パターン(型)」に対応させる

この識別(分類分け)するためにの規則のことを識別規則という

識別規則を作るためには、入力データとそのクラスを対にした、たくさんのデータ(学習データ)を学習する必要がある

学習データを用いて設計したシステムが、未知の入力データに対しても正しいクラスを識別できるかが問題で、そのような能力を汎化能力という。汎化性能の高い識別器を作ることが目的

特徴の型

抽出された特徴量は、定性的特徴(非数値データ)と定量的特徴(数値データ)に大別される

  • 非数値データはさらに、名義尺度順序尺度に分類される
    • 性別と血液型は順序関係がないから、名義尺度である
    • 一方、S, A, Bの成績評価や癌の進行を表すステージは順序関係があるので、順序尺度である
  • 数値データもさらに、比例尺度間隔尺度に分類される
    • 比例尺度は長さや重さなどゼロを基準に倍数の意味がある尺度である
    • 感覚尺度はテストの点や気温など、数値の間隔が意味を持つ尺度である

定性的な特徴を表現するために、符号を用いる。例えば、二つのクラスラベル([勝・敗])([合格・不合格])を表すのに、「1と-1」や「-1と1」で符号化する

パターン認識で扱う、型や類型などのクラスは定性的特徴である

識別規則と学習法

代表的な識別規則の構成法

  • 事後確率による方法: ベイズの最大事後確率法(線形判別分析)
  • 距離による方法: 最近傍法
  • 関数値による方法: パーセプトロン型学習回路(ニューラルネットワーク、ロジスティック回帰)、サポートベクターマシン
  • 決定木による方法

識別規則の構成法

入力データx\mathbf{x}からクラスCiω={C1,,Ck}C_i \in \omega = \lbrace C_1, \cdots, C_k \rbraceへの写像を識別規則という

代表的な識別規則には、事後確率による方法、距離による方法、関数値による方法、決定木による方法がある

  • 事後確率による方法: 特徴ベクトルの空間に確率分布を仮定し、事後確率が最大のクラスに分類する
    • ベイズ識別規則が代表例で、線形判別分析もこのクラスに該当する
  • 距離による方法: 入力ベクトルx\mathbf{x}の各クラスの代表ベクトルとの距離を最小にするクラスに分類する
    • 最近傍法が代表例
  • 関数値による方法: 関数の正負、あるいは最大値(他クラスの場合)でクラスを決める
    • パーセプトロン型学習回路(ニューラルネットワーク、ロジスティック回帰)、サポートベクターマシンが代表例
  • 決定木による方法: 識別規則の真偽に応じて次の識別規則を順序適用し、決定木でクラスを決める

教師付き学習(Supervised learning)

識別規則が関数値による方法としよう: y=f(x)\mathbf{y} = f(\mathbf{x})

2クラス問題の線形識別関数の場合、識別規則は

y=f(x;w)=w1x1++wdxd=wTx\begin{aligned} \mathbf{y} = f(\mathbf{x};\mathbf{w}) = w_1x_1 + \cdots + w_dx_d = \mathbf{w}^T\mathbf{x} \end{aligned}

ここで、x\mathbf{x}は入力ベクトル(特徴量のベクトル)、w\mathbf{w}はパラメータで、識別クラスはyyの正負によって決まるとする。

学習の目的は、パラメータw\mathbf{w}を調整すること

学習データは入力データ(特徴ベクトル)x\mathbf{x}とクラスデータyy(教師データ)のペア(x,y)(\mathbf{x}, y)である

2クラスの識別問題を正負の値で識別する場合, クラスデータをt{1,1}t \in \lbrace -1, 1 \rbraceで表すとする.

他クラスの場合は, ダミー変数表現を用いてt=(0,1,0,0,0,0,0,0,0,0)T\mathbf{t} = (0, 1, 0, 0, 0, 0, 0, 0, 0, 0)^Tのように表すと, この表現は, 10クラスある中の2番目のクラスに属していることを表している.

学習データがNN個あるとき, 入力データと教師データの対を次のように表す.

(xi,ti),i=1,,N(\mathbf{x}_i, \mathbf{t}_i), \quad i = 1, \cdots, N

教師なし学習(unsupervised learning)

入力データのクラスを自動的に生成する場合がある。クラスタリング(Cluster analysis)など。この時、クラスデータyyは存在しないので、教師なし学習という。自己組織型学習ともいう

一部のデータに教師を付き、他は教師なしで学習を行うことを半教師付き学習(形質導入学習)という

汎化能力

学習とは、学習データに対する識別関数の出力値と教師データとの誤差が最小になるように、識別関数のパラメータを調整することである。

しかし、学習で得られた識別関数が学習データに含まれていない未知データに対して上手く働くという保証はない。

そこで、学習データから取り除いておいたテストデータを用いて性能評価を行い、未知データに対する動作をテストデータに対する誤り率という形で予測することが行われている。

未知のデータに対する識別能力を汎化能力という

未知のデータに対する識別誤差を汎化誤差という

学習データとテストデータの作り方

  • 手元にあるデータを分割して学習データセット: DL\mathcal{D}_Lテストデータセット: DT\mathcal{D}_Tを作る
  • 特徴量ベクトルdd次元とし, その確率分布pL,pTp_L, p_Tと表す
  • 学習データセットDL\mathcal{D}_Lを使って, DT\mathcal{D}_Tをテストしたときの誤り率ϵ(pL,pT)\epsilon(p_L, p_T)と表す.
  • 母集団の特徴ベクトルの確率分布をppとし, 真の分布とする.
  • pLp_LpTp_Tはランダムなサンプルから推定された確率分布なので, 真の分布ppの各特徴と同じにならない. このずれを偏り(バイアス))という
  • 真の誤り率ϵ(p,p)\epsilon(p,p)は真の分布ppに従う学習データを用いて識別規則を作成し, 真の分布ppに従うテストデータを用いてテストした場合の誤り率を表す
  • 再代入誤り率とは, pLp_Lからサンプリングしたデータを用いて識別規則を作成し, 同じデータでテストしたときの誤り率である

手元にあるデータを学習用とテスト用に分割する代表的な方法には、次のようなものがある。

ホールドアウト法(Holdout法)

手元のデータを2分割し, 一方を学習データ(pL)(p_L), もう一方をテスト(pT)(p_T)のために取り置いて誤り率を推定するために使用する

  • ホールドアウト誤り率といい, ϵ(pL,pT)\epsilon(p_L,p_T)で表す.

真の誤り率と再代入誤り率, ホールドアウト誤り率の関係は次の通り

EDL{ϵ(pL,pL)}ϵ(p,p)EDT{ϵ(pL,pL)}\color{blue}{E_{\mathcal{D}_L} \lbrace \epsilon(p_L, p_L) \rbrace \leq \epsilon(p, p) \leq E_{\mathcal{D}_T } \lbrace \epsilon(p_L, p_L) \rbrace}

手元のデータが大量にある場合を除いて, 良い性能評価を与えない欠点がある

非線形回帰

次の関数からデータが生成されているとする

f(x)=0.5+0.4×sin(2πx)+ϵ=h(x)+ϵf(x) = 0.5 + 0.4 \times \sin(2 \pi x) + \epsilon = h(x) + \epsilon

関数h(x)h(x)を次のpp次多項式で近似する

y(x;a)=a0+a1x++apxp,a=(a0,,ap)Ty(x;\mathbf{a}) = a_0 + a_1x + \cdots + a_px^p, \quad \mathbf{a} = (a_0, \cdots, a_p)^T

近似の良さは平均二乗誤差(MSE; mean square error)で評価する

MSE=(y(x;D)h(x))2p(x)dx=E{(y(x;D)h(x))2}\color{blue}{MSE = \int (y(x;\mathcal{D}) - h(x))^2 p(x)dx = E \lbrace (y(x;\mathcal{D}) - h(x))^2 \rbrace}

交差確認法(Cross Validation:CV)

手元の各クラスのデータをmm個のグループに分割し, m1m - 1個のグループのデータを使って識別器を学習し, 残りの一つのグループでテストを行う.

これをmm回繰り返し, それらの誤り率の平均を性能予測値とする.

ii番目のグループを除いて学習し, ii番目のグループでテストしたときの誤り率をϵi\epsilon_{-i}とすると, 識別規則の誤り率は

ϵ=1mi=1mϵi\epsilon = \frac{1}{m} \sum^m_{i=1} \epsilon_{-i}

となる.

K-分割交差検証法(K-fold cross validation)

データを均等にKK分割する(K=5)(K = 5)

一つ抜き法(LOOCV)

交差検証法において, データの数とグループの数を等しくした場合. ジャックナイフ法ともいう

一つ抜き交差確認法 (LOOCV), 学習データ(青いところ)を使ってテストデータ(ベージュ)を予測する. 全部のパターンで計測した予測誤差の平均が CV.

ブートストラップ法(bootstrap)

再代入誤り率のバイアス補正に使用する. NN個のデータで学習したデータで再代入誤り率を計算し,ϵ(N,N)\epsilon(N, N)と表す

NN個のデータからNN回復元抽出して, 学習データを作成し, 再代入誤り率を計算し, ϵ(N,N)\epsilon(N^*, N^*)とする

バイアスは, 元のデータ集合 N をテストデータとして得られる誤識別率ϵ(N,N)\epsilon(N^*, N)との差

bias=ϵ(N,N)ϵ(N,N)bias = \epsilon(N^*, N^*) - \epsilon(N^*, N)

で推定する. ブートストラップサンプルをいくつも作って, 誤識別率の平均値を計算しそれをbias\overline{bias}とすれば, 誤識別率の予測値ϵ\epsilon

ϵ=ϵ(N,N)bias\epsilon = \epsilon(N, N) - \overline{bias}

で与えられる

汎化能力の評価法とモデル選択

学習データによってパラメータ調整を行い、誤り率を評価しても、目標以上の精度が出ない場合は識別関数を変える必要がある。誤り率が最も小さくなるパラメータを選択する方法をモデル選択という

バイアス・分散トレードオフ

近似した関数は目標関数h(x)h(x)との誤差の項(バイアス)と訓練データから生まれる誤差の項(分散)に整理できる

  • バイアス
    • h(x)h(x)との誤差
    • モデル精度の悪さ
  • 分散
    • 訓練データから生まれる誤差
    • モデル作成の不安定さ(再現性の悪さ)
  • モデルが単純
    • 性能は良くないが、教師データに対して安定
    • 高バイアス・低バリアンス
  • モデルが複雑
    • 性能は良いが、教師データに対して不安定(過学習など)
    • 低バイアス・高バリアンス
  • 過学習
    • 訓練誤差は小さくなっているが汎化誤差(テスト誤差)が大きく乖離した状態を過適合/過剰適合/過学習と呼ぶ

ベイズ識別規則

医者の診断では, いろんな検査項目をもとに, 健康かそうでないかを判断する. 検査項目の値が高くても健康な人もいるし, 正常の範囲内でも健康でないかもしれない. このように, 検査項目の値の影響は確率的である.

ベイズ識別規則では, 入力データx\mathbf{x}とクラスy\mathbf{y}に確率分布を仮定する.

病気の診断では, 検査対象を調べると健康な人と病気の人の割合が大きく異なることが一般的である. このときクラスの学習データのサンプル数に偏りが生じる (不均衡データ; Umbalanced data という).

ROC曲線とは, このようなデータに対して有効な性能評価法である.

ベイズの定理

ベイズ識別規則は, 次の事後確率最大になるクラスにデータを分類する.

観測データをx\mathbf{x}, 識別クラスをCi(i1,,K)C_i (i - 1, \cdots, K)とする

これはベイズの定理と呼ばれる. 同時分布

p(Ci,x)=p(Ci  x)p(x)=p(x  Ci)P(Ci)p(C_i, \mathbf{x}) = p(C_i \ |\ \mathbf{x}) p(\mathbf{x}) = p(\mathbf{x} \ |\ C_i) P(C_i)

となる.

クラス識別は, 事後確率が最大になるクラスにデータ x\mathbf{x} を割り付ければ良い, すなわち, 入力データ x\mathbf{x} に対して, 2クラス Ci,CjC_i, C_j の事後確率を計算し, P(Ci  x)>P(Cj  x)P(C_i \ |\ \mathbf{x}) > P(C_j \ |\ \mathbf{x}) ならば, x\mathbf{x}CiC_i に属すると識別する

多クラスの識別は, 識別クラス = arg maxip(x  Ci)P(Ci)\argmax_i p(\mathbf{x} \ |\ C_i) P(C_i) とすれば良い.

事後確率

事後確率 P(Ci  x)P(C_i \ |\ \mathbf{x}) は観測データ x\mathbf{x} が与えられたもとで, そのデータがクラス CiC_i に属する条件付き確率である

事前確率

事前確率 P(Ci)P(C_i) はデータ分析者は, 各クラス CiC_i の生起確率を予め用意しないといけない.

尤度

クラス条件付き確率 (尤度) p(x  Ci)p(\mathbf{x} \ |\ C_i) はクラスが与えられたもとで,観測データの確率分布を表している.

周辺確率

周辺確率 p(x)p(\mathbf{x}) は, 観測データ x\mathbf{x} の生起確率である. 周辺分布は, 同時分布から, 興味のない変数を積分や総和を取ることで消去することで得られた. このような操作を周辺化という.

p(x)=i=1Kp(Ci,x)p(\mathbf{x}) = \sum_{i=1}^K p(C_i, \mathbf{x})

例題1

以下の手順で健康か否かの事後確率を求める.

  1. クラス条件付き確率を求める. 周辺分布P(S  G),P(T  G)P(S \ |\ G), P(T \ |\ G)と同時分布P(S,T  G)P(S,T \ |\ G)の両方で
  2. 同時確率を求める. P(S,T,G)P(S, T, G)
  3. 周辺確率を求める. P(S,T)P(S, T)
  4. 事後確率を求める. P(G  S,T)P(G \ |\ S, T)
  • SSTT の間には条件付き独立性を仮定する
  • クラス事前確率は表から明らかなので, 次のようにして計算する

P(G=1)=8001000=45,P(G=0)=2001000=15\begin{aligned} P(G = 1) = \frac{800}{1000} = \frac{4}{5}, \quad P(G = 0) = \frac{200}{1000} = \frac{1}{5} \end{aligned}


クラス条件付き確率を求める

SS に関するクラス条件付き確率は次の通り

P(S=1  G=1)=320800=25,P(S=0  G=1)=480800=35P(S=1  G=0)=160200=45,P(S=0  G=0)=40200=15\begin{aligned} &P(S = 1 \ |\ G = 1) = \frac{320}{800} = \frac{2}{5}, \quad P(S = 0 \ |\ G = 1) = \frac{480}{800} = \frac{3}{5} \\\\ &P(S = 1 \ |\ G = 0) = \frac{160}{200} = \frac{4}{5}, \quad P(S = 0 \ |\ G = 0) = \frac{40}{200} = \frac{1}{5} \end{aligned}

TT に関するクラス条件付き確率は次の通り

P(T=1  G=1)=640800=45,P(T=0  G=1)=160800=15P(T=1  G=0)=40200=15,P(T=0  G=0)=160200=45\begin{aligned} &P(T = 1 \ |\ G = 1) = \frac{640}{800} = \frac{4}{5}, \quad P(T = 0 \ |\ G = 1) = \frac{160}{800} = \frac{1}{5} \\\\ &P(T = 1 \ |\ G = 0) = \frac{40}{200} = \frac{1}{5}, \quad P(T = 0 \ |\ G = 0) = \frac{160}{200} = \frac{4}{5} \end{aligned}

次に、GGを与えた時に、SSTTの条件付き同時確率を求める。P(S,T  G)P(S,T \ |\ G)GGが1あるいは0の場合に、SSTTの両方の変数の関係性を表している。

ここで、条件付き独立性を仮定しているので、同時確率が周辺確率の積で得られる

P(S=1,T=1  G=1)=P(S=1  G=1)P(T=1  G=1)=825P(S=0,T=1  G=1)=1225P(S=1,T=0  G=1)=225P(S=0,T=0  G=1)=325P(S=1,T=1  G=0)=425P(S=0,T=1  G=0)=125P(S=1,T=0  G=0)=1625P(S=0,T=0  G=0)=425\begin{aligned} &\color{blue}{P(S = 1, T = 1 \ |\ G = 1) = P(S = 1 \ |\ G = 1) \cdot P(T = 1 \ |\ G = 1) = \frac{8}{25}} \\\\ &P(S = 0, T = 1 \ |\ G = 1) = \frac{12}{25} \\\\ &P(S = 1, T = 0 \ |\ G = 1) = \frac{2}{25} \\\\ &P(S = 0, T = 0 \ |\ G = 1) = \frac{3}{25} \\\\ &P(S = 1, T = 1 \ |\ G = 0) = \frac{4}{25} \\\\ &P(S = 0, T = 1 \ |\ G = 0) = \frac{1}{25} \\\\ &P(S = 1, T = 0 \ |\ G = 0) = \frac{16}{25} \\\\ &P(S = 0, T = 0 \ |\ G = 0) = \frac{4}{25} \end{aligned}

同時確率を求める

GGを与えた時のSSTTの条件付き確率を求めたので、その確率に周辺確率を乗じることで得ることができる。

P(S=1,T=1,G=1)=P(S=1,T=1  G=1)P(G=1)=32125P(S=0,T=1,G=1)=48125P(S=1,T=0,G=1)=8125P(S=0,T=0,G=1)=12125P(S=1,T=1,G=0)=4125P(S=0,T=1,G=0)=1125P(S=1,T=0,G=0)=16125P(S=0,T=0,G=0)=4125\begin{aligned} &\color{blue}{P(S = 1, T = 1, G = 1) = P(S = 1, T = 1 \ |\ G = 1) \cdot P(G = 1) = \frac{32}{125}} \\\\ &P(S = 0, T = 1, G = 1) = \frac{48}{125} \\\\ &P(S = 1, T = 0, G = 1) = \frac{8}{125} \\\\ &P(S = 0, T = 0, G = 1) = \frac{12}{125} \\\\ &P(S = 1, T = 1, G = 0) = \frac{4}{125} \\\\ &P(S = 0, T = 1, G = 0) = \frac{1}{125} \\\\ &P(S = 1, T = 0, G = 0) = \frac{16}{125} \\\\ &P(S = 0, T = 0, G = 0) = \frac{4}{125} \end{aligned}

周辺分布を求める

先程求めたSSTTGGの3変数の同時確率から、変数GGを消去してあげれば、SSTTの周辺分布が得られる

GGの消去方法は、GGは離散なのでGGの台で総和を取れば良い

P(S=1,T=1)=P(S=1,T=1,G=1)+P(S=1,T=1,G=0)=36125P(S=0,T=1)=P(S=0,T=1,G=1)+P(S=0,T=1,G=0)=49125P(S=1,T=0)=P(S=1,T=0,G=1)+P(S=1,T=0,G=0)=24125P(S=0,T=0)=P(S=0,T=0,G=1)+P(S=0,T=0,G=0)=16125\begin{aligned} \color{blue}{P(S = 1, T = 1) = P(S = 1, T = 1, G = 1) + P(S = 1, T = 1, G = 0) = \frac{36}{125}} \\\\ P(S = 0, T = 1) = P(S = 0, T = 1, G = 1) + P(S = 0, T = 1, G = 0) = \frac{49}{125} \\\\ P(S = 1, T = 0) = P(S = 1, T = 0, G = 1) + P(S = 1, T = 0, G = 0) = \frac{24}{125} \\\\ P(S = 0, T = 0) = P(S = 0, T = 0, G = 1) + P(S = 0, T = 0, G = 0) = \frac{16}{125} \end{aligned}

事後確率を求める

S,T,GS, T, Gの同時確率をSSTTの周辺確率で除せば良い

P(G=1  S=1,T=1)=P(S=1,T=1,G=1)P(S=1,T=1)=89P(G=1  S=0,T=1)=P(S=0,T=1,G=1)P(S=0,T=1)=4849P(G=1  S=1,T=0)=P(S=1,T=0,G=1)P(S=1,T=0)=13P(G=1  S=0,T=0)=P(S=0,T=0,G=1)P(S=0,T=0)=34P(G=0  S=1,T=1)=P(S=1,T=1,G=0)P(S=1,T=1)=19P(G=0  S=0,T=1)=P(S=0,T=1,G=0)P(S=0,T=1)=149P(G=0  S=1,T=0)=P(S=1,T=0,G=0)P(S=1,T=0)=23P(G=0  S=0,T=0)=P(S=0,T=0,G=0)P(S=0,T=0)=14\begin{aligned} &P(G = 1 \ |\ S = 1, T = 1) = \frac{P(S = 1, T = 1, G = 1)}{P(S = 1, T = 1)} = \frac{8}{9} \\\\ &P(G = 1 \ |\ S = 0, T = 1) = \frac{P(S = 0, T = 1, G = 1)}{P(S = 0, T = 1)} = \frac{48}{49} \\\\ &P(G = 1 \ |\ S = 1, T = 0) = \frac{P(S = 1, T = 0, G = 1)}{P(S = 1, T = 0)} = \frac{1}{3} \\\\ &P(G = 1 \ |\ S = 0, T = 0) = \frac{P(S = 0, T = 0, G = 1)}{P(S = 0, T = 0)} = \frac{3}{4} \\\\ &P(G = 0 \ |\ S = 1, T = 1) = \frac{P(S = 1, T = 1, G = 0)}{P(S = 1, T = 1)} = \frac{1}{9} \\\\ &P(G = 0 \ |\ S = 0, T = 1) = \frac{P(S = 0, T = 1, G = 0)}{P(S = 0, T = 1)} = \frac{1}{49} \\\\ &P(G = 0 \ |\ S = 1, T = 0) = \frac{P(S = 1, T = 0, G = 0)}{P(S = 1, T = 0)} = \frac{2}{3} \\\\ &P(G = 0 \ |\ S = 0, T = 0) = \frac{P(S = 0, T = 0, G = 0)}{P(S = 0, T = 0)} = \frac{1}{4} \end{aligned}

これで、入力データS,TS, Tの情報からGGの事後確率を得ることができた。後は、各条件の時に事後確率の大小を比較して識別すれば良い

  • 事後確率を次の表にまとめると(赤字が健康と識別された確率)
(S,T)(S, T) (1, 1) (0, 1) (1, 0) (0, 0)
P(G=1S,T)P(G = 1 \vert S, T) 89\color{red}{\frac{8}{9}} 4849\color{red}{\frac{48}{49}} 13\frac{1}{3} 34\color{red}{\frac{3}{4}}
P(G=0S,T)P(G = 0 \vert S, T) 19\frac{1}{9} 149\frac{1}{49} 23\color{red}{\frac{2}{3}} 14\frac{1}{4}
  • 条件付きベイズ誤り率は次の通り

ϵ=s,t{0,1}min{P(G=1  S,T),P(G=0  S,T)}pS,T(S,T)=19×36125+149×49125+13×24125+14×16125=17125\begin{aligned} \epsilon^* &= \sum_{s, t \in \lbrace 0, 1 \rbrace} \min \lbrace P(G = 1 \ |\ S, T), P(G = 0 \ |\ S, T) \rbrace \cdot p_{S, T}(S, T) \\\\ &= \frac{1}{9} \times \frac{36}{125} + \frac{1}{49} \times \frac{49}{125} + \frac{1}{3} \times \frac{24}{125} + \frac{1}{4} \times \frac{16}{125} \\\\ &= \frac{17}{125} \end{aligned}

  • S,T=1S, T = 1の場合、事後確率の高い健康のクラスに識別される
  • 喫煙の習慣があって、お酒を飲まない人は事後確率の高い不健康のクラスに識別される
  • 喫煙も飲酒の習慣のある人の方が、喫煙も飲酒もしない人よりも健康である確率が高い

喫煙も飲酒の習慣もある人の場合、健康のクラスに識別されるので、19\frac{1}{9}の不健康の人も健康に識別されてしまう。これがS,T=1S, T = 1の場合の誤り率

以下、SSTTの全ての場合について誤り率を求めて、その条件の同時確率で重み付けをすれば良い。求めた誤り率は1712513.6%\frac{17}{125} \simeq 13.6 \%

尤度比(事前確率の比率)

クラス条件付き確率と事前確率の積で識別している

{p(x  Ci)P(Ci)>p(x  Cj)P(Cj)Cip(x  Ci)P(Ci)<p(x  Cj)P(Cj)Cj\begin{aligned} \begin{cases} p(\mathbf{x} \ |\ C_i) \cdot P(C_i) > p(\mathbf{x} \ |\ C_j) \cdot P(C_j) \Rightarrow C_i \\\\ p(\mathbf{x} \ |\ C_i) \cdot P(C_i) < p(\mathbf{x} \ |\ C_j) \cdot P(C_j) \Rightarrow C_j \end{cases} \end{aligned}

この式より, 尤度比で識別規則を構成してもよい

{p(x  Ci)p(x  Cj)>P(Cj)P(Ci)Cip(x  Ci)p(x  Cj)<P(Cj)P(Ci)Cj\begin{aligned} \begin{cases} \frac{p(\mathbf{x} \ |\ C_i)}{p(\mathbf{x} \ |\ C_j)} > \frac{P(C_j)}{P(C_i)} \Rightarrow C_i \\\\ \frac{p(\mathbf{x} \ |\ C_i)}{p(\mathbf{x} \ |\ C_j)} < \frac{P(C_j)}{P(C_i)} \Rightarrow C_j \end{cases} \end{aligned}

尤度比が事前確率の比 P(Cj/Ci)=hijP(C_j / C_i) = h_{ij} よりも大きければクラス ii に識別する.

誤り率最小化

ベイズ識別規則の誤り率 ϵ(x)\epsilon(\mathbf{x}) は事後確率の小さい方なので

ϵ(x)=min{P(C1  x),P(C2  x)}\epsilon(\mathbf{x}) = \min \lbrace P(C_1 \ |\ \mathbf{x}), P(C_2 \ |\ \mathbf{x}) \rbrace

これを条件付きベイズ誤り率という. ベイズ誤り率は条件付きベイズ誤り率の期待値

ϵ=E{ϵ(x)}=R2p(x  C1)P(C1)dx+R1p(x  C2)P(C2)dx\epsilon^* = E\lbrace \epsilon(\mathbf{x}) \rbrace = \int_{R_2} p(\mathbf{x} \ |\ C_1) P(C_1)dx + \int_{R_1} p(\mathbf{x} \ |\ C_2) P(C_2)dx

ベイズの識別規則によって識別境界が定められているとすると,

  • R2R_2の領域ではP(x  C1)P(C1)<P(x  C2)P(C2)P(\mathbf{x} \ |\ C_1) P(C_1) < P(\mathbf{x} \ |\ C_2) P(C_2)
  • R1R_1の領域ではP(x  C2)P(C2)<P(x  C1)P(C1)P(\mathbf{x} \ |\ C_2) P(C_2) < P(\mathbf{x} \ |\ C_1) P(C_1)

最小損失基準

誤りを犯すことによる危険性 (リスク) を考える. 誤りによって発生する危険性はクラス間で対称ではないから.

LijL_{ij}は真のクラスがCjC_jのときCiC_iと判断することによる損失を表す

データ x\mathbf{x} をクラス CiC_i と判断したときの損失は

r(Ci  x)=k=1KLikP(Ck  x)r(C_i \ |\ \mathbf{x}) = \sum_{k = 1}^K L_{ik} P(C_k \ |\ \mathbf{x})

  • P(Ck  x)P(C_k \ |\ \mathbf{x})は観測データx\mathbf{x}CkC_kと判断する確率

識別規則は, 損失がもっとも小さいクラスに識別する

識別クラス=arg minir(Ci  x)\text{識別クラス} = \argmin_i r(C_i \ |\ \mathbf{x})

このとき損失の期待値

r=E{r(x)}=R1+R2min{r(C1  x),r(C2  x)}p(x)dxr = E\lbrace r(\mathbf{x}) \rbrace = \int_{R_1 + R_2} \min \lbrace r(C_1 \ |\ \mathbf{x}), r(C_2 \ |\ \mathbf{x}) \rbrace p(\mathbf{x})d\mathbf{x}

最小損失基準に基づく識別の例

期待損失最小化

期待損失は次のようにして計算された

r=E{r(x)}=R1(L11p(x  C1)P(C1)+L12p(x  C2)P(C2))dx+R2(L21p(x  C1)P(C1)+L22p(x  C2)P(C2))dxr = E\lbrace r(\mathbf{x}) \rbrace = \int_{R_1} (L_{11} p(\mathbf{x} \ |\ C_1) P(C_1) + L_{12} p(\mathbf{x} \ |\ C_2) P(C_2))d\mathbf{x} + \int_{R_2} (L_{21} p(\mathbf{x} \ |\ C_1) P(C_1) + L_{22} p(\mathbf{x} \ |\ C_2) P(C_2))d\mathbf{x}

期待損失が最小になるクラスに識別すればよいので, 識別規則は次のようになった

L11p(x  C1)P(C1)+L12p(x  C2)P(C2)<L21p(x  C1)P(C1)+L22p(x  C2)P(C2)C1L_{11} p(\mathbf{x} \ |\ C_1) P(C_1) + L_{12} p(\mathbf{x} \ |\ C_2) P(C_2) < L_{21} p(\mathbf{x} \ |\ C_1) P(C_1) + L_{22} p(\mathbf{x} \ |\ C_2) P(C_2) \Rightarrow C_1

L11p(x  C1)P(C1)+L12p(x  C2)P(C2)>L21p(x  C1)P(C1)+L22p(x  C2)P(C2)C2L_{11} p(\mathbf{x} \ |\ C_1) P(C_1) + L_{12} p(\mathbf{x} \ |\ C_2) P(C_2) > L_{21} p(\mathbf{x} \ |\ C_1) P(C_1) + L_{22} p(\mathbf{x} \ |\ C_2) P(C_2) \Rightarrow C_2

L11,L22L_{11}, L_{22} は正しく識別できているので, 損失を考える必要はない, そこで L11<L12,L22<L21L_{11} < L_{12}, L_{22} < L_{21} を仮定しよう. すると次の識別規則が得られる.

(L21L11)p(x  C1)P(C1)>(L12L21)p(x  C2)P(C2)C1(L_{21} - L_{11}) p(\mathbf{x} \ |\ C_1) P(C_1) > (L_{12} - L_{21}) p(\mathbf{x} \ |\ C_2) P(C_2) \Rightarrow C_1

ROC曲線

識別性能の指標に受信者動作特性曲線 (ROC 曲線) がある

ROC曲線は, 偽陽性率と真陽性率の関係をグラフに表したもの

偽陽性率も真陽性率も, 本来偽 (真) であるものの中から計算されるので, 真のクラスと偽のクラスのデータ数に大きな差があってもROC は大きく影響を受けない.

ベイズ識別規則のように識別境界を移動することで識別クラスを制御できるものがある.

混同行列(Confusion Matrix)

2クラス問題では, 対象 x\mathbf{x} が1つに属していると判断する場合を p(positive), 属していないと判断する場合を, n (negative) と表記する.

  • p,np^*, n^*x\mathbf{x}真のクラスを表すとする
  • この識別の様子を混同行列としてまとめることができる
識別クラスp 識別クラスn 行和
pp^* TP(True Positive): 真陽性 FN(False Negative): 偽陰性 P=TP+FNP = TP + FN
nn^* FP(False Positive): 偽陽性 TN(True Negative): 真陰性 N=FP+TNN = FP + TN
  • Positive:陽性と判断
  • Negative:陰性と判断
  • True:判断が正しい
  • False:判断が誤り

偽陽性率:健康な人の中で陽性が出てしまった割合

FalsePositiverate=FPFP+TN=FPNFalse-Positive-rate = \frac{FP}{FP + TN} = \frac{FP}{N}

真陽性率:病気の人の中で陽性を正しく出せた割合

TruePositiverate=TPTP+FN=TPPTrue-Positive-rate = \frac{TP}{TP + FN} = \frac{TP}{P}

正確度:正しく当てられた割合

Accuracy=TP+TNTP+FP+FN+TNAccuracy = \frac{TP + TN}{TP + FP + FN + TN}

適合率:陽性を出した中でそれが合っていた割合。モデルの正確性を表す

Precision=TPTP+FPPrecision = \frac{TP}{TP + FP}

再現率:適合している全文書からどれだけ検索できているかを示す網羅性の指標。真の陽性に対してどれだけ真と答えられたか

Recall=TPTP+FN=TPPRecall = \frac{TP}{TP + FN} = \frac{TP}{P}

F-値:PrecisionとTrue-Pisitive rateの調和平均。(適合率と再現率はトレードオフの関係にあるから)

Fvalue=2×Precision×TPratePrecision+TPrate=21Precision+1RecallF_{value} = \frac{2 \times Precision \times TP-rate}{Precision + TP-rate} = \frac{2}{\frac{1}{Precision} + \frac{1}{Recall}}

ROCによる性能評価

ROC曲線の下側の面積を ROC曲線下面積(AUC)(area under anROC curve) といい, 識別器の性能評価尺度

  • 完全な識別器の ROC 曲線は, 原点, (0,1), (1,1) を通る直線で, AUCは 1 になる.
  • 原点と (1,1) を結んだ 45 度線は, ランダムな識別器の ROC 曲線で, AUC は 0.5 となる.

どの識別器も AUC は (0.5, 1) の間の値となり, 大きいほど性能が良い.

動作点の選択

動作点 (真陽性率と偽陽性率の組み合わせ) をどこに選択すべきか?

最小損失識別規則は, L11=L22=0L_{11} = L_{22} = 0 とすれば,

p(x  p)p(x  n)>L12P(n)L21P(p)pp(x  p)p(x  n)<L12P(n)L21P(p)n\begin{aligned} \frac{p(\mathbf{x} \ |\ p^*)}{p(\mathbf{x} \ |\ n^*)} > \frac{L_{12}P(n^*)}{L_{21}P(p^*)} \Rightarrow p \\\\ \frac{p(\mathbf{x} \ |\ p^*)}{p(\mathbf{x} \ |\ n^*)} < \frac{L_{12}P(n^*)}{L_{21}P(p^*)} \Rightarrow n \end{aligned}

損失の期待値 rr

r=R1(L12p(x  n)P(n))dx+R2(L21p(x  p)P(p))dx=L12P(n)ϵ2+L21P(p)ϵ1\begin{aligned} r &= \int_{R_1} (L_{12}p(\mathbf{x} \ |\ n^*) P(n^*))dx + \int_{R_2} (L_{21}p(\mathbf{x} \ |\ p^*) P(p^*))dx \\\\ &= L_{12}P(n^*) \epsilon_2 + L_{21}P(p^*) \epsilon_1 \end{aligned}

となる

ROC空間の定義で書けば,

1ϵ1=L12P(n)L21P(p)ϵ2+(1rL21P(p))=αϵ2+h(r)\begin{aligned} 1 - \epsilon_1 &= \frac{L_{12}P(n^*)}{L_{21}P(p^*)} \epsilon_2 + (1 - \frac{r}{L_{21}P(p^*)}) \\\\ &= \alpha \epsilon_2 + h(r) \end{aligned}

となる.

課題3.1

次のデータはある疾病に関して, 病気の人(G=1G = 1で表す)100人と, 健康な人(G=0G = 0)900人の検査値が一定数以上の場合を S=1S = 1, 一定値以下を S=0S = 0, 男性を T=1T = 1, 女性を T=0T = 0 とした 1000 人の仮想的なデータである. 検査値と性別から, 病気であるかどうかを識別したい. SSTT の間には条件付き独立性 P(S,T  G)=P(S  G)P(T  G)P(S, T \ |\ G) = P(S \ |\ G)P(T \ |\ G) が成り立つと仮定する. このとき, 以下の問に答えなさい.

サンプル数 検査値 xx がある値以上(S=1S = 1) 性別(T=1(T = 1)
病気の人(G = 1) 100 80 70
健康な人(G = 0) 900 300 180

(1) 検査値に関するクラス条件付き確率を P(S  G)P(S \ |\ G) を求めよ

SS に関するクラス条件付き確率は次の通り

P(S=1  G=1)=80100=45,P(S=0  G=1)=20100=15P(S=1  G=0)=300900=13,P(S=0  G=0)=600900=23\begin{aligned} &P(S = 1 \ |\ G = 1) = \frac{80}{100} = \frac{4}{5}, \quad P(S = 0 \ |\ G = 1) = \frac{20}{100} = \frac{1}{5} \\\\ &P(S = 1 \ |\ G = 0) = \frac{300}{900} = \frac{1}{3}, \quad P(S = 0 \ |\ G = 0) = \frac{600}{900} = \frac{2}{3} \end{aligned}

(2) 事後確率 P(G=1  S=1,T=1)P(G = 1 \ |\ S = 1, T = 1) を計算せよ

TT に関するクラス条件付き確率

P(T=1  G=1)=70100=710P(T = 1 \ |\ G = 1) = \frac{70}{100} = \frac{7}{10}

P(S,T  G)P(S, T \ |\ G)のクラス条件付き確率

P(S=1,T=1  G=1)=45×710=1425P(S = 1, T = 1 \ |\ G = 1) = \frac{4}{5} \times \frac{7}{10} = \frac{14}{25}

同時確率P(S,T,G)P(S, T, G)

P(S=1,T=1,G=1)=P(S=1,T=1  G=1)×P(G=1)=1425×1001000=7125P(S = 1, T = 1, G = 1) = P(S = 1, T = 1 \ |\ G = 1) \times P(G = 1) = \frac{14}{25} \times \frac{100}{1000} = \frac{7}{125}

周辺確率P(S,T)P(S, T)

P(S=1,T=1)=P(S=1,T=1,G=1)+P(S=1,T=1,G=0)=7125+350=29250P(S = 1, T = 1) = P(S = 1, T = 1, G = 1) + P(S = 1, T = 1, G = 0) = \frac{7}{125} + \frac{3}{50} = \frac{29}{250}

事後確率P(G=1  S=1,T=1)P(G = 1 \ |\ S = 1, T = 1)

P(G=1  S=1,T=1)=P(S=1,T=1,G=1)P(S=1,T=1)=1429P(G = 1 \ |\ S = 1, T = 1) = \frac{P(S = 1, T = 1, G = 1)}{P(S = 1, T = 1)} = \frac{14}{29}

(3) ベイズ誤り率を求めよ.

  • 事後確率を次の表にまとめると(赤字が健康と識別された確率)
(S,T)(S, T) (1, 1) (0, 1) (1, 0) (0, 0)
P(G=1S,T)P(G = 1 \vert S, T) 1429\frac{14}{29} 767\frac{7}{67} 111\frac{1}{11} 181\frac{1}{81}
P(G=0S,T)P(G = 0 \vert S, T) 1529\color{red}{\frac{15}{29}} 6067\color{red}{\frac{60}{67}} 1011\color{red}{\frac{10}{11}} 8081\color{red}{\frac{80}{81}}
  • 条件付きベイズ誤り率は次の通り

ϵ=s,t{0,1}min{P(G=1  S,T),P(G=0  S,T)}pS,T(S,T)=1429×29250+767×67500+111×33125+181×243500=110\begin{aligned} \epsilon^* &= \sum_{s, t \in \lbrace 0, 1 \rbrace} \min \lbrace P(G = 1 \ |\ S, T), P(G = 0 \ |\ S, T) \rbrace \cdot p_{S, T}(S, T) \\\\ &= \frac{14}{29} \times \frac{29}{250} + \frac{7}{67} \times \frac{67}{500} + \frac{1}{11} \times \frac{33}{125} + \frac{1}{81} \times \frac{243}{500} \\\\ &= \frac{1}{10} \end{aligned}

(4) 損失を L11=L22=0,L12=5,L21=10L_{11} = L_{22} = 0, L_{12} = 5, L_{21} = 10 とした場合の識別結果を求めよ

損失行列は

[L11L12L21L22]=[05100]\begin{aligned} \begin{bmatrix} L_{11} & L_{12} \\ L_{21} & L_{22} \end{bmatrix} = \begin{bmatrix} 0 & 5 \\ 10 & 0 \end{bmatrix} \end{aligned}

L11L_{11} は真のクラスが G=0G = 0 のとき G=0G = 0 と判断するときの損失, L21L_{21} は真のクラスが G=0G = 0 のとき G=1G = 1 と判断するときの損失, L12L_{12} は真のクラスが G=1G = 1 のとき G=0G = 0 と判断するときの損失であるから、識別クラスは事後確率に損失をかけて大きい値のクラスになる.

(1,1)(1, 1) (0,1)(0, 1) (1,0)(1, 0) (0,0)(0, 0)
L21P(G=1S,T)L_{21}P(G = 1 \mid S,T) 14029\color{red}{\frac{140}{29}} 7067\frac{70}{67} 1011\frac{10}{11} 1081\frac{10}{81}
L12P(G=0S,T)L_{12}P(G = 0 \mid S,T) 7529\frac{75}{29} 30067\color{red}{\frac{300}{67}} 5011\color{red}{\frac{50}{11}} 40081\color{red}{\frac{400}{81}}
識別クラス 1 0 0 0

最小損失基準に基づく、以下の識別結果になる

  • S=1,T=1S = 1, T = 1: 病気の人
  • S=0,T=1S = 0, T = 1: 健康な人
  • S=1,T=0S = 1, T = 0: 健康な人
  • S=0,T=0S = 0, T = 0: 健康な人

課題3.2

次の混同行列から, 偽陽性率, 真陽性率, 適合率, 正確度, F 値を求めよ.

識別クラスpp 識別クラスnn
pp^* TP: 20 FN: 80
nn^* FP: 150 TN: 750
  • 偽陽性率: FPN=150150+750=16\frac{FP}{N} = \frac{150}{150 + 750} = \frac{1}{6}
  • 真陽性率: TPP=2020+80=15\frac{TP}{P} = \frac{20}{20 + 80} = \frac{1}{5}
  • 適合率: TPTP+FP=2020+150=217\frac{TP}{TP + FP} = \frac{20}{20 + 150} = \frac{2}{17}
  • 正確度: TP+TNP+N=20+75020+80+150+750=77100\frac{TP + TN}{P + N} = \frac{20 + 750}{20 + 80 + 150 + 750} = \frac{77}{100}
  • F値: 21/適合率+1/再現率=21217+115=427\frac{2}{1/\text{適合率} + 1/\text{再現率}} = \frac{2}{\frac{1}{\frac{2}{17}} + \frac{1}{\frac{1}{5}}} = \frac{4}{27}
    • 再現率 = 真陽性率

確率モデルと識別関数

学習データ xi\mathbf{x}_i は, 母集団からのランダムサンプルであるから, 誤差を伴う観測が一般的である. また, 特徴ベクトルは単位や変数変換の仕方によりばらつきが変わったり, 分布の形状が変化する.

そこで, 単位変換や相関係数に依存しない変数変換の方法を学ぶ.

母集団分布を記述する確率モデルを定義し, 確率モデルを使ったベイズ識別規則を紹介する.

観測データの線形変換

平均ベクトル

観測データは, d次元の特徴ベクトル x=(x1,,xd)T\mathbf{x} = (x_1, \cdots, x_d)^Tとする. x\mathbf{x}の確率分布 (密度関数) を p(x)p(\mathbf{x}) とするとき, 平均ベクトルを次のように表す.

μ=(μ1,,μd)T=(E{x1},,E{xd})T\mu = (\mu_1, \cdots, \mu_d)^T = (E \lbrace x_1 \rbrace, \cdots, E \lbrace x_d \rbrace)^T

ここで E{xi}E \lbrace x_i \rbraceii 番目の特徴ベクトルの期待値演算で, x\mathbf{x}が連続型の場合

μi=E{xi}=Rdxip(x)dx=xip(xi)dx\mu_i = E \lbrace x_i \rbrace = \int_{\mathcal{R}^d} x_i p(\mathbf{x}) \, d\mathbf{x} = \int_{-\infty}^{\infty} x_i p(x_i) \,dx

となる.

p(xi)p(x_i) は d次元密度関数p(x)p(\mathbf{x})周辺分布であった.

p(xi)=p(x1,,xd)dx1dxi1dxi+1dxdp(x_i) = \int_{-\infty}^{\infty} \cdots \int_{-\infty}^{\infty} p(x_1, \cdots, x_d) \,dx_1 \cdots \,dx_{i-1} \,dx_{i+1} \cdots \,dx_d

共分散行列

観測データの平均ベクトル周りのばらつきの尺度を分散共分散行列で表す

Σ=Var[x]=E{(xμ)(xμ)T}=[σij]i.j=1,,d\begin{aligned} \Sigma &= Var[\mathbf{x}] = E\lbrace (\mathbf{x} - \mu) (\mathbf{x} - \mu)^T \rbrace \\ &= [\sigma_{ij}]_{i.j = 1, \cdots, d} \end{aligned}

  • σij\sigma_{ij}xix_ixjx_jの平均周りの2次モーメントして以下のようにして計算した

σij=E{(xiμi)(xjμj)}=(xiμi)(xjμj)p(xi,xj)dxidxj\sigma_{ij} = E\lbrace (x_i - \mu_i) (x_j - \mu_j) \rbrace = \int_{-\infty}^{\infty} \int_{-\infty}^{\infty} (x_i - \mu_i) (x_j - \mu_j) p(x_i, x_j) \,dx_i \,dx_j

標本平均ベクトルと標本共分散行列

データ分析者は, データの母集団分布p(x)p(\mathbf{x})を特定する術がありませんから, 観測データを使って, 母平均ベクトル(μ)(\mathbf{\mu})や母分散共分散行列(Σ)(\mathbf{\Sigma})を推定する必要がある

NN個の観測データをx1,,xN\mathbf{x}_1, \cdots, \mathbf{x}_Nと表したとき, 標本平均ベクトルは次の様にして計算した

x=1Ni=1Nxi\overline{\mathbf{x}} = \frac{1}{N} \sum_{i=1}^N \mathbf{x}_i

また, 標本分散共分散行列S\mathbf{S}の第i,ji, j要素は次のようにして計算する

Sij=1Nn=1N(xnixi)(xnjxj)S_{ij} = \frac{1}{N}\sum_{n=1}^N (x_{ni} - \overline{x_i}) (x_{nj} - \overline{x_j})

xix_ixjx_jの関連性の指標を相関係数といい, 母相関係数と標本相関係数は次の様にして定義された

ρij=σijσiσj,rij=SijSiSj\begin{aligned} \rho_{ij} = \frac{\sigma_{ij}}{\sigma_i \sigma_j}, \quad r_{ij} = \frac{S_{ij}}{S_i S_j} \end{aligned}

ただし, σi2=σij2\sigma_i^2 = \sigma_{ij}^2またSi2=SiiS_i^2 = S_{ii}である.

観測データの標準化

観測データの個々の特徴量の分布は, 測定単位のとり方でばらつきが大きくもなるし小さくもなる. そこで, 単位変換の影響を取り除いたデータを用いた方が望ましい分析結果が得られる.

  • 個々の特徴量を平均0, 分散1に変換することを標準化という.

平均μ\mu, 分散σ2\sigma^2をもつXXの線形変換Y=aX+bY = aX + bの期待値と分散の性質を思い出すと

E(Y)=E(aX+b)=aE(X)+b,Var(Y)=Var(aX+b)=a2Var(X)E(Y) = E(aX+b) = aE(X) + b, \quad Var(Y) = Var(aX+b) = a^2 Var(X)

変換z=xμσz = \frac{x - \mu}{\sigma}の期待値と分散は, それぞれ0と1になる.

E(Z)=E(Xμσ)=E(X)μσ=μμσ=0Var(Z)=Var(Xμσ)=Var(Z)σ2=σ2σ=1\begin{aligned} &E(Z) = E(\frac{X - \mu}{\sigma}) = \frac{E(X) - \mu}{\sigma} = \frac{\mu - \mu}{\sigma} = 0 \\\\ &Var(Z) = Var(\frac{X - \mu}{\sigma}) = \frac{Var(Z)}{\sigma^2} = \frac{\sigma^2}{\sigma} = 1 \end{aligned}

観測データの無相関化

データ間の相関を取り除く処理のことを無相関化という

分散共分散行列Σ\mathbf{\Sigma}の固有値をλ1λ2λd\lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_dとし, その固有値に対応する固有ベクトルをs1,s2,,sd\mathbf{s}_1, \mathbf{s}_2, \cdots, \mathbf{s}_dとすると, 対称行列である分散共分散行列Σ\mathbf{\Sigma}は次のように対角化された

Σ=SΣST,Λ=STΣS\mathbf{\Sigma} = \mathbf{S} \mathbf{\Sigma} \mathbf{S}^T, \quad \mathbf{\Lambda} = \mathbf{S}^T \mathbf{\Sigma} \mathbf{S}

そこで, データX\mathbf{X}の線形変換Y=ST(X)\mathbf{Y} = \mathbf{S}^T(\mathbf{X})を考えると, Y\mathbf{Y}の平均は

E(Y)=E(ST(X))=STμE(\mathbf{Y}) = E(\mathbf{S}^T(\mathbf{X})) = \mathbf{S}^T \mathbf{\mu}

であり, 分散共分散行列は

Var(Y)=Var(STX)=E{[ST(Xμ)][ST(Xμ)]T}=STE{(Xμ)(Xμ)T}S=STΣS=Λ\begin{aligned} Var(\mathbf{Y}) &= Var(\mathbf{S}^T \mathbf{X}) = E\lbrace [\mathbf{S}^T (\mathbf{X} - \mathbf{\mu})][\mathbf{S}^T (\mathbf{X} - \mathbf{\mu})]^T \rbrace \\\\ &= \mathbf{S}^T E \lbrace (\mathbf{X}- \mu) (\mathbf{X} - \mu)^T \rbrace \mathbf{S} \\\\ &= \mathbf{S}^T \mathbf{\Sigma} \mathbf{S} = \mathbf{\Lambda} \end{aligned}

  • Λ\mathbf{\Lambda}は, 固有値が対角に並んだ対角行列であったので, その非対角要素は0であった.

観測データの白色化

全ての特徴量を無相関化かつ標準偏差を1に正規化し, 平均ベクトルを0に中心化する操作を白色化という

白色化の変換公式は以下のように定義すればよい.

u=Λ12ST(Xμ)\mathbf{u} = \mathbf{\Lambda}^{-\frac{1}{2}} \mathbf{S}^T (\mathbf{X} - \mu)

u\mathbf{u}の平均ベクトルは

E(u)=E(Λ12ST(Xμ))=Λ12ST{E(Xμ)=0E(\mathbf{u}) = E(\mathbf{\Lambda}^{-\frac{1}{2}} \mathbf{S}^T (\mathbf{X} - \mu)) = \mathbf{\Lambda}^{-\frac{1}{2}} \mathbf{S}^T \lbrace E(\mathbf{X} - \mu) = \mathbf{0}

となり, 分散共分散行列は

Var(u)=Var(Λ12ST(Xμ))=E{Λ12ST(Xμ)(Xμ)TSΛ12}=Λ12STΣSΛ12=Λ12ΛΛ12=Λ12Λ12Λ12Λ12=Id\begin{aligned} Var(\mathbf{u}) &= Var(\mathbf{\Lambda}^{-\frac{1}{2}} \mathbf{S}^T (\mathbf{X} - \mu)) \\\\ &= E \lbrace \mathbf{\Lambda}^{-\frac{1}{2}} \mathbf{S}^T (\mathbf{X} - \mu) (\mathbf{X} - \mu)^T \mathbf{S} \mathbf{\Lambda}^{-\frac{1}{2}} \rbrace \\\\ &= \mathbf{\Lambda}^{-\frac{1}{2}} \mathbf{S}^T \mathbf{\Sigma} \mathbf{S} \mathbf{\Lambda}^{-\frac{1}{2}} \\\\ &= \mathbf{\Lambda}^{-\frac{1}{2}} \mathbf{\Lambda} \mathbf{\Lambda}^{-\frac{1}{2}} \\\\ &= \mathbf{\Lambda}^{-\frac{1}{2}} \mathbf{\Lambda}^{\frac{1}{2}} \mathbf{\Lambda}^{\frac{1}{2}} \mathbf{\Lambda}^{-\frac{1}{2}} \\\\ &= \mathbf{I_d} \end{aligned}

確率モデル

パラメトリックモデル: 確率モデルを仮定し, 学習データからその確率モデルのパラメータを推定して識別規則を構成する手法

  • ベイズ識別規則, 判別分析, ロジスティック回帰

ノンパラメトリックモデル: 確率モデルを用いずに, 識別規則を構成する手法

  • k最近傍法, サポートベクターマシン(SVM), 分類木, ヒストグラム法

1次元正規分布の密度関数は

N(x  μ,σ2)=12πσexp((xμ)2σ2)\mathcal{N}(x \ |\ \mu, \sigma^2) = \frac{1}{\sqrt{2\pi} \sigma} \exp(-\frac{(x - \mu)^2}{\sigma^2})

となり, 平均μ\mu, と標準偏差σ\sigma(分散σ2\sigma^2)が形を決める

d次元正規分布関数

d次元正規分布の密度関数は

N(x  μ,Σ)=1(2π)d/2Σ1/2exp(12(xμ)TΣ1(xμ))\mathcal{N}(\mathbf{x} \ |\ \mathbf{\mu}, \mathbf{\Sigma}) = \frac{1}{(2\pi)^{d/2} |\mathbf{\Sigma}|^{1/2}} \exp(-\frac{1}{2} (\mathbf{x} - \mathbf{\mu})^T \mathbf{\Sigma}^{-1} (\mathbf{x} - \mathbf{\mu}))

任意の点x\mathbf{x}μ\mathbf{\mu}の間の距離をマハラノビス距離といい, 次のように表す

d(x,μ)=(xμ)TΣ1(xμ)d(\mathbf{x}, \mathbf{\mu}) = \sqrt{(\mathbf{x} - \mathbf{\mu})^T \mathbf{\Sigma}^{-1} (\mathbf{x} - \mathbf{\mu})}

ユークリッド距離を共分散で割っているので, 各変数のバラつき方を考慮した距離になっている

正規分布から導かれる識別関数

ii番目のクラスのクラス条件付き確率dd次元正規分布だと仮定し,ベイズの誤り率最小識別規則を満たす識別関数を求めよう. クラス事前確率をP(Ci)P(C_i)とすると, 事後確率は

P(Ci  x)P(Ci)(2π)d/2Σ1/2exp(12(xμ)TΣ1(xμ))P(C_i \ |\ \mathbf{x}) \propto \frac{P(C_i)}{(2\pi)^{d/2} |\mathbf{\Sigma}|^{1/2}} \exp(-\frac{1}{2} (\mathbf{x} - \mathbf{\mu})^T \mathbf{\Sigma}^{-1} (\mathbf{x} - \mathbf{\mu}))