问题描述
我是Spark / pyspark的新手,可能对RFormula对象功能有误解。它的源代码很难被察觉。
根据示例,单独使用RFormula肯定会在调用.fit()
和.transform()
方法时进行线性估计。
但是,当它在Pipeline()
内部不适合使用时,它似乎只是显示因变量的一种简洁方法,并且应在应用“ ML”方法之前对数据进行哪些预转换(无需进行线性模型估算)。
问题是-由于RFormula属于pyspark的ml.feature
模块-是否有可能将其用作管道的第一阶段,以取代笨拙的VectorAssembler()和StringIndexer()? (最后对于为定性数据(例如鸢尾花的花朵)创建ID /索引至关重要。
当我尝试将两个模型与Fischer的Iris Iris.csv
数据集一起使用时,
第一个是RFormula("Series ~ . -Id")
和DecisionTreeClassifier()
的管道,
第二个是VectorAssembler(<input-Cols>,"features")
,StringIndexer("Species","indexedLabel")
和DecisionTreeClassifier("indexedLabel","features")
的管道,
在.RowPredictions
列中获得的结果高度依赖于所做的确切操作,
完全相同。
发生这种情况是因为RFormula实际上没有在此处将列映射到决策树估计器,而不计算任何内容吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)