大数据集上的主成分分析

2024-05-15 00:15:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个由6个输入变量(温度、压力、流速等)组成的大型数据集,以提供产量、纯度和转化率等输出。 总共有大约47600个实例,这些都在excel电子表格中。 我对这些数据应用了人工神经网络和随机森林算法,并获得了预测图和精度指标。(Python语言) 随机森林模型的一个特点是赋予输入变量重要性。 现在,我想对这些数据执行PCA,以便首先与随机林结果进行比较,并获得有关输入数据如何相互作用以给出输出的更多信息。 我看了一些youtube视频和教程来了解PCA,但是他们使用的数据与我的完全不同

下面是我的数据片段。前6列为输入,后3列为输出。 enter image description here

如何使用主成分分析法进行分析?我已经设法用python绘制了它,但是绘图非常繁忙,几乎没有提供太多信息

欢迎任何帮助或提示!也许是另一种分析工具?我不介意使用Python或Matlab

谢谢:)


Tags: 数据实例算法信息森林温度excel电子表格
1条回答
网友
1楼 · 发布于 2024-05-15 00:15:46

我建议在OpenTURNS中使用KarhunenLoeveSVDAlgorithm。它提供了随机SVD算法的4种实现。约束条件是必须预先设置要计算的奇异值的数量

为了启用该算法,我们必须在ResourceMap中设置KarhunenLoeveSVDAlgorithm-UseRandomSVD键。然后KarhunenLoeveSVDAlgorithm-RandomSVDMaximumRank键设置要计算的奇异值的数量(默认值为1000)

提供了两种实现:

  • Nathan Halko,Per Gunnar Martinsson,Joel A.Tropp。寻找随机结构:构造近似矩阵分解的概率算法
  • Nathan Halko,Per Gunnar Martisson,Yoel Shkolnisky和Mark Tygert。大数据集主成分分析的一种算法

可以使用KarhunenLoeveSVDAlgorithm-RandomSVDVariant键选择这些算法

在下面的示例中,我使用AbsoluteExponential协方差模型模拟了一个来自高斯过程的大过程样本

import openturns as ot
mesh = ot.IntervalMesher([10]*2).build(ot.Interval([-1.0]*2, [1.0]*2))
s = 0.01
model = ot.AbsoluteExponential([1.0]*2)
sampleSize = 100000
sample = ot.GaussianProcess(model, mesh).getSample(sampleSize)

然后使用随机SVD算法:

ot.ResourceMap_SetAsBool('KarhunenLoeveSVDAlgorithm-UseRandomSVD', True)
algorithm = ot.KarhunenLoeveSVDAlgorithm(sample, s)
algorithm.run()
result = algorithm.getResult()

result对象包含进程的Karhunen Loève分解。这对应于具有规则网格(和相等权重)的PCA

相关问题 更多 >

    热门问题