- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我目前正在从事一个涉及使用主成分分析或 PCA 的项目,并且我正在尝试快速学习它。幸运的是,Python 有一个来自 scikitlearn.decomposition 的非常方便的模块,它似乎为您完成了大部分工作。不过,在我真正开始使用它之前,我正试图弄清楚它到底在做什么。
我一直在测试的数据框如下所示:
0 1
0 1 2
1 3 1
2 4 6
3 5 3
array([[ 0.5172843 , 0.85581362],
[ 0.85581362, -0.5172843 ]])
array([[-2.0197033 , -1.40829634],
[-1.84094831, 0.8206152 ],
[ 2.95540408, -0.9099927 ],
[ 0.90524753, 1.49767383]])
最佳答案
当您调用 fit PCA 时,将计算一些向量,您可以将数据投影到这些向量上,以减少数据的维度。由于数据的每一行都是二维的,因此最多可以将数据投影到 2 个向量上,并且每个向量都是二维的。 PCA.components_
的每一行是一个向量,事物被投影到其上,它的大小与训练数据中的列数相同。因为你做了一个完整的 PCA,你得到了 2 个这样的向量,所以你得到了一个 2x2 矩阵。这些向量中的第一个将最大化投影数据的方差。第二个将最大化第一次投影后剩余的方差。通常传递一个值 n_components
这小于输入数据的维度,因此您返回的行数更少,并且您有一个宽但不高的 components_
大批。
当您调用 transform
您要求 sklearn 实际进行投影。也就是说,您要求它将数据的每一行投影到 fit
时学习的向量空间中。被称为。对于您传递给 transform
的每一行数据您将在输出中有 1 行,该行中的列数将是在 fit
中学习的向量数。阶段。换句话说,列数将等于 n_components
的值。你传递给构造函数。
当源数据有很多列并且您希望减少列数同时保留尽可能多的信息时,通常会使用 PCA。假设您有一个包含 100 行的数据集,每行有 500 列。如果你构建了一个像 PCA(n_components = 10)
这样的 PCA然后调用fit
你会发现 components_
有 10 行,一个用于您请求的每个组件,以及 500 列,因为这是输入维度。如果您随后调用 transform
您的所有 100 行数据都将投影到这个 10 维空间中,因此输出将有 100 行(输入中的每行 1 行),但只有 10 列,从而减少了数据的维度。
如何做到这一点的简短答案是 PCA 计算奇异值分解,然后只保留其中一个矩阵的一些列。 Wikipedia有更多关于这背后的实际线性代数的信息——StackOverflow 的答案有点长。
关于python - 了解 Python 中的 scikitlearn PCA.transform 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42167907/
我尝试用 PCA 构建一个定向边界框。在图片中您可以看到我的结果: 红点:点云 蓝色向量:PCA 分量 我尝试将点投影到向量上,以获得最小值、最大值和平均值。 但是我现在如何定义我的盒子呢?有什么想法
我们如何将 PCA 应用于一维数组? double[][] data = new double [1][600]; PCA pca = new PCA(data, 20); data = pca.ge
我知道PCA和ICA都用于降维,并且在PCA中主成分是正交的(不一定独立),但在ICA中它们是独立的。有人能澄清一下什么时候使用 ICA 而不是 PCA 更好吗? 最佳答案 ICA 不是一种降维技术。
我正在使用 scikit-learning 做一些降维任务。 我的训练/测试数据采用 libsvm 格式。它是一个有 50 万列的大型稀疏矩阵。 我使用 load_svmlight_file 函数加载
我一直在尝试使用 PCA 进行降维。我目前有一个大小为 (100, 100) 的图像,我正在使用一个由 140 个 Gabor 滤波器组成的滤波器组,其中每个滤波器都会给我一个响应,这又是一个 (10
我使用以下简单代码在具有 10 个特征的数据框上运行 PCA: pca = PCA() fit = pca.fit(dfPca) pca.explained_variance_ratio_ 的结果显示
我正在使用 scikit-learn PCA查找具有大约 20000 个特征和 400 多个样本的数据集的主要成分。 但是,与Orange3 PCA相比应该使用 scikit-learn PCA,我得
Sklearn PCA 是 pca.components_ 的 loadings?我很确定是这样,但我正在尝试遵循一篇研究论文,但我从他们的加载中得到了不同的结果。我在 sklearn 文档中找不到它
我有一个包含 50 多个变量的数据框 data,我正在尝试使用 caret 包在 R 中执行 PCA。 library(caret) library(e1071) trans <- preProces
我正在使用 PCA 来降低 N 维数据集的维数,但我想增强对大异常值的稳健性,因此我一直在研究 Robust PCA 代码。 对于传统的 PCA,我使用的是 python 的 sklearn.deco
我正在降低 Spark DataFrame 的维度与 PCA带有 pyspark 的模型(使用 spark ml 库)如下: pca = PCA(k=3, inputCol="features", o
我在 matlab 和 python 中生成相同的矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13
概述 主成分分析(Principal Component Analysis,PCA)是一种常用的数据降维和特征提取技术,用于将高维数据转换为低维的特征空间。其目标是通过线性变换将原始特征转化为
目录 计算过程 投影分量计算 假设你有一家理发店,已经记录了过去一年中所有顾客的头发长度和发型偏好的数据。现在你想从这些数据中提取一些主要的信息,比如顾客最常
我正在考虑使用 PCA(TruncatedSVD) 来减少我的稀疏矩阵的维数。 我将我的数据拆分为训练和测试拆分。 X_train , X_test, y_train, y_test = train_
我有来自四个群体、四个处理和三个重复的个体数据集。每个个体仅在一个群体、处理和重复组合中。我对每个人进行了四次测量。我想对每个种群、底物和重复组合的这些测量进行 PCA。 我知道如何对所有个体进行 P
在考虑均值时,数字 1 和 2 背后的直觉是什么?这将如何影响性能和准确性? 1号: pca = decomposition.PCA(n_components=4) X_centere
我正在使用来自 here 的输入数据(见第 3.1 节)。 我正在尝试使用 scikit-learn 重现它们的协方差矩阵、特征值和特征向量。但是,我无法重现数据源中显示的结果。我也在别处看到过这个输
我要做的事情如下:我有一套 Vektors v1-vn对于这些,我需要协方差矩阵(我在做 pca 时得到的)。我还需要协方差矩阵的特征值和特征向量。我按降序对特征值进行排序,然后根据相应的特征值对特征
给定 http://docs.opencv.org/modules/core/doc/operations_on_arrays.html PCA 应该可以通过传递一个矩阵来初始化。 cv::Mat m
我是一名优秀的程序员,十分优秀!