ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

線形判別、ベイズ判別、ロジスティック判別

2012-02-08 17:57:16 | そのほか
 きのう、勉強したことをメモメモ

テーマ:
発熱する場合
   風邪を引いて発熱する
   インフルエンザで発熱する
の2とおりがありえる。このとき、体温をはかって、かぜかインフルエンザか見分けたい。
(いや、他の病気でも発熱するよ!というのは、今回考えない。この2つに絞られた状態で考える)


判別について:
線形判別、ベイズ判別、ロジスティック判別は、
すでに分類(風邪/インフル) → 判別する規則  → 新しいデータ(体温)
されているデータ                      を判別



という、教師つきデータで考えている。
なお、分類されているデータの背後には、分布があるということ。




■さまざまな判別

(1)線形判別
  判別する規則(判別関数)に、線形式をつかう。
  h(x)=α0+α1x1+α2x2・・・・
  なお、分散が等しくないときは、マハラノビスの距離を使う。

  風邪とインフルの分布の中点に判別関数がきて、新しいデータは、どちらよりかをチェックする
  イメージ

(2)ベイズ判定
  風邪をG1、インフルをG2、発熱をDとすると、
   発熱が起こったとき(D)の風邪の確率(G1)をP(G1|D)
   発熱が起こったとき(D)の風邪の確率(G2)をP(G2|D)
  と表現する。
  →P(Gi|D)は、発熱Dが起こった後の確率なので、事後確率という

  ベイズ判定は、事後確率が大きいほうに判定する。
  ここで、新しいデータ=測った体温で表現すると、
    P(風邪|測った体温)
    -------------------------
    P(インフル|測った体温)
   (logをとって考えることも)
  の判定をする。

(3)ロジスティック判定
  線形変換をすると、マイナスになったり、1よりおおきくなったりするが、
   0~1の範囲に収めたいときがある。そのとき、ロジット変換(log(y/1-y))
   することにより、その範囲に収めるのが、ロジスティック回帰。
  とくに、0か1かの判断をしたいときにいい(ベルヌーイ分布に従う)
  これをもとに、判別を行う。




■関連

 これらには、関係がある。


・線形判別とベイズ判定
  条件付確率をデータの尤度に対応と考え、いろいろ計算していくと、
 判別式が、最終的に以下のようになる。

    p(G1|x)   f(x|x1,s1)
    ------------- =-----------------
    p(G2|x)   f(x|x2,s2)


 ( f(x|μ2,σ2)は、尤度、これを元に推定を表したのが f(x|x2,s2))


・ベイズ判定とロジスティック判定

 事後確率の比の対数をとり、それを線形式で表現する

log(P(G1|x)/p(G2|X))=β0+β1x1+β2x2+・・・=β0+β'x

ここで、P(G1|X)+P(G2|x)=1(風邪かインフルしかないと考えてる)
なので、   

log(P(G1|x)/(1-p(G1|X)))=β0+β'x

変形すると

P(G1|x)=exp(β0+β'x)/(1+exp(β0+β'x))

という形でロジスティック回帰モデルに帰着できる。




 私の理解が間違っているかもしれないので、
 ここの内容の信憑性は???

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Rでお絵かき その2 グラフをファイル保存

2012-02-08 14:00:41 | そのほか

Rでお絵かき その1 グラフおえかき
http://blog.goo.ne.jp/xmldtp/e/1f031c4e7f6559d8202daf37ac1b68fc


でグラフを描いた。きょうは、それをeps形式、jpeg形式で保存する。




■今日の課題

Rで以下の操作
delta<- 1000 
en.x<-seq(0,pi,length=delta) 
en.y<-sin(seq(0,pi,length=delta)) 
plot(en.x,en.y,type="l",xlim=c(0,pi),ylim=c(0,1))


により、得られた下の図

をeps形式、jpeg形式で保存する。




■eps形式で保存。

こんなかんじ

setwd("C:/tmp")
postscript("test1.eps", horizontal=FALSE, height=5, width=5,onefile=FALSE,paper="special")
plot(en.x,en.y,type="l",xlim=c(0,pi),ylim=c(0,1))
dev.off()


setwdで書き出すディレクトリ(フォルダ)を指定している。
epsで書き出すには、postscriptコマンドを使う。
最後、dev.off()する。




■jpeg形式で保存

同じ理屈。

setwd("C:/tmp")
jpeg("test1.jpg", height=500, width=500)
plot(en.x,en.y,type="l",xlim=c(0,pi),ylim=c(0,1))
dev.off()







次回は、For文でぐるぐる回す→ファイル名を変える

<<参考サイト>>

R出力の記録
http://www.okada.jp.org/RWiki/?R%BD%D0%CE%CF%A4%CE%B5%AD%CF%BF#z4dec07e


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Google「Chrome for Android」発表

2012-02-08 11:20:03 | Weblog
 Androidアプリをつくらなくても、HTML5で書いて、Chromeで動作確認すればOK、
PCもスマホも動くという時代に・・・なってないか、iPhoneがいるね(^^;)
 まあ、Safariもたしかエンジンはwebkitだから、同じように、動くだろうけど・・・


Google「Chrome for Android」発表、モバイル版ついに登場!
http://headlines.yahoo.co.jp/hl?a=20120208-00000001-mycomj-mobi


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする