"out of memory" message for mvregress

2 ビュー (過去 30 日間)
Anoosh
Anoosh 2016 年 1 月 23 日
コメント済み: Anoosh 2016 年 1 月 23 日
I am trying to use mvregress with the data I have with dimensionality of a couple of hundreds. (3~4). Using 32 gb of ram, I can not compute beta and I get "out of memory" message. I couldn't find any limitation of use for mvregress that prevents me to apply it on vectors with this degree of dimensionality, am I doing something wrong? is there any way to use multivar linear regression via my data?
here is an example of what goes wrong:
dim=400;
nsamp=1000;
dataVariance = .10;
noiseVariance = .05;
mixtureCenters=randn(dim,1);
X=randn(dim, nsamp)*sqrt(dataVariance ) + repmat(mixtureCenters,1,nsamp);
N=randn(dim, nsamp)*sqrt(noiseVariance ) + repmat(mixtureCenters,1,nsamp);
A=2*eye(dim);
Y=A*X+N;
% A_hat=mvregress(X',Y');
[B, y_hat]=mlrtrain(X,Y)
where
function [B, y_hat]=mlrtrain(X,Y)
[n,d] = size(Y);
Xmat = [ones(n,1) X];
Xmat_sz=size(Xmat);
Xcell = cell(1,n);
for i = 1:n
Xcell{i} = [kron([Xmat(i,:)],eye(d))];
end
[beta,sigma,E,V] = mvregress(Xcell,Y);
B = reshape(beta,d,Xmat_sz(2))';
y_hat=Xmat * B ;
end
  2 件のコメント
Jason Moore
Jason Moore 2016 年 1 月 23 日
Make sure you have increased your Java Heap size. You can do this by doing the following
Click on the Home button in MATLAB -> Preferences -> General -> Java Heap
Try increasing this setting and restarting MATLAB
Anoosh
Anoosh 2016 年 1 月 23 日
thank you @jasonMoore but I can see from my memory manager that matlab is using my 32 gb of ram plus a 32 gb of swap. In sum, it is using around 64 gb of ram and still is not able to solve this linear regression problem.

サインインしてコメントする。

回答 (0 件)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by