訓練logisttic回歸時報錯:numpy.linalg.LinAlgError: Singular matrix


在使用statsmodel中的logistic回歸,調用fit時報錯:numpy.linalg.LinAlgError: Singular matrix

檢查日志發現:在報錯附近有這樣一行:statsmodel.logit Maximum number of iterations has been exceeded.

模型超過了最大迭代次數。查找得到的解決方案有:

第一種解決辦法:

 

 

 默認的優化方法是newton,源碼種給出了method的幾種參數的表示,幾種優化方法的區別這篇文章講的很詳細:https://www.cnblogs.com/yymn/p/4512868.html

 按照該方案解決后是沒有再報錯,但是得到的模型conf明顯不對。

第二種解決思路:

  優化難題:通常Logit收斂速度很快,默認迭代次數設置得很低。在對fit的調用中添加一個更大的maxiter關鍵字,或者用前面的結果重新調整為start_params在大多數情況下都有幫助。

定位到出現問題的自變量和因變量的地方,發現大部分的迭代都在10-15次之后達到收斂,但是這組迭代達到了35次,

 

 於是添加參數maxiter=25,得到了解決。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM