5

scikit-learnを使用してテキストドキュメントをクラスター化しています。私はそれを行うのを助けるためにクラスCountVectorizer、TfidfTransformerおよびMiniBatchKMeansを使用しています。新しいテキストドキュメントは常にシステムに追加されます。つまり、テキストを変換してクラスターを予測するには、上記のクラスを使用する必要があります。私の質問は、データをディスクにどのように保存する必要があるかということです。ベクトル化、トランスフォーマー、およびkmeansオブジェクトを単純にピクルス化する必要がありますか?データを保存するだけでいいですか?もしそうなら、どうすればそれをベクトライザー、トランスフォーマー、kmeansオブジェクトに戻すことができますか?

どんな助けでも大歓迎です

4

2 に答える 2

6

それはあなたが何をしたいかによります。

トレーニングセットでいくつかの固定クラスターセンターを見つけて、後でそれらを再利用して新しいデータのクラスター割り当てを計算し、モデルを選択する(または、ベクトライザーと他のモデルコンストラクターパラメーターとクラスターセンターの語彙を保存する)場合位置)は大丈夫です。

新しいデータでクラスタリングを行う場合は、新しいデータと古いデータの和集合を使用してパイプライン全体を再トレーニングし、ベクトライザーの語彙が新しいデータの新しい機能(ディメンション)を構築できるようにすることができます。単語を作成し、クラスタリングアルゴリズムで、完全なデータセットの構造によりよく一致するクラスターセンターを見つけます。

将来的にはハッシュベクトライザーを提供することに注意してください(たとえば、最初のビルディングブロックとしてハッシュトランスフォーマーに関するこのプルリクエストを参照)。したがって、語彙を保存する必要はなくなります(ただし、「意味」を内省する機能が失われます。 "フィーチャー寸法の)。

モデルのピクルス化とパラメーターの独自の表現の使用については、前の質問でこの部分に回答しました: 永続的なTf-Idfデータ

于 2012-06-22T14:31:16.147 に答える
4

ええ、sk-learnの一般的な答えは漬けて祈る ことだと思います。

実装の詳細に依存しない文書化されたシリアル化形式を使用する場合と比較して、これは非常に脆弱であるように思われます。しかし、おそらく彼らはこれを知っていて、クラスに後方互換性のない変更を加えないでしょうか?

于 2012-06-21T19:21:07.160 に答える