人工智能機器學習:如何解決Solver lbfgs supports only 'l2' or 'none' penalties, got l1 penalty?


sklearn0.22版本,用以下代碼建立邏輯回歸模型

lr = LogisticRegression(C = c_param, penalty = 'l1')

正則化懲罰選擇'L1'報錯,一臉懵C

嗯,還是打印一下Ir看一下參數

LogisticRegression(C=0.01, class_weight=None, dual=False, fit_intercept=True,
                   intercept_scaling=1, l1_ratio=None, max_iter=100,
                   multi_class='auto', n_jobs=None, penalty='l1',
                   random_state=None, solver='lbfgs', tol=0.0001, verbose=0,
                   warm_start=False)

問題就出現在solver這個參數上,這個參數定義的是分類器,‘newton-cg’,‘sag’和‘lbfgs’等solvers僅支持‘L2’regularization,‘liblinear’ solver同時支持‘L1’、‘L2’regularization,若dual=Ture,則僅支持L2 penalty。

決定懲罰項選擇的有2個參數:dual和solver,如果要選L1范數,dual必須是False,solver必須是liblinear

問題搞清楚了,把上面代碼改成:

lr = LogisticRegression(C = c_param, penalty = 'l1',solver='liblinear')

 


免責聲明!

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



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