2023-04-15
为了模拟一个逻辑回归模型的优化过程,我们可以使用模拟数据来进行演示。下面是一些
模拟数据:
#
模拟数据
set.seed(123)
n <- 100
x <- rnorm(n)
y <- rbinom(n, 1, plogis(x))
逻辑回归的对数似然函数可以写成:
ℓ
(
β
)
=
n
i
=
1
y
i
log
(
p
i
)
+
(
1
−
y
i
)
log
(
1
−
p
i
)
其中,
β
是逻辑回归模型的参数向量,
p
i
是根据模型预测出来的第
i
个样本为正例的概率,
y
i
是第
i
个样本的真实标签(
0
或
1
)。
逻辑回归的对数似然函数的梯度函数可以写成:
∇
ℓ
(
β
)
=
n
i
=
1
(
y
i
−
p
i
)
x
i
其中,
x
i
是第
i
个样本的特征向量。
逻辑回归的对数似然函数的海塞矩阵可以写成:
H
(
β
)
=
n
i
=
1
p
i
(
1
−
p
i
)
x
i
x
T
i
使用R自带的逻辑回归函数 glm() 可以估计出参数系数,具体代码如下:
#
使用
glm()
函数拟合逻辑回归模型
model <- glm(y ~ x, family = binomial)
#
输出参数系数
coefficients(model)
## (Intercept) x
## 0.3995191 1.1669519
我们可以使用梯度和海塞矩阵来写出牛顿迭代算法。具体代码如下:
#
初始化参数
beta <- matrix(0, nrow = 2, ncol = 1)
converged <- FALSE
epsilon <- 1e-6