完全に2値分類できる問題があったとする。scikit-learn のロジスティック回帰を使って分類する場合、scikit-learn のロジスティック回帰ではデフォルトでL2ノルムが加えられている。この正則化項により、うまく分類できない場合があった。
解決策
そういうときは以下のようにpenalty=none
を追加して正則化項を削除するとうまくいった。
lr = LogisticRegression(penalty = "none")
理論的には完全分類できる問題で正則化項を入れないと、係数が発散するのでL2やL1の罰則項を追加しておくべき。
私が試した問題ではなぜか正則化項を削除したらうまくいったという話。
参考