我有一个带有分类值的大型数据集,并尝试使用DictVectorizer
对其进行编码。以下是我尝试过的代码片段。
dv = DictVectorizer(sparse=True)
_dicts = []
for line in fp:
_dict = create_dict_feature(line)
_dicts.append(_dict)
dv.fit_transform(_dicts)
但是,
MemoryError
出现在_dicts.append(_dict)
中。我想知道什么是解决这个问题的有效方法。 最佳答案
根据文档,fit_transform
可以迭代。如果内存问题来自列表的大小,请考虑使用生成器而不是list
,这将在迭代时一次生成您的dict
。
_dicts = (create_dict_feature(line) for line in fp)
dv = DictVectorizer(sparse=True)
dv.fit_transform(_dicts)
如果
fit_transform
像以前一样累加dict
或Mapping
,这将无济于事。关于python - 具有大型数据集的DictVectorizer,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39803650/