二进制分类问题如何处理多标签分类特征?

时间:2019-11-20 05:50:11

标签: machine-learning data-science feature-extraction feature-engineering

我有类似的数据集:

   profile     category  target
0        1      [5, 10]       1
1        2          [1]       0
2        3   [23, 5000]       1
3        4  [700, 4500]       0

如何处理类别功能,此表可能还具有其他附加功能。一种热编码会导致占用过多空间,因为行数约为1000万。任何建议都会有所帮助。

2 个答案:

答案 0 :(得分:1)

我的想法是拆分此数组into new columns

这将导致以下数据框:

   profile     0    1  target
0        1     5    10       1
1        2     1             0
2        3     23   5000       1
3        4     700  4500       0

在下一步中,您可以调整它,以this为基础,将类别归为要素(如果配置文件具有此类别,则以1填充),这将导致以下数据框:

   profile     1  ...  5  ... 10 ... 23 target
0        1     0       1       0      0      1
1        2     1       0       0      0      0
2        3     0       0       0      1      1
3        4     0       0       0      0      0

您将把每个类别都作为一项功能,可以为您提供帮助(这类似于文本分类问题)。然后,您可以使用一些降低尺寸的技术,例如pca

通过这种方法,您会尊重类别的行为,并且以后可以通过一些数学技巧来减小维度。

答案 1 :(得分:0)

MultiLabelBinarizer 是针对此类问题的解决方案,该问题使稀疏输出的内存不足,您可以将其他特征转换为稀疏矩阵,而不是将所有特征组合到机器学习模型中。

source