问题标签 [apache-spark-ml]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - 如何从 Spark ML 随机森林中获取类对应的概率
我一直在使用 org.apache.spark.ml.Pipeline 来完成机器学习任务。了解实际概率而不仅仅是预测的标签尤其重要,而且我很难得到它。在这里,我正在使用随机森林进行二元分类任务。类标签是“是”和“否”。我想输出标签 "Yes" 的概率。概率作为管道输出存储在 DenseVector 中,例如 [0.69, 0.31],但我不知道哪个对应于“是”(0.69 还是 0.31?)。我想应该有办法从 labelIndexer 中检索它?
这是我训练模型的任务代码
然后我将加载管道并对新数据进行预测,这是代码片段
关于 RF 的概率和标签的参考:http: //spark.apache.org/docs/latest/ml-classification-regression.html#random-forests
scala - 减少 Apache Spark 作业/应用程序的运行时间
我们正在尝试实现一个简单的 spark 作业,它读取 CSV 文件(1 行数据)并使用预构建的随机森林模型对象进行预测。这项工作不包括任何数据预处理或数据操作。
我们以独立模式运行 spark,应用程序在本地运行。配置如下: RAM:8GB 内存:40GB 内核数:2 Spark 版本:1.5.2 Scala 版本:2.10.5 输入文件大小:1KB(1行数据) 模型文件大小:1,595 KB(400棵树)随机森林)
目前,spark-submit 中的实现大约需要 13 秒。然而,运行时间是这个应用程序的一个巨大问题,因此
有没有办法优化代码以将运行时间缩短到 1 或 2 秒?(高优先级)
我们注意到实际代码的执行大约需要 7-8 秒,而启动和设置上下文大约需要 5-6 秒,所以有没有办法在我们运行 spark-submit 时保持 spark 上下文运行。
这是应用程序代码
apache-spark - Spark 线性回归特征哈希
我正在尝试使用 Spark 的 LinearRegressionWithSGD 来按国家和设备预测商品的价格。在查看了 Spark MLLib 的特征提取部分之后,我有点不清楚我应该如何散列这些特征。一个示例记录是:
我尝试了几种散列技术(例如 MurmurHash),但它们似乎都获得了垃圾权重(例如 NAN、PositiveInfinity 等)或趋向于 10^200+ 的权重。有没有人在 Spark MLLib 中成功散列标记的特征?
apache-spark - 是否可以在 Spark 1.6 中保存 GBTClassifier?
我已经在 Spark 1.6 中使用 Pipeline 抽象训练了一个 GBTClassifier,我对如何保存它有点困惑。
如果我做:
我得到:
如果我做:
我得到:
我将测试这个解决方案,但想知道它是否可以通过其他方式解决。 Spark ML Pipeline api保存不起作用
apache-spark - 带字符串的 Spark VectorAssembler 转换器
首先,让我们定义几个 Spark 数据帧dfString
,它们dfDouble
分别由以下各项strings
组成doubles
:
其次,我们准备一个由单个变压器组成的管道:
安装此管道dfDouble
将返回预期结果,其中所有列都连接成一个名为ft
. 但是pipeline.fit(dfString)
抛出
java.lang.IllegalArgumentException:不支持数据类型 StringType。
问题是:如何在保持管道框架内的同时获得与从双打中获得的字符串相同的结果?
请注意,这不是apache spark 数据框中的 Concatenate 列的副本,因为
我只想使用转换器进入管道框架
而且我不想使用
StringIndexer
变压器。
我正在使用 Spark 1.6。
apache-spark - 结合 VectorAssembler 和 HashingTF 转换器的 Spark 管道
让我们定义一个 Spark 管道,它将几列组合在一起,然后应用特征散列:
pipeline.fit(df)
用throws安装管道:
java.lang.IllegalArgumentException:要求失败:输入列必须是 ArrayType,但得到了 org.apache.spark.mllib.linalg.VectorUDT@f71b0bce
是否有变压器可以允许VectorAssembler
并HashingTF
能够一起工作?
apache-spark - 在 Spark UI 中,任务的状态为 GET RESULT 是什么意思?
我有一个 Spark 作业,它使用 Spark ML 的逻辑回归训练模型。在树聚合阶段的阶段详细信息页面下的 Spark UI 中,我看到一些状态为“GET RESULT”的任务。
这个状态是什么意思?是什么导致任务处于这种状态?
python - 将 OneHotEncoder 应用于 SparkMlib 中的几个分类列
我有几个分类特征,并希望使用OneHotEncoder
. 但是,当我尝试应用 时StringIndexer
,出现错误:
python - Spark将数据帧列转换为StandardScaler()的密集向量“列必须是org.apache.spark.ml.linalg.VectorUDT类型”
我对 Spark 很陌生,我正在尝试将 StandardScaler() 应用于 DataFrame 中的列。
问题是这样应用它会给我一个错误:
requirement failed: Input column DF_column must be a vector column.
我尝试使用 UDF 但仍然无法正常工作。
我做了 LIBSVM 的示例,但这很容易,因为 TXT 文件将特征加载为向量。
scala - 在 spark 中进行特征选择后,使测试数据的特征与训练数据相同
我正在研究 Scala。我有一个大问题,ChiSqSelector 似乎成功地减少了维度,但我无法确定哪些特征被减少了,哪些特征被保留了。我怎么知道减少了哪些功能?
PS:当我想让测试数据与特征选择的训练数据相同时,我发现我不知道如何在 scala 中做到这一点。