apache-spark-ml相关内容

如何使用 spark-ml 处理分类特征?

如何使用 spark-ml 而不是 spark-mllib 处理分类数据? 认为文档不是很清楚,似乎分类器例如RandomForestClassifier,LogisticRegression,有一个featuresCol参数,指定DataFrame中特征列的名称,和一个 labelCol 参数,它指定 DataFrame 中标记类的列的名称. 显然我想在我的预测中使用多个特征,所以我 ..

在 PySpark 中编码和组装多个功能

我有一个 Python 类,用于在 Spark 中加载和处理一些数据.在我需要做的各种事情中,我正在生成一个从 Spark 数据帧中的各个列派生的虚拟变量列表.我的问题是我不确定如何正确定义用户定义的函数来完成我需要的功能. 我确实目前有一个方法,当映射到底层数据帧 RDD 时,解决了一半的问题(请记住,这是一个更大的 data_processor 类中的方法): def build_fe ..

Spark Scala:如何将 Dataframe[vector] 转换为 DataFrame[f1:Double, ..., fn: Double)]

我刚刚使用 Standard Scaler 为 ML 应用程序规范了我的功能.选择缩放特征后,我想将其转换回双精度数据帧,尽管我的向量的长度是任意的.我知道如何使用 来针对特定的 3 个功能执行此操作 myDF.map{case Row(v: Vector) =>(v(0), v(1), v(2))}.toDF("f1", "f2", "f3") 但不适用于任意数量的特征.有没有简单的方法可 ..
发布时间:2021-11-12 05:26:15 其他开发

如何在 PySpark ML 中找到向量的 argmax

我的模型输出了一个 DenseVector 列,我想找到 argmax.本页建议这个函数应该可用,但我不确定语法应该是什么. 是df.select("mycolumn").argmax()吗? 解决方案 我在 python 中找不到 argmax 操作的文档.但是你可以通过将它们转换为数组来实现 对于 pyspark 3.0.0 from pyspark.ml.functio ..
发布时间:2021-06-25 18:32:53 其他开发

SparkML 交叉验证是否仅适用于“标签"?柱子?

当我使用数据集运行交叉验证 example在名为“label"的列not中有标签我在 Spark 3.1.1 上观察到 IllegalArgumentException.为什么? 下面的代码已被修改为重命名“标签"列到“目标"中并且 labelCol 已设置为“目标"对于回归模型.此代码导致异常,同时将所有内容保留在“标签"处.工作正常. from pyspark.ml import Pi ..

pyspark 提取 ROC 曲线?

有没有办法从 pyspark 中的 Spark ML 获取 ROC 曲线上的点?在文档中,我看到了 Scala 而不是 python 的示例:https://spark.apache.org/docs/2.1.0/mllib-evaluation-metrics.html 是吗?我当然可以想出实现它的方法,但我不得不想象如果有一个预先构建的函数它会更快.我正在处理 300 万个分数和几十个模 ..
发布时间:2021-06-24 20:34:46 其他开发

使用 Python 序列化自定义转换器以在 Pyspark ML 管道中使用

我在 在 PySpark 中创建自定义转换器的评论部分中发现了相同的讨论ML,但没有明确的答案.还有一个未解决的 JIRA 对应于:https://issues.apache.org/jira/browse/SPARK-17025. 鉴于 Pyspark ML 管道没有提供用于保存用 Python 编写的自定义转换器的选项,还有哪些其他选项可以完成它?如何在返回兼容 java 对象的 pyt ..
发布时间:2021-06-24 20:33:32 其他开发

pyspark-将一种热编码后获得的稀疏向量转换为列

我正在使用apache Spark ML lib通过一种热编码来处理分类功能.编写下面的代码后,我得到一个向量 c_idx_vec 作为一种热编码的输出.我确实了解如何解释此输出向量,但无法弄清楚如何将该向量转换为列,以便获得新的转换后的数据帧.例如,以该数据集为例: >>>fd = spark.createDataFrame([(1.0,"a"),(1.5,"a"),(10.0,"b"),(3 ..

如何在CrossValidatorModel中访问每个折页的计算指标

如何从 spark.ml 中的 CrossValidatorModel 获取每个折叠的计算指标?我知道我可以使用 model.avgMetrics 来获取平均指标,但是是否有可能获得每折的原始结果,例如.结果的差异? 我正在使用Spark 2.0.0. 解决方案 研究 这是在scala中,但是思路很清晰. 看看此答案,它概述了结果每折.希望这会有所帮助. ..
发布时间:2021-04-08 20:23:43 其他开发

针对每个分区的火花训练ml模型.这样,每个数据帧分区都会有一个经过训练的模型

如何使用Scala在Spark中对每个分区进行并行模型训练?此处给出的解决方案在Pyspark中.我正在寻找Scala中的解决方案.使用foreachPartition在Spark中为每个分区构建一个ML模型? 解决方案 使用分区col获取不同的分区 创建一个包含100个线程的线程池 为每个线程创建将来的对象并运行 示例代码可能如下- //获取ExecutorServiceva ..
发布时间:2021-04-08 20:16:17 其他开发

Spark ML梯度增强树未使用所有节点

我正在使用 pyspark 中使用Spark ML GBTClassifier 在AWS EMR集群上具有约40万行和约9000列的数据帧上训练二进制分类模型.我正在将其与我当前的解决方案进行比较,当前的解决方案是在巨大的EC2上运行XGBoost,该EC2可以适合内存中的整个数据帧. 我希望我可以在Spark中更快地训练(并给新的观察结果评分),因为它可以是分布式的/并行的.但是,当观察我 ..
发布时间:2021-04-08 19:57:59 Python

如何将向量列拆分为两列?

我使用PySpark. Spark ML的“随机森林"输出DataFrame具有“概率"列,该列是具有两个值的向量.我只想在输出DataFrame中添加两列"prob1"和"prob2",它们对应于向量中的第一个和第二个值. 我尝试了以下操作: output2 = output.withColumn('prob1',output.map(lambda r:r ['probabili ..
发布时间:2021-04-08 19:50:43 其他开发