我正在尝试建立一个模型来解决回归任务。
简化后,数据如下所示:
7.16, A 1, B 4, C 15, D 3
8.21, C 3, D 2, G 7, M 4, Y 9
1.85, D 3, N 1, L 1
第一列是一个标签,随后的列是一个类和相应的编号。
例如,第一行表明有一个A,四个B,十五个C和三个D - 这样的配置给我们 7.16。
我的主要问题:
如何表示我的数据以便拟合随机森林回归模型?
我的想法:
找出类的整个列表(有 26 个字母,但我有更多的类)并将所有未知类的零放入每个记录中。
Vector.sparse()在这里可能会有所帮助,因为它可以减少所需的内存量。找出类的整个列表,对应一个从 0 开始的数字,并将每条记录转换为一个向量(即第一个看起来):0 1 1 4 2 15 3 3。然后每列被视为一个单独的特征,但是在这种情况下,我必须指定我的一些特征是分类的,而这对于 Spark 是不可能的,因为不同的记录具有不同的长度(在 Spark 中,我必须提供特征列,这些特征与类的数量是分类的。在示例中将是一张地图(0 -> 26, 2 -> 26, 4 -> 26) - 就像每第二列是一个有 26 个类别的类)。
可以构建 A:1、B:4、C:15、D:3 等特征,并将它们全部视为分类。或者将决策负担(分类与连续)转移到 Spark 本身。