如何在 R 中为逻辑回归模型绘制决策边界?

机器算法验证 r 物流
2022-02-08 00:18:38

我在 R 中使用 glm 制作了一个逻辑回归模型。我有两个自变量。如何在两个变量的散点图中绘制模型的决策边界。例如,我如何绘制如下图:http: //onlinecourses.science.psu.edu/stat557/node/55

谢谢。

2个回答
set.seed(1234)

x1 <- rnorm(20, 1, 2)
x2 <- rnorm(20)

y <- sign(-1 - 2 * x1 + 4 * x2 )

y[ y == -1] <- 0

df <- cbind.data.frame( y, x1, x2)

mdl <- glm( y ~ . , data = df , family=binomial)

slope <- coef(mdl)[2]/(-coef(mdl)[3])
intercept <- coef(mdl)[1]/(-coef(mdl)[3]) 

library(lattice)
xyplot( x2 ~ x1 , data = df, groups = y,
   panel=function(...){
       panel.xyplot(...)
       panel.abline(intercept , slope)
       panel.grid(...)
       })

替代文字

我必须指出,这里发生了完美的分离,因此该glm函数会给你一个警告。但这在这里并不重要,因为目的是说明如何绘制线性边界和根据协变量着色的观察值。

想在费尔南多接受的上述答案的评论中解决这个问题:有人可以解释斜率和截距背后的逻辑吗?

逻辑回归的假设采用以下形式:

hθ=g(z)

其中,是 sigmoid 函数,其中的形式为:g(z)z

z=θ0+θ1x1+θ2x2

假设我们在 0 和 1 之间进行分类,给出 sigmoid 函数为真时y=1hθ0.5

θ0+θ1x1+θ2x20

以上是决策边界,可以重新排列为:

x2θ0θ2+θ1θ2x1

这是一个形式为的等式,您可以看到为什么的计算方式与它们在接受的答案中的方式相同y=mx+bmb