我有一个Scikit学习管道,其中包括一个要素联合
None
要素联合中的两个过程中的每个过程都是我自己编写的类。其中第一个是基于Gensim Doc2Vec模型的自写矢量化程序。完整代码here
如果我正确理解功能部件联合文档,它将并行运行每个步骤,并将输出向量连接到单个向量中,该向量将传递到下一步(在本例中为CLF管道)。
我编写了每个类以返回单个numpy数组,但是以上代码触发了错误。
states = []
for (i1, i2) in permutations((0,1,2), 2):
for n1 in range(4):
for n2 in range(4-n1):
states.append((None,)*n1 + (i1,) + (None,)*n2 + (i2,) + (None,)*(3-n1-n2))
如果我正确理解了错误(?),则表明Doc2vec类未输出适当的功能?
Doc2vec类输出单个numpy数组,其中每个输入的文本序列包含100个矢量数组。我天真地假设它将把它简单地连接到I_counter输出,并且所有工作都愉快地进行。
有人可以强调我的逻辑错在哪里吗?
- 编辑,更多代码
from sklearn.pipeline import Pipeline, FeatureUnion
pipeline = Pipeline([
('feats', FeatureUnion([
#
('Vec', Doc2vec()),
('Counter', I_counter()),
])),
('clf', LogisticRegression()) # classifier
])