标签: principal-components

43
推荐指数
2
解决办法
3万
查看次数

FactoMineR MCA中"哪个'不符合逻辑"的含义是什么意思?

我正在尝试使用FactoMineR在数据表上运行MCA.它仅包含0/1数字列,其大小为200.000*20.

require(FactoMineR)
result <- MCA(data[, colnames, with=F], ncp = 3)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

其中的错误(unlist(lapply(listModa,is.numeric))):'which'的参数不合逻辑

我真的不知道如何处理这个错误.然后我试着将每一列都变成了角色,一切都运转了.我认为它可能对其他人有用,也许有人能够向我解释错误;)

干杯

r principal-components

10
推荐指数
2
解决办法
1万
查看次数

如何在受监督的机器学习分类问题中使用主成分分析?

我一直在研究R中主成分分析的概念.

我很乐意将PCA应用于(例如,标记的)数据集,并最终从我的矩阵中提取出最有趣的前几个主要组件作为数值变量.

从某种意义上说,最终的问题是什么呢?在计算完成后,我在PCA上遇到的大部分读数都会立即停止,特别是在机器学习方面.请原谅我的夸张,但我觉得好像每个人都认为这项技术很有用,但没有人愿意在他们这么做之后真正使用它.

更具体地说,这是我真正的问题:

我认为主要组件是您开始使用的变量的线性组合.那么,这种转换后的数据如何在监督机器学习中发挥作用?有人如何使用PCA作为减少数据集维数的方法,然后,将这些组件与受监督的学习者(例如SVM)一起使用?

我对我们的标签发生了什么感到困惑.一旦我们进入了本征空间,那就太好了.但是,如果这种转变打破了我们的分类概念,那么我认为没有任何办法可以继续推进机器学习(除非有一些"是"或"否"的线性组合我没有遇到过!)

如果你有时间和资金,请介入并指导我.提前致谢.

machine-learning pca supervised-learning principal-components

9
推荐指数
2
解决办法
8367
查看次数

使用libpca进行主成分分析

libpca是一个用于主成分分析的C++库,它建立在线性代数库Armadillo之上.

不过,我遇到了问题.我将其输出与Lindsay Smith在其关于PCA的精彩教程中给出的示例进行比较.当我检索第一个主要组件时,我在他的教程中获得与Smith相同的值,但其符号被反转.对于第二主成分,符号和值是正确的.

有谁知道这是为什么?

码:

#include "pca.h"
#include <iostream>

using namespace std;

int main(int argc, char** argv) {
    stats::pca pca(2);

    double* elements = new double[20]{2.5, 2.4, 0.5, 0.7, 2.2, 2.9, 1.9, 2.2, 3.1, 3.0, 2.3, 2.7, 2, 1.6, 1, 1.1, 1.5, 1.6, 1.1, 0.9};
    for (int i = 0; i < 20; i++) {
        vector<double> record;
        record.push_back(elements[i++]);
        record.push_back(elements[i]);
        pca.add_record(record);
    }

    pca.solve();             

    const vector<double> principal_1 = pca.get_principal(0);
    for (int i = 0; i < principal_1.size(); i++) …
Run Code Online (Sandbox Code Playgroud)

c++ pca principal-components

3
推荐指数
1
解决办法
5949
查看次数

解释前几个用于手写数字识别的PCA组件

所以在Matlab中我用手写数字执行PCA.基本上,我说30*30维图片,即900像素,我认为在PCA之后捕获大部分方差的组件,比如基于某个阈值的前80个主要组件(PC).现在这些80个PC也是900维度,当我使用imshow绘制这些时,我会得到一些图像,比如看起来像0,6,3,5等等.这些前几个PC的解释是什么?我提取的80)?

matlab pattern-recognition machine-learning principal-components

2
推荐指数
2
解决办法
1008
查看次数

Scikit-learn PCA .fit_transform 形状不一致(n_samples &lt;&lt; m_attributes)

我的 PCA 使用sklearn. 为什么我的转换不会像文档所说的那样产生相同尺寸的数组?

fit_transform(X, y=None)
Fit the model with X and apply the dimensionality reduction on X.
Parameters: 
X : array-like, shape (n_samples, n_features)
Training data, where n_samples is the number of samples and n_features is the number of features.
Returns:    
X_new : array-like, shape (n_samples, n_components)
Run Code Online (Sandbox Code Playgroud)

用 iris 数据集检查一下(150, 4),我正在制作 4 台 PC:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.preprocessing import StandardScaler
from …
Run Code Online (Sandbox Code Playgroud)

machine-learning pca dimensionality-reduction scikit-learn principal-components

2
推荐指数
1
解决办法
1509
查看次数

为什么Matlab中的'pca'不能给出正交的主成分?

为什么pca在Matlab中使用,我无法得到正交主成分矩阵

例如:

A=[3,1,-1;2,4,0;4,-2,-5;11,22,20];

A =

    3     1    -1
    2     4     0
    4    -2    -5
   11    22    20



>> W=pca(A)

W =

    0.2367    0.9481   -0.2125
    0.6731   -0.3177   -0.6678
    0.7006   -0.0150    0.7134


>> PCA=A*W

PCA =

    0.6826    2.5415   -2.0186
    3.1659    0.6252   -3.0962
   -3.9026    4.5028   -3.0812
   31.4249    3.1383   -2.7616
Run Code Online (Sandbox Code Playgroud)

这里,每列都是主要组成部分.所以,

>> PCA(:,1)'*PCA(:,2)

ans =

   84.7625
Run Code Online (Sandbox Code Playgroud)

但主成分矩阵没有相互正交的成分.

我检查了一些材料,它说它们不仅不相关,而且严格正交.但我无法得到理想的结果.谁能告诉我哪里出错了?

谢谢!

matlab orthogonal pca principal-components

0
推荐指数
1
解决办法
711
查看次数