sklearnのLogistic Regressionを使ってみる

400個の素性のLogistic Regressionを2000個作って、L1正則化して、0にならなかった素性が62874個。ということは1個あたり31件。9割の素性はゴミということがわかった。

でもこれは「とりあえずシンプルな素性でやってみるか」というものなので前に作ったナイーブベイズの判定器より性能が悪い。むむ。ナイーブベイズの方に使っている素性をこっちにも持って来て試そう。

1個のLogistic Regressionあたり1万個の400次元のデータを使ってfitしていて、全体で37分。1個の学習はざっくり1〜2秒。

学習とか予測とかは解説を見れば書いてあるから特に難しいところはなかった。sklearn.linear_model.LogisticRegression — scikit-learn 0.14 documentation

ここを見ても書いていなくて重要な知識としては、この37分書けて作った学習器のデータを保存するのは joblib.dump(lr, 'filename') でOKということ。from sklearn.externals import joblib。


素性を追加したら、前回の実験では2000個のLRで共有されていた400次元のベクトルが、912次元 * 2000個 に増えてしまった。MacBook Airでは辛い。スパースな行列に変更。