2016-04-07 7 views
2

私はSGDClassifierを使用してSklearnでいくつかの仕事をしている初心者で、ラベルを使って1文のテキストを分類しています。ここに私のパイプラインである(例えばハム/スパムメールを考える):Sklearnパイプラインのアウト・オブ・コア学習

clf = SGDClassifier(fit_intercept=True, loss='modified_huber', alpha=.0001, shuffle=True, 
         n_iter=15, n_jobs=-1, penalty='elasticnet') 
vectorizer = TfidfVectorizer(analyzer='char_wb', ngram_range=(3, 5), lowercase=True, stop_words=stopset, 
          use_idf=True, norm='l2') 
pipeline = Pipeline([ 
    ('mapper', vectorizer), 
    ('clf', clf), 
]) 

私は全体をメモリにトレーニングデータセットをロードすることを避けるためにpartial_fitの使用方法に精通しています(アウトオブコア学習)が、私の疑問は、 の後にの後に分類器が最初のトレーニングセットをメモリにロードできるかどうかです。

私のケースでは、トレーニング後にアルゴリズムが分類しなければならない各テキストは、非常に似た機能を持ち、唯一の違いがテキストのスペルミスである「相対的な」テキストをリンクしているとします。私はこれらの「相対的な」テキストを元の電子メールと同じラベルの下でクラシファイアの知識に自動的に追加して、アルゴリズムを回避する一般的なスペルミスが正しくラベル付けされるようにしたいと思います。

本質的に、私は更新可能な分類子が必要ですが、これはPythonでこれを行う最良の方法でしょうか?

答えて

0

あなたの質問を理解している方法では、すでにいくつかの初期設定で事前に訓練された分類子があります。新しい観測値について予測し、その観測値を追加したいと思います(実際にはこれらの観測のラベル)を使用してモデルをさらに訓練します。

私は実際には、これらの新しい観測値とpartial_fitを呼び出すだけで簡単に行うことができると考えました。文字列は付けられていません。 Thisは非常に良い例であり、あなたの目的に適応できるようです。

関連する問題