人工知能に関する断創録

このブログでは人工知能のさまざまな分野について調査したことをまとめています(更新停止: 2019年12月31日)

パターン識別 (5) 2次元ガウスデータでの決定領域

『パターン識別』のp.44の例1。

2つのカテゴリの確率分布が正規分布であって共分散行列が任意の場合、決定面は2次超曲面になる。データが2次元の場合は曲線になる。上の赤い方の分布は共分散行列が(0.5 0 : 0 2)であるためx1方向に押しつぶされた形をしている。だから識別面もそれにつられて上に曲がっている。

f:id:aidiary:20060702202907g:plain

# 2次元ガウスデータでの決定領域(p.44)

bayes_decision_boundary <- function()
{
  # mvrnormを使うため
  library(MASS)

  # カテゴリ1の分布を定義
  mu1 <- c(3,6)
  sigma1 <- matrix(c(0.5,0,0,2),2,2)

  # 正規分布N(mu1,sigma1)に従うサンプルを生成
  smp1 <- mvrnorm(100, mu1, sigma1)
  
  # カテゴリ2の分布を定義
  mu2 <- c(3,-2)
  sigma2 <- matrix(c(2,0,0,2),2,2)
  
  # 正規分布N(mu2,sigma2)に従うサンプルを生成
  smp2 <- mvrnorm(100, mu2, sigma2)
  
  # サンプルを描画
  plot(smp1, xlim=c(-3,10), ylim=c(-5,10),
       xlab="x1", ylab="x2",
       main="2次元ガウスデータでの決定領域")
  par(new=T)
  plot(smp2, xlim=c(-3,10), ylim=c(-5,10),
       xlab="x1", ylab="x2", pch=18)

  # 識別関数
  boundary <- function(x) {
    3.514 - 1.125 * x + 0.1875 * x * x
  }
  par(new=T)
  plot(boundary, -3, 10, xlim=c(-3,10), ylim=c(-5,10),
       xlab="x1", ylab="x2")
}