我正在尝试在大型设计矩阵(~200列)的statsmodel中运行逻辑回归。这些功能包括许多交互,分类功能和半稀疏(70%)整数功能。虽然我的设计矩阵不是实际上病态,但它似乎有点接近(根据numpy.linalg.matrix_rank
,它是tol=1e-3
的全等级但不是{{1} }})。因此,我正在努力使逻辑回归与statsmodel中的任何方法收敛。这是我到目前为止所尝试的内容:
tol=1e-2
:1000次迭代后没有收敛;在尝试颠倒Hessian的同时提出了一个奇异矩阵method='newton'
。
LinAlgError
:警告可能的精确损失。在0次迭代后声称收敛,显然实际上没有收敛。
method='bfgs'
:声称它已经收敛,但模型有一个负的伪R平方,许多系数仍然为零(与他们收敛到更好条件的子模型的值非常不同) 。我尝试将method='nm'
放到xtol
无效。
1e-8
:报告fit_regularized(method='l1')
。然后在尝试计算受限制的Hessian逆时,提出了一个奇异矩阵Inequality constraints incompatible (Exit mode 4)
。