R如何快速获得逻辑回归的决策边界
R How to quickly get decision boundary for logistic regression
我们知道如何为逻辑回归和其他分类器方法绘制决策边界,但是,我对绘图不感兴趣;但我想要二项式预测为 .50 的确切值。
例如:
train=data.frame(1:20)
train$response=rep(1:0,10)
model=glm(response ~ poly(X1.20, 2), data=train, family=binomial)
train$X1.20[1]=10.5
predict(model, train[1,], type="response")
给我留下了 10.5 的决策边界,我可以通过 predict() 函数的反复试验找到它,这意味着自变量的值 10.5 给出的响应正好是 .50。有没有一种自动的方法来找到什么值会给出 .50 的响应?
您应该利用这样一个事实,即 Logit 模型的预测值为零意味着响应概率为 0.5。因此,您可以尝试找到使预测值尽可能接近零的 x
的值。这里 deviationFromZero()
找出给定 x
.
的任何值,模型的预测值与零的距离
df <- data.frame(x = 1:20, response = rep(1:0, 10))
model <- glm(response ~ poly(x, 2), data = df, family = binomial)
deviationFromZero <- function(y) abs(predict(model, data.frame(x = y)))
boundary <- optimize(f = deviationFromZero, interval = range(df$x))
boundary
$minimum
[1] 10.5
$objective
1
1.926772e-16
我们知道如何为逻辑回归和其他分类器方法绘制决策边界,但是,我对绘图不感兴趣;但我想要二项式预测为 .50 的确切值。
例如:
train=data.frame(1:20)
train$response=rep(1:0,10)
model=glm(response ~ poly(X1.20, 2), data=train, family=binomial)
train$X1.20[1]=10.5
predict(model, train[1,], type="response")
给我留下了 10.5 的决策边界,我可以通过 predict() 函数的反复试验找到它,这意味着自变量的值 10.5 给出的响应正好是 .50。有没有一种自动的方法来找到什么值会给出 .50 的响应?
您应该利用这样一个事实,即 Logit 模型的预测值为零意味着响应概率为 0.5。因此,您可以尝试找到使预测值尽可能接近零的 x
的值。这里 deviationFromZero()
找出给定 x
.
df <- data.frame(x = 1:20, response = rep(1:0, 10))
model <- glm(response ~ poly(x, 2), data = df, family = binomial)
deviationFromZero <- function(y) abs(predict(model, data.frame(x = y)))
boundary <- optimize(f = deviationFromZero, interval = range(df$x))
boundary
$minimum
[1] 10.5
$objective
1
1.926772e-16