人工知能に関する断創録

人工知能、認知科学、心理学、ロボティクス、生物学などに興味を持っています。このブログでは人工知能のさまざまな分野について調査したことをまとめています。最近は、機械学習、Deep Learning、Kerasに関する記事が多いです。



パターン識別 (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")
}