我一直在使用 R 中的 glm.fit 函数将参数拟合到逻辑回归模型。默认情况下, glm.fit 使用迭代重新加权的最小二乘法来拟合参数。当用于逻辑回归时,该算法无法收敛的一些原因是什么?
当用于逻辑回归时,迭代重加权最小二乘法不会收敛的一些原因是什么?
机器算法验证
r
物流
广义线性模型
收敛
爱尔兰人
2022-03-20 10:45:42
2个回答
如果这两个类是可分离的,则迭代重加权最小二乘法 (IRLS) 将失效。在这种情况下,任何将这两个类分开的超平面都是一个解,并且它们的数量是无限的。IRLS 旨在找到最大似然解决方案。最大似然没有机制来支持这些解决方案中的任何一个(例如,没有最大边际的概念)。根据初始化,IRLS 应该朝着这些解决方案之一前进,并且会因数值问题而中断(不知道 IRLS 的细节;有根据的猜测)。
在训练数据的线性可分的情况下会出现另一个问题。任何超平面解都对应于一个重载函数。因此,所有概率都是 0 或 1。线性回归解决方案将是硬分类器而不是概率分类器。
为了使用数学符号进行澄清,重载函数是,sigmoid 函数的极限,其中\sigma是 sigmoid 函数,(\mathbf{w}, b)确定超平面解。因此 IRLS 理论上不会停止并朝着幅度增加的\mathbf{w}前进,但在实践中会由于数值问题而中断。
除了线性分离(其中 MLE 位于参数空间的边界)之外,R 中的 Fisher Scoring 程序在数值上并不完全稳定。它采用固定大小的步骤,在某些病理情况下可能导致不收敛(当真正的 MLE 确实是一个内部点时)。
例如,
y <- c(1,1,1,0)
x <- rep(1,4)
fit1 <- glm.fit(x,y, family=binomial(link="logit"),start=-1.81)
产生而不是预期的 logit的系数。
CRAN 包glm2提供了一个替代品,glm.fit
可以调整步长以确保单调收敛。
其它你可能感兴趣的问题