gpt4 book ai didi

python - 由于尺寸不同,无法在 scikit-learn 中使用 FeatureUnion

转载 作者:太空狗 更新时间:2023-10-29 17:49:22 24 4
gpt4 key购买 nike

我正在尝试使用 FeatureUnion 从数据结构中提取不同的特征,但由于维度不同而失败:ValueError: blocks[0,:] has incompatible row dimensions


实现

我的 FeatureUnion 是按以下方式构建的:

    features = FeatureUnion([
('f1', Pipeline([
('get', GetItemTransformer('f1')),
('transform', vectorizer_f1)
])),
('f2', Pipeline([
('get', GetItemTransformer('f2')),
('transform', vectorizer_f1)
]))
])

GetItemTransformer 用于从同一结构中获取数据的不同部分。描述了这个想法here在 scikit-learn 问题跟踪器中。

结构本身存储为 {'f1': data_f1, 'f2': data_f2} 其中 data_f1 是具有不同长度的不同列表。


问题

由于 Y 向量与数据字段不同,我假设发生了错误,但我如何缩放向量以适应这两种情况?

最佳答案

这是对我有用的:

class ArrayCaster(BaseEstimator, TransformerMixin):
def fit(self, x, y=None):
return self

def transform(self, data):
print data.shape
print np.transpose(np.matrix(data)).shape
return np.transpose(np.matrix(data))

FeatureUnion([('text', Pipeline([
('selector', ItemSelector(key='text')),
('vect', CountVectorizer(ngram_range=(1,1), binary=True, min_df=3)),
('tfidf', TfidfTransformer())
])
),

('other data', Pipeline([
('selector', ItemSelector(key='has_foriegn_char')),
('caster', ArrayCaster())
])
)])

关于python - 由于尺寸不同,无法在 scikit-learn 中使用 FeatureUnion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25795511/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com