问题标签 [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.

0 投票
2 回答
1998 浏览

apache-spark - 使用训练、测试和验证集进行 Spark 交叉验证

我想使用 RandomSplits 在 Spark 中执行两个交叉验证过程,例如

  1. CV_global:通过将数据分成 90% 的训练集和 10% 的测试集

1.1。CV_grid:对一半训练集进行网格搜索,即 45% 的数据。

1.2. 拟合模型:在训练集 (90%) 上使用来自 CV_grid 的最佳设置。

1.3测试模型:在测试集上(10%)

  1. 报告每 10 倍的平均指标和全局指标。

问题是我只在整个训练集上使用 CV 和网格搜索找到示例。

如何从 CV_grid 获取性能最佳模型的参数?

如何在没有网格搜索的情况下进行 CV,但获取每折叠的统计信息?例如 sklearn.cross_validation.cross_val_score

0 投票
4 回答
14421 浏览

apache-spark - Pyspark 和 PCA:如何提取此 PCA 的特征向量?我如何计算他们解释的方差有多大?

我正在使用 pyspark(使用库)降低模型的维数Spark DataFrame,如下所示:PCAspark ml

其中data是 a Spark DataFrame,其中一列标记featuresDenseVector3 维:

拟合后,我转换数据:

如何提取此 PCA 的特征向量?我如何计算他们解释的方差有多大?

0 投票
1 回答
2268 浏览

apache-spark - Spark 不从 netlib 加载 ARPACK 或 BLAS

我正在为我的数据计算 SVD。但是每当我使用spark-submit日志文件状态提交 Spark 应用程序时:

我使用 with -Pnetlib-lgplflag 构建了 Spark,并且在创建 jar 文件时还在我的 sbt 文件中包含了 netlib 依赖项:

GCC 和 Gfortran 版本是gcc version 4.8.0 (GCC). 我还安装了 BLAS、LAPACK 和 ATLAS,并按照 netlib 站点上的说明进行操作:https ://github.com/fommil/netlib-java

spark-shell我导入 as 时import com.github.fommil.netlib._,没有任何迹象表明它没有被导入。

我已经尝试调试这个问题一段时间了,但我没有想法。有人好心帮我解决这个问题。

0 投票
2 回答
18614 浏览

python - 遇到缺少的功能时,Apache Spark 抛出 NullPointerException

在对特征中的字符串列进行索引时,我对 PySpark 有一个奇怪的问题。这是我的 tmp.csv 文件:

我有一个“x0”缺失值。首先,我使用 pyspark_csv 将 csv 文件中的功能读取到 DataFrame 中:https ://github.com/seahboonsiew/pyspark-csv 然后使用 StringIndexer 索引 x0:

当调用“ind.collect()”时,Spark 会抛出 java.lang.NullPointerException。对于完整的数据集,一切都很好,例如,对于“x1”。

有谁知道是什么原因造成的以及如何解决?

提前致谢!

谢尔盖

更新:

我使用 Spark 1.5.1。确切的错误:

我试图在不读取 csv 文件的情况下创建相同的 DataFrame,

它给出了同样的错误。一个有点不同的例子效果很好,

更新 2:

我刚刚在 Scala 中发现了同样的问题,所以我猜这是 Spark 错误,而不仅仅是 PySpark。特别是数据框

索引“x0”功能时抛出 java.lang.NullPointerException。此外,在以下数据框中索引“x0”时

我有'java.lang.UnsupportedOperationException:不支持Any类型的架构',这是由于第5个向量中缺少'num'值引起的。如果将其替换为数字,则即使第一个向量中存在缺失值,一切都可以正常工作。

我也尝试过旧版本的 Spark (1.4.1),结果是一样的。

0 投票
1 回答
6632 浏览

python - 保留索引字符串对应的火花字符串索引器

Spark 的 StringIndexer 非常有用,但通常需要检索生成的索引值与原始字符串之间的对应关系,并且似乎应该有一种内置的方法来完成此操作。我将使用Spark 文档中的这个简单示例进行说明:

这个简化的案例给了我们:

一切都很好,但对于许多用例,我想知道我的原始字符串和索引标签之间的映射。我能想到的最简单的方法是这样的:

如果需要,我可以将其结果存储为字典或类似内容:

我的问题是:由于这是一项常见的任务,而且我猜测(但当然可能是错误的)字符串索引器无论如何都会以某种方式存储此映射,有没有办法更简单地完成上述任务?

我的解决方案或多或少是直截了当的,但是对于大型数据结构,这涉及到一堆额外的计算(也许)我可以避免。想法?

0 投票
1 回答
292 浏览

apache-spark - Spark MLLIb 的逻辑回归中的 predict() 在哪里实现?

有人可以指出我在 spark mllib 的 LogisticRegressionModel 中实现 predict() 吗?我可以在 LogisticRegressionModel 类中找到一个 predictPoint(),但是 predict() 在哪里?

0 投票
1 回答
2020 浏览

scala - 为什么 Spark ML NaiveBayes 输出的标签与训练数据不同?

我使用Apache Spark ML (版本 1.5.1)中的NaiveBayes分类器来预测一些文本类别。但是,分类器输出的标签与我的训练集中的标签不同。我做错了吗?

这是一个可以粘贴到例如 Zeppelin 笔记本中的小示例:

小程序的输出:

预测标签集 {0.0, 1.0, 2.0} 与我的训练集标签 {100.0, 200.0, 300.0} 不相交。

问题:如何将这些预测标签映射回我的原始训练集标签?

额外的问题:为什么训练集标签必须是双打的,而任何其他类型都可以像标签一样工作?似乎没有必要。

0 投票
1 回答
1633 浏览

python - 在 pyspark 中转换 ALS 的输入数据

我推荐的输入数据如下所示:

其格式为(user_id, item_id, score).

如果我理解正确,spark 中的 ALS 必须在训练前将user_id,转换为整数?item_id如果是这样,我现在能想到的唯一解决方案是使用字典并将每个user_id和映射item_id到整数

但我想知道是否还有其他优雅的方法可以做到这一点?谢谢!

0 投票
1 回答
425 浏览

scala - 具有缩放系数的 Spark 返回 (LogisticRegression) 模型

我正在测试LogisticRegression综合生成的数据的性能。我输入的权重是

没有拦截和三个功能。1000在假设每个随机正态分布对综合生成的数据点进行训练后,LogisticRegression我获得的 Spark 模型的权重为

我可以看到每个权重都按原始值接近“3”的因子进行缩放。我无法猜测这背后的原因。代码很简单

如果有人能阐明这里的可疑之处,我将不胜感激。

亲切的问候, Nikhil

0 投票
3 回答
10653 浏览

scala - Spark、Scala、DataFrame:创建特征向量

我有一个DataFrame如下所示:

不同类别的数量是 10,我想为每个类别创建一个特征向量,userID并用零填充缺失的类别。

所以输出会是这样的:

这只是一个说明性示例,实际上我有大约 200,000 个唯一用户 ID 和 300 个唯一类别。

创建功能的最有效方法是DataFrame什么?