No.24 Drawing the Decision Boundary of Logistic Regression part 2.
昨日は、ロジスティック回帰の決定境界をRで描画することに触れてきましたが、
もう少し、深掘りしていきたいと思います。(但し、「2次元」に限ります。笑)
昨日のエントリ(No.23)で、ロジスティック回帰のモデル推定後、等高線を利用して、決定境界を描いてきました。
これでしたね!(再掲)
この決定境界は、2次元平面上の直線として描かれています。
もっと言えば、x(exam1)とy(exam2)の関係式が直線というわけです。
決定境界を描く際、Rのcontour関数のlevelsを0.5として設定していました。
これは、ロジスティック回帰のモデル式に当てはめるのであれば、
左辺は、 となります。
これらを満たすようなx(exam1)とy(exam2)の組み合わせが決定境界(線)になります。
上記を変形すれば、ロジット関数が得られます。
つまり、以下のように変形できます。
となり、
左辺は、上記の より、
となります。
すなわち、
ということになり、オッズ比の対数のモデルを「0」とした関係が決定境界というわけです。
ここまで来れば、決定境界を2次元の直線として記述できたわけですから、
と変形できますね。(御馴染みの の形式にしたわけです。)
昨日のモデル推定の続きから、上記の結果に基づいて、決定境界を描いてみましょう!
# モデルの偏回帰係数を取得 glm.coef <- as.matrix(admit.glm$coefficients) # x1とx2の値を算出 x1 <- seq(30,100,6) x2 <- -(glm.coef[1] + glm.coef[2] * x1) / glm.coef[3] # プロット化 cols=as.numeric(ex2data1$admit) pchs=as.numeric(ex2data1$admit) plot(ex2data1[,-3], col=cols, pch=pchs, xlim=c(30,100), ylim=c(30,100)) lines(x1, x2, col="blue", lwd=2)
昨日と同じ結果が得られました!!
ここまで深入りしなくとも、決定境界は描けるわけですが、決定境界を定義する関数の姿が明確になりましたね!
それに、たまには、数式を手計算するのも良い練習ですよね?!(笑)