如何从scikit移植功能管道学习V0.21至V0.24



我正试图将在scikit learn V0.21中训练的sklearn特征管道移植到scikit learning V0.24,因为我没有原始特征数据来再次训练管道。如果我使用新的数据,特征维度和位置可能与下面的模型不一致,因为我在管道中有DictVectorizer。

我曾尝试使用picklejoblib在V0.21中序列化管道,然后在V0.24中反序列化它。不幸的是,在这两种情况下,代码在V0.24中加载时都引发了ModuleNotFoundError: No module named 'sklearn.feature_extraction.dict_vectorizer'错误。

我分别使用V0.21和V0.24创建了具有相同代码的管道。打印出来时,它们显示出一些细微的差异。

在V0.21 中

Pipeline(memory=None,
steps=[('selector', ItemSelector(key='hsd_feature_map')),
('dv1',
DictVectorizer(dtype=<class 'numpy.float64'>, separator='=',
sort=True, sparse=False)),
('tfidf',
TfidfTransformer(norm='l2', smooth_idf=True, sublinear_tf=True,
use_idf=True)),
('max', MaxAbsScaler(copy=True))],
verbose=False)

在V0.24 中

Pipeline(steps=[('selector', ItemSelector(key='hsd_feature_map')),
('dv1', DictVectorizer(sparse=False)),
('tfidf', TfidfTransformer(sublinear_tf=True)),
('max', MaxAbsScaler())])

我想知道是否有任何方法可以将特征管道或其参数从scikit学习V0.21转移到V0.24。

从sklearn版本0.22.XDictVectorizer导入已更改来自

sklearn/feature_extraction/dict_vectorizer.py

sklearn/feature_extraction/_dict_vectorizer.py

我认为你可以根据这个答案覆盖DictVectorizer导入

最新更新