Python 如何保存sklearn管道/功能转换器
我有一个管道只包含一个功能联合,它有三组不同的功能,包括tfidf:Python 如何保存sklearn管道/功能转换器,python,nlp,scikit-learn,Python,Nlp,Scikit Learn,我有一个管道只包含一个功能联合,它有三组不同的功能,包括tfidf: A_vec = AVectorizer() B_vec = BVectorizer() tfidf_vec = TfidfVectorizer(ngram_range=(1,2), analyzer='word', binary=False, stop_words=stopWords, min_df=0.01, use_idf=True) all_features = FeatureUnion([('A_feature', A
A_vec = AVectorizer()
B_vec = BVectorizer()
tfidf_vec = TfidfVectorizer(ngram_range=(1,2), analyzer='word', binary=False, stop_words=stopWords, min_df=0.01, use_idf=True)
all_features = FeatureUnion([('A_feature', A_vec), ('V_feature', B_vec), ('tfidf_feature', tfidf_vec)])
pipeline = Pipeline([('all_feature', all_features)])
我想为我的测试数据保存这个流水线特征转换器(我正在使用LibSVM进行分类),这就是我所尝试的:
- 我使用了joblib.dump来保存这个管道,但是它生成了太多的.npy文件,所以我不得不停止编写过程。这是一次相当愚蠢的尝试
- 我保存了tfidf_vec.词汇表,因此 tfidf_vec2=TfidfVectorizer(ngram_range=(1,3),analyzer='word',binary=False,stop_words=stopWords,min_df=0.01,use_idf=True,词汇=pickle.load(打开(“../vocab.pkl”,“rb”)) feat_测试=管道2.转换(X_测试)
有没有更简单的方法来实现这一点?谢谢!我会使用第一个选项中的joblib.dump。它会生成多少个*.npy文件?有很多*.npy文件有什么问题?不清楚您想要实现什么以及面临什么问题。 据我所知,你试过这个 我使用了joblib.dump来保存这个管道,但是它生成了太多的.npy文件,所以我不得不停止编写过程。这是一个相当愚蠢的尝试 由于这并不能让您满意,您尝试了其他一些选择。如果您只想生成一个文件,您可以这样做:
joblib.dump(pipeline, 'filename.pkl', compress = 1)
另外,我强烈建议您下次插入一个最低可行的示例