質問: 現在Pythonのsklearnを用いて、機械学習を行っています。 モデルを作成し、そのモデルから予測をすることはできています。 そこで質問なのですが、このモデルを再度学習したい場合そのモデルを用いて 追加学習をすることはできるのでしょうか。 もしくは、以前学習に使用したデータを用いなければならないのでしょうか。 基本的な質問かもしれませんがよろしくお願いいたします。
回答: オンライン学習(またはインクリメンタル学習)と呼ばれる機能をscikit-learnのいくつかのモデルは実装しています。 オンライン学習を使えば、その都度追加の学習データで追加学習をすることができます。 scikit-learnの分類モデルにおいて、オンライン学習をサポートしているアルゴリズムは以下です: * sklearn.naive_bayes.MultinomialNB * sklearn.naive_bayes.BernoulliNB * sklearn.linear_model.Perceptron * sklearn.linear_model.SGDClassifier * sklearn.linear_model.PassiveAggressiveClassifier 追加学習するためには、fitメソッドを呼び出すのと同じ要領で `partial_fit` メソッドを呼び出してください。 オンライン学習をサポートしていない機械学習アルゴリズムの場合は、前回訓練に使ったデータに追加のデータを加えた一つの巨大な訓練データを使って、`fit`メソッドによって一から訓練し直すことになります。