LabelBinarizer()永远需要

时间:2013-11-22 23:18:48

标签: scikit-learn

尝试为大型数据集进行多标签分类。我有大约4000个独特的标签,所以当我尝试使用LabelBinarizer().fit(yTuple)/转换它只需要永远。基于标签的数量和行数(600万行)是正常还是我做错了什么?

笔记本电脑配置:Mac,i5四核,16 GB RAM,剩余足够的硬盘空间(约250 GB免费)

代码很简单但仍然粘贴在这里:

yTuple = [tuple(item.split(' ')) for item in getY(filepath)]
lb = LabelBinarizer().fit(yTuple)
Y_indicator = lb.transform(yTuple)

getY(filepath) - 这将一次返回一行的标签集。

2 个答案:

答案 0 :(得分:2)

标签阵列大约需要4000 * 6e6 * 8字节,即179GB。 scikit-learn不是开箱即用的大规模多类分类。

答案 1 :(得分:1)

如果你有足够的内存,你可能想尝试使用pandas get_dummies。