在matlab运行时内存不足

时间:2015-06-04 15:06:36

标签: matlab loops for-loop mathematical-optimization

我在matlab r2014a中编写了代码,用于预测目标用户的目标用户费率。在我的方法中,我通过计算目标项目与目标用户和另一个用户之间的每个被指定项目之间的项目相似性来为项目分配权重。在计算项目相似性(ISIM)并将其捕获到内存之后,应根据isim计算用户相似度。 但我面临内存不足的错误。我的数据集中有1206个用户和1508个项目。 traindata = 1206x1508 isim = 1508x1508 isim和用户相似度公式如下:

enter image description here(ISIM)

enter image description here(用户与isim的相似性)

我的代码在

之下
load('isim.mat');
        isim2 = isim.^2;
        for i = 1 : size(traindata,1)
            target_user = traindata(i,:);
            mean_target_user = repmat(mean(target_user),length(target_user),1);
             for k = i+1 : size(traindata,1)
                 second_user = traindata(k,:);
                 mean_second_user = repmat(mean(second_user),length(second_user),1);
                 for z = 1 : size(isim , 1)
                 pearson{i,k}{z} = sum(isim(z,:) .*(target_user - (mean_target_user')).*(second_user - (mean_second_user')))/sqrt((sum(isim(z,:) .*(target_user - (mean_target_user')).^2)))*sqrt(sum((isim(z,:).*(second_user - (mean_second_user')).^2))); 
mean(target_user))*(traindata(k,z)-mean(traindata(k,:)))/sqrt(isim(j,z)*(traindata(i,z)-mean(target_user))^2)*sqrt(isim{j}(z)*(traindata(k,z)-mean(traindata(k,:)))^2);

                 end
             end  

        end

0 个答案:

没有答案