问题标签 [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.
apache-spark - 使用训练、测试和验证集进行 Spark 交叉验证
我想使用 RandomSplits 在 Spark 中执行两个交叉验证过程,例如
- CV_global:通过将数据分成 90% 的训练集和 10% 的测试集
1.1。CV_grid:对一半训练集进行网格搜索,即 45% 的数据。
1.2. 拟合模型:在训练集 (90%) 上使用来自 CV_grid 的最佳设置。
1.3测试模型:在测试集上(10%)
- 报告每 10 倍的平均指标和全局指标。
问题是我只在整个训练集上使用 CV 和网格搜索找到示例。
如何从 CV_grid 获取性能最佳模型的参数?
如何在没有网格搜索的情况下进行 CV,但获取每折叠的统计信息?例如 sklearn.cross_validation.cross_val_score
apache-spark - Pyspark 和 PCA:如何提取此 PCA 的特征向量?我如何计算他们解释的方差有多大?
我正在使用 pyspark(使用库)降低模型的维数Spark DataFrame
,如下所示:PCA
spark
ml
其中data
是 a Spark DataFrame
,其中一列标记features
为DenseVector
3 维:
拟合后,我转换数据:
如何提取此 PCA 的特征向量?我如何计算他们解释的方差有多大?
apache-spark - Spark 不从 netlib 加载 ARPACK 或 BLAS
我正在为我的数据计算 SVD。但是每当我使用spark-submit
日志文件状态提交 Spark 应用程序时:
我使用 with -Pnetlib-lgpl
flag 构建了 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._
,没有任何迹象表明它没有被导入。
我已经尝试调试这个问题一段时间了,但我没有想法。有人好心帮我解决这个问题。
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),结果是一样的。
python - 保留索引字符串对应的火花字符串索引器
Spark 的 StringIndexer 非常有用,但通常需要检索生成的索引值与原始字符串之间的对应关系,并且似乎应该有一种内置的方法来完成此操作。我将使用Spark 文档中的这个简单示例进行说明:
这个简化的案例给了我们:
一切都很好,但对于许多用例,我想知道我的原始字符串和索引标签之间的映射。我能想到的最简单的方法是这样的:
如果需要,我可以将其结果存储为字典或类似内容:
我的问题是:由于这是一项常见的任务,而且我猜测(但当然可能是错误的)字符串索引器无论如何都会以某种方式存储此映射,有没有办法更简单地完成上述任务?
我的解决方案或多或少是直截了当的,但是对于大型数据结构,这涉及到一堆额外的计算(也许)我可以避免。想法?
apache-spark - Spark MLLIb 的逻辑回归中的 predict() 在哪里实现?
有人可以指出我在 spark mllib 的 LogisticRegressionModel 中实现 predict() 吗?我可以在 LogisticRegressionModel 类中找到一个 predictPoint(),但是 predict() 在哪里?
scala - 为什么 Spark ML NaiveBayes 输出的标签与训练数据不同?
我使用Apache Spark ML (版本 1.5.1)中的NaiveBayes分类器来预测一些文本类别。但是,分类器输出的标签与我的训练集中的标签不同。我做错了吗?
这是一个可以粘贴到例如 Zeppelin 笔记本中的小示例:
小程序的输出:
预测标签集 {0.0, 1.0, 2.0} 与我的训练集标签 {100.0, 200.0, 300.0} 不相交。
问题:如何将这些预测标签映射回我的原始训练集标签?
额外的问题:为什么训练集标签必须是双打的,而任何其他类型都可以像标签一样工作?似乎没有必要。
python - 在 pyspark 中转换 ALS 的输入数据
我推荐的输入数据如下所示:
其格式为(user_id, item_id, score)
.
如果我理解正确,spark 中的 ALS 必须在训练前将user_id
,转换为整数?item_id
如果是这样,我现在能想到的唯一解决方案是使用字典并将每个user_id
和映射item_id
到整数
但我想知道是否还有其他优雅的方法可以做到这一点?谢谢!
scala - 具有缩放系数的 Spark 返回 (LogisticRegression) 模型
我正在测试LogisticRegression
综合生成的数据的性能。我输入的权重是
没有拦截和三个功能。1000
在假设每个随机正态分布对综合生成的数据点进行训练后,LogisticRegression
我获得的 Spark 模型的权重为
我可以看到每个权重都按原始值接近“3”的因子进行缩放。我无法猜测这背后的原因。代码很简单
如果有人能阐明这里的可疑之处,我将不胜感激。
亲切的问候, Nikhil
scala - Spark、Scala、DataFrame:创建特征向量
我有一个DataFrame
如下所示:
不同类别的数量是 10,我想为每个类别创建一个特征向量,userID
并用零填充缺失的类别。
所以输出会是这样的:
这只是一个说明性示例,实际上我有大约 200,000 个唯一用户 ID 和 300 个唯一类别。
创建功能的最有效方法是DataFrame
什么?