试图对庞大的数据集进行多标签分类。我有大约4000个独特的标签,所以当我尝试使用LabelBinarizer().fit(yTuple)/transform时,它只需要很长时间。根据标签的数量和行数(600万行),这是正常的还是我做错了什么?
笔记本电脑配置:Mac,i5四核,16GB RAM,剩余硬盘空间足够(约250GB可用)
代码很简单,但仍然粘贴在这里:
yTuple = [tuple(item.split(' ')) for item in getY(filepath)]
lb = LabelBinarizer().fit(yTuple)
Y_indicator = lb.transform(yTuple)
getY(filepath)-这将一次返回一行的标签集。
标签数组大约需要4000*6e6*8个字节,即179GB。scikit-learn无法实现如此大规模的多类分类。
如果您有足够的内存,您可能想尝试使用pandas get_dummies。