Scikit-Learn(sklearn)を使用して、1対すべてのロジスティック回帰分類器で遊んでいます。一度にすべてを実行するには遅すぎる大きなデータセットがあります。また、トレーニングが進むにつれて学習曲線を研究したいと思います。
バッチ勾配降下法を使用して、たとえば500サンプルのバッチで分類器をトレーニングしたいと思います。これを行うためにsklearnを使用する方法はありますか、それともsklearnを放棄して「自分でロール」する必要がありますか?
これは私がこれまでに持っているものです:
from sklearn.linear_model import LogisticRegression
from sklearn.multiclass import OneVsRestClassifier
# xs are subsets of my training data, ys are ground truth for same; I have more
# data available for further training and cross-validation:
xs.shape, ys.shape
# => ((500, 784), (500))
lr = OneVsRestClassifier(LogisticRegression())
lr.fit(xs, ys)
lr.predict(xs[0,:])
# => [ 1.]
ys[0]
# => 1.0
つまり、トレーニングサンプルを正しく識別します(はい、新しいデータで評価する方がよいと思います。これは簡単なスモークテストです)。
バッチ勾配降下法について:学習曲線を作成するまでには至っていませんfit
が、トレーニングデータの後続のサブセットで繰り返し実行することはできますか?または、バッチでトレーニングする他の機能はありますか?ドキュメントとグーグルはこの問題についてかなり沈黙している。ありがとう!