如何修复Statsmodel警告:“已超出最大迭代次数”

时间:2015-10-03 18:58:21

标签: python warnings anaconda logistic-regression statsmodels

我正在使用Anaconda,我正在尝试逻辑回归。加载训练数据集并执行回归后。然后我收到以下警告信息。

	<div class="row gallery">
		<div class="col l3 col m4 col s12"  ng-repeat="image in images"> 
		<md-card class="z-depth-3">
			
					<!--INSTAGRAM PHOTOS-->
					<a>
			<img class="responsive-img" ng-src="{{image.images.standard_resolution.url}}" alt="">
			</a>
					<!--USER AND AVATAR-->
					
				<div class="img-info">
					<img class="circle" ng-src="{{image.user.profile_picture}}">{{image.user.username}}
						 
								
				</div>	
				</md-card>
			</div>
		</div>

为什么我会收到此警告,如何解决此问题? 谢谢!

2 个答案:

答案 0 :(得分:4)

有两种可能性

1)困难的优化问题:通常Logit收敛速度非常快,默认的迭代次数设置得非常低。在maxiter的调用中添加较大的fit关键字,或者在start_params之前将结果重新设置为/** * Handle a registration request for the application. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function postRegister(Request $request) { $validator = $this->validator($request->all()); if ($validator->fails()) { $this->throwValidationException( $request, $validator ); } // Your custom code Auth::login($this->create($request->all())); return redirect($this->redirectPath()); } ,这在大多数情况下都有帮助。

2)由于这是Logit,因此可能存在完全分离或准完全分离。在这种情况下,某些参数可能会偏离无穷大,并且优化会在某些收敛或停止标准处停止。 Logit检测完全分离的简单情况并引发异常,但可能存在未检测到的部分分离。通过完美分离,您可以获得对某些或所有情况的完美可预测性,这对预测很有用,但会导致估算和识别参数时出现问题。 更多信息,例如https://stats.stackexchange.com/questions/11109/how-to-deal-with-perfect-separation-in-logistic-regression有关角落案例和类似问题的statsmodels github问题也有几个FAQ问题。

答案 1 :(得分:0)

检查所有变量的级别。其中之一可能会占据一种类别的近99%。因此,难以收敛。 我通过从数据集中删除该变量来解决它。