尝试为大型数据集进行多标签分类。我有大约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) - 这将一次返回一行的标签集。
答案 0 :(得分:2)
标签阵列大约需要4000 * 6e6 * 8字节,即179GB。 scikit-learn不是开箱即用的大规模多类分类。
答案 1 :(得分:1)
如果你有足够的内存,你可能想尝试使用pandas get_dummies。