私はテキストを分類するためにsklearnのPipeline
を使用しています。この例ではsklearnのパイプラインで個々のステップをピクルする方法は?
Pipeline
、私はPipeline
のステップとしてTfidfVectorizer
とFeatureUnion
で包まれたいくつかのカスタム機能と分類器を持って、私は、トレーニングデータをフィットし、予測を行います。
from sklearn.pipeline import FeatureUnion, Pipeline
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.svm import LinearSVC
X = ['I am a sentence', 'an example']
Y = [1, 2]
X_dev = ['another sentence']
# classifier
LinearSVC1 = LinearSVC(tol=1e-4, C = 0.10000000000000001)
pipeline = Pipeline([
('features', FeatureUnion([
('tfidf', TfidfVectorizer(ngram_range=(1, 3), max_features= 4000)),
('custom_features', CustomFeatures())])),
('clf', LinearSVC1),
])
pipeline.fit(X, Y)
y_pred = pipeline.predict(X_dev)
# etc.
私がする必要がありますTfidfVectorizer
のステップをpickleし、custom_features
をunpickledのままにしておきます。なぜなら私はまだ実験をしているからです。この考え方は、tfidfステップを酸洗してパイプラインを速くすることです。
私はPipeline
で全体を漬け込むことができると知っていますが、joblib.dump
で個々のステップをどのようにピケットするのですか?
にはどうすればパイプラインの中からそれをロードしていますか? –
私は答えようとしました。 – joeln
このような便利な機能が存在しないことは、ほとんど信じられないほどです。 –