我正在寻找一种方法,将PySpark数据帧中的所有String
类型的变量转换为分类变量,这样我就可以在数据帧上运行决策树。由于资源限制,我不能使用pandas,只能使用PySpark库。我已经确定VectorIndexer
是一个可能的解决方案,但是,我不知道如何转换所有String
类型的列,而{a1}表示这些列是可能的。在
有人能帮我解释一下怎么做吗?我想要这样的东西:
featureIndexer = VectorIndexer(inputCol=<list of input columns>, outputCol=<list of output columns>, maxCategories=10).fit(df)
或者让VectorIndexer
自己找出哪些需要向量化,文档似乎表明它可以做到这一点。在
提前谢谢。在
VectorIndexer
以向量类型的列作为输入,但是,听起来像是有一个包含字符串的列。在这种情况下,我建议使用StringIndexer
和{StringIndexer
将标签的字符串列转换为标签索引的列(双精度)。OneHotEncoder
将把这个列转换成表示每个类别的多个列,用作分类特性。在然后,所有这些特征可以用
VectorAssembler
组合成一个向量。我建议使用管道将所有阶段与分类器放在一起。在Here是不同可用特性转换的文档,以及它们如何工作的示例。在
相关问题 更多 >
编程相关推荐