如何使用 sparklyr 热编码/生成虚拟列

问题描述

我知道这里有很多与此类似的问题,但 1) 大多数解决方案依赖于已弃用的函数,例如 ml_create_dummy_variables 和 2) 其他解决方案不完整。

是否有一种函数方法可以轻松地将一个类变量热编码为 sparklyr 中的多个虚拟变量?

post 要求在 SparkR 中找到解决方案,顺便说一下,给出了一个 sparklyr 解决方案,该解决方案仅在给定列中的类别唯一时才有效,这使其毫无意义。

这个solution,结果是每个类别都有一个假人,而不是一个假人(抓住第一个类别)。这也是我偶然发现的解决方案(基于这个 post),它并没有削减它:

iris_sdf <- copy_to(sc,iris,overwrite = TRUE)

iris_sdf %>%
  ft_string_indexer(input_col = "Species",output_col = "species_num") %>%
  mutate(cat_num = species_num + 1) %>%
  ft_one_hot_encoder("species_num","species_dum") %>%
  ft_vector_assembler(c("species_dum")) 

我正在寻找一种解决方案,该解决方案将从 Species 数据集中获取 iris生成三列 - Species 中的每个类别(virginica、setosa 和 versicolor)。使用 R,fastDummies 包有我需要的东西,但我想知道如何在 sparklyr 中实现类似的功能

再一次,我会注意到 ml_create_dummy_variables(由这个 post 建议)产生了以下错误

Error in ml_create_dummy_variables(.,"species_num","species_dum") : Error in ml_create_dummy_variables(.,"species_dum") : 
  Could not find function "ml_create_dummy_variables"

注意:我使用的是 sparklyr_1.3.1

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...