PySpark PCA:避免 NotConvergedException

2024-03-31

我试图通过 ml.linalg 方法使用 PCA 来减少广泛的数据集(51 个特征,约 1300 个个体),如下所示:

1)将我的列命名为一个列表:

features = indi_prep_df.select([c for c in indi_prep_df.columns if c not in{'indi_nbr','label'}]).columns

2)导入必要的库

from pyspark.ml.feature import PCA as PCAML
from pyspark.ml.linalg import Vector
from pyspark.ml.feature import VectorAssembler
from pyspark.ml.linalg import DenseVector

3)将特征折叠为 DenseVector

indi_feat = indi_prep_df.rdd.map(lambda x: (x[0], x[-1], DenseVector(x[1:-2]))).toDF(['indi_nbr','label','features'])

4)删除除了保留索引的功能之外的所有内容:

dftest = indi_feat.drop('indi_nbr','label')

5)实例化PCA对象

dfPCA = PCAML(k=3, inputCol="features", outputCol="pcafeats")

6)并尝试拟合模型

PCAout = dfPCA.fit(dftest)

但我的模型无法收敛(错误如下)。 我尝试过的事情: - 均值填充或零填充 NA 和 Null 值(视情况而定) - 减少特征数量(减少到25个,然后我改用SKlearn的PCA)

    Py4JJavaError: An error occurred while calling o2242.fit.
: breeze.linalg.NotConvergedException: 
    at breeze.linalg.svd$.breeze$linalg$svd$$doSVD_Double(svd.scala:110)
    at breeze.linalg.svd$Svd_DM_Impl$.apply(svd.scala:40)
    at breeze.linalg.svd$Svd_DM_Impl$.apply(svd.scala:39)
    at breeze.generic.UFunc$class.apply(UFunc.scala:48)
    at breeze.linalg.svd$.apply(svd.scala:23)
    at org.apache.spark.mllib.linalg.distributed.RowMatrix.computePrincipalComponentsAndExplainedVariance(RowMatrix.scala:389)
    at org.apache.spark.mllib.feature.PCA.fit(PCA.scala:48)
    at org.apache.spark.ml.feature.PCA.fit(PCA.scala:99)
    at org.apache.spark.ml.feature.PCA.fit(PCA.scala:70)

我的配置是 50 个执行器,每个执行器 6GB,所以我不认为这是资源不足的问题(而且我在这里没有看到任何有关资源的信息)。

我的输入因子是百分比、整数和 2 位小数浮点数的混合,全部为正数和序数。这会导致收敛困难吗?

当我将 PySpark DF 转换为 Pandas DF 后,SKLearn 方法的收敛速度很快,没有遇到任何问题。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PySpark PCA:避免 NotConvergedException 的相关文章

