相关疑难解决方法(0)

matlab中的PCA选择前n个组件

我想N=10,000从矩阵中选择最主要的组件.在完成pca之后,MATLAB应该返回一个pxp矩阵,但它不会!

>> size(train_data)
ans =
         400      153600

>> [coefs,scores,variances] = pca(train_data);
>> size(coefs)
ans =
      153600         399

>> size(scores)
ans =

   400   399
>> size(variances)
ans =
    399     1
Run Code Online (Sandbox Code Playgroud)

应该是coefs:153600 x 153600?和scores:400 X 153600

当我使用下面的代码时,它给我一个Out of Memory错误::

>> [V D] = eig(cov(train_data));
Out of memory. Type HELP MEMORY for your options.

Error in cov (line 96)
    xy = (xc' * xc) / (m-1);
Run Code Online (Sandbox Code Playgroud)

我不明白为什么MATLAB会返回一个较小的维矩阵.它应该返回错误与pca:153600*153600*8字节= 188 GB

eigs错误:

>> eigs(cov(train_data));
Out of memory. …
Run Code Online (Sandbox Code Playgroud)

matlab machine-learning pca

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

标签 统计

machine-learning ×1

matlab ×1

pca ×1