运行Adrian的线性二进制模式代码。该程序运行,但发出以下警告:
C:\Python27\lib\site-packages\sklearn\svm\base.py:922: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.
"the number of iterations.", ConvergenceWarning
我正在使用opencv3.7运行python2.7,该怎么办?
答案 0 :(得分:19)
我达到了我设定的级别,直到我的max_iter=1200000
分类器上的LinearSVC
为止,但“ ConvergenceWarning” 仍然存在。我通过仅设置dual=False
并将max_iter
保留为默认值来解决此问题。
使用LogisticRegression(solver='lbfgs')
分类器,您应该增加max_iter
。当使用大型数据集的特征进行训练时,“收敛警告” 消失之前,我的max_iter=7600
已经到达。
答案 1 :(得分:10)
通常,当优化算法无法收敛时,通常是因为问题条件不佳,可能是由于决策变量的缩放比例不佳。您可以尝试一些方法。
C
已正确设置。max_iter
设置为更大的值。默认值为1000。答案 2 :(得分:7)
明确指定max_iter
可以解决警告,因为默认的max_iter
为100。[对于Logistic回归]。
logreg = LogisticRegression(max_iter=1000)
答案 3 :(得分:2)
请将max_iter递增到10000,默认值为1000。的迭代将有助于算法收敛。对我来说,它收敛了,求解器是-'lbfgs'
log_reg = LogisticRegression(solver='lbfgs',class_weight='balanced', max_iter=10000)