【发布时间】:2016-07-15 13:44:00
【问题描述】:
我正在使用来自 sklearn 的Pipeline 对文本进行分类。
在这个示例Pipeline 中,我有一个TfidfVectorizer 和一些用FeatureUnion 和一个分类器作为Pipeline 步骤包装的自定义功能,然后我拟合训练数据并进行预测:
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 步骤并保留custom_features 未腌制,因为我仍在使用它们进行实验。这个想法是通过酸洗 tfidf 步骤使管道更快。
我知道我可以用joblib.dump 腌制整个Pipeline,但是如何腌制各个步骤?
【问题讨论】:
标签: python machine-learning scikit-learn classification pipeline