随机推荐

  • DebugView 的替代品?

    我在用着系统内部 http en wikipedia org wiki WinternalsDebugView 用于在测试过程中进行调试 记录 它非常好 不过我在想是否有更先进的工具 我正在寻找的功能 实时过滤器 记录所有内容 好吧 所有
  • Puppeteer:将循环结构转换为 JSON 您是否传递嵌套的 JSHandle?

    我正在尝试抓取一个一页网站 有多种选择组合会导致不同的搜索重定向 我在里面写了一个for循环page evaluate的回调函数来单击不同的选择并在每个按钮中进行单击搜索 但是 我收到错误 将循环结构转换为 JSON 您是否传递嵌套的 JS
  • Vim“较早”和“较晚”命令未按预期工作

    首先查看 Vim 中的时间旅行命令 即ea N s and lat N s 我以为这会很简单 但是 它并没有像预期的那样对我有用 现在我完全困惑了 这就是发生的事情 我启动了 Vim 并开始编写以下几行 say first line wri
  • Visual Studio 2022 中的解决方案资源管理器

    我刚刚安装了 Visual Studio 2022 professional 安装很顺利 没有失败 但是 当我尝试创建任何项目时 我得到这样的解决方案资源管理器 Webapplication1 0项目 并且它没有显示带有控制器和启动文件等的
  • 在 Symfony 2.3 项目上集成 Twitter Bootstrap 3.2

    我尝试将 Twitter Bootstrap 3 2 集成到我的 Symfony 2 3 项目中 刚刚找到 Bootstrap 3 0 的教程与 leafo lessphp 但这不再受支持 此外它不适用于 Bootstrap 3 2 我发现
  • 将 pandas 数据框列映射到字典

    我有一个数据框的案例 其中包含高基数的分类变量 许多唯一值 我想将该变量重新编码为一组值 最常见的值 并用一个包罗万象的类别 其他 替换所有其他值 举一个简单的例子 以下是应保持不变的两个值 top values apple orange
  • 是否可以撤销提交?

    假设我们有一个存储库和 5 个提交 commit 1 commit 2 commit 3 commit 4 commit 5 现在我意识到提交 4 和 5 是一个坏主意 我想完全删除提交 4 和 5 中提交的所有更改 该怎么做 git re
  • 在clojure中,如何将具有相同键的映射组合的多个映射合并到一个列表中?

    在 Clojure 中 我想将多个映射组合成一个映射 其中具有相同键的映射被组合成一个列表 例如 humor happy humor sad humor happy weather sunny 应该导致 weather sunny humo
  • 如何从资源文件夹中获取文件。 Spring框架

    我正在尝试解组我的 xml 文件 public Object convertFromXMLToObject String xmlfile throws IOException FileInputStream is null File fil
  • 分层架构中的实体框架

    最近我读了一篇文章 分层架构中的实体框架 http msdn microsoft com en us magazine cc700340 aspx 并且写道我们可以通过 WCF 将 EF 实体发送到客户端 但是在 Stackoverflow
  • 高效的 4x4 矩阵乘法(C 与汇编)

    我正在寻找一种更快 更棘手的方法来用 C 语言将两个 4x4 矩阵相乘 我目前的研究重点是具有 SIMD 扩展的 x86 64 汇编 到目前为止 我已经创建了一个比简单的 C 实现快大约 6 倍的函数 这超出了我对性能改进的预期 不幸的是
  • CSS flexbox 包装未调整大小以适应内容[重复]

    这个问题在这里已经有答案了 一个简化的 plunkr 来显示问题 https plnkr co edit mHTHLEumQ04tInFVAz3z p preview https plnkr co edit mHTHLEumQ04tInFV
  • GCP Cloud Run:无法创建服务

    我正在尝试将 Cloud run 与私有 GKE 集群结合使用 我使用以下命令创建了集群 gcloud beta container clusters create cluster name create subnetwork name c
  • 标准 ORMLite 方法中的 CursorWindowAllocationException

    我需要在数据库中保存一些对象 我在我的 Dao 类中使用这段代码 public void saveActions List
  • 如何知道缩放级别以在谷歌标记集群内显示标记

    好吧 几乎所有内容都在标题中 我有数千个带有谷歌标记集群的标记 不是谷歌标记集群加上 让我知道它是否有帮助 一切都很完美 BUT 当我触发与特定标记相关的事件时 我想单独显示该标记 不再在群集内 由于标记的空间重新分配并不均匀 在某些地方
  • 如何查看Core Data中存储的数据?

    我正在为我的应用程序创建一个核心数据模型 我希望能够查看它的内部 看看我在那里存储了什么 有没有一个比搜索后备存储更简单的方法 我的应该是 SQLite 并从那里读取它 看起来不太像苹果风格 当您的应用程序在模拟器中运行并创建持久存储文件后
  • PDFBox 是否允许从 AcroForm 中删除一个字段?

    我正在使用阿帕奇PDF盒子2 0 8 https mvnrepository com artifact org apache pdfbox pdfbox 2 0 8并试图删除一个字段 但找不到方法来做到这一点 就像我可以用 iText 做的
  • Excel VBA 条件格式未执行

    这很奇怪 我正在从 MS Access 2003 VBA 创建 Excel 2003 电子表格 编码包括条件格式 如果单元格值大于 a value 则为红色 如果小于 a value 则为绿色 即使在生成电子表格时成功创建了 CF 公式 但
  • 从文件中读取最后一行

    我遇到了一个问题 我在 Linux 机器上有一个日志 其中写入了多个正在运行的进程的输出 这个文件有时会变得非常大 我需要读取该文件的最后一行 问题是此操作将经常通过 AJAX 请求调用 当该日志的文件大小超过 5 6MB 时 这对服务器来
  • PySpark PCA:避免 NotConvergedException

    我试图通过 ml linalg 方法使用 PCA 来减少广泛的数据集 51 个特征 约 1300 个个体 如下所示 1 将我的列命名为一个列表 features indi prep df select c for c in indi pre