Java Spark ML(Dataframe API)手动分类分配
我正在使用Spark的Java API来运行随机林,我在设置混合了分类变量和连续变量的数据时遇到了问题。
我有一个数据集,我正在从一个包含字符串,双打等等的镶木地板文件中加载...我想将其转换为可用于随机森林的数据集。
我知道我需要将数据转换为矢量(通过像VectorAssembler这样的东西),但问题是分类变量。我不知道如何手动将矢量分配到分类变量中。我不想使用一个热门编码(因为我有一些30多个类别的变量),所以我使用StringIndexer来创建进入矢量的分类列。
我遇到的关键问题是我不能使用VectorIndexer()的setMaxCategories()选项然后设置分类变量,因为我有一些列是双倍的,具有少于30个唯一值。我的分类变量也有不同程度的不同级别。
我基本上想要一种方法来手动分配“哪些”列(按索引或者然而来说)将是分类的,我找不到任何方法来做到这一点。我确信我在这里缺少一些课程或方法。
我想出了一个“愚蠢”的方法,但必须有一个更好的方法。 “愚蠢”的方式是:
必须有更好的方法来做到这一点,......任何人都有任何想法吗?