电影评分数据转矩阵形式(.csv转.mat)

原始电影评分数据格式为:

UserItemRating
123.0
254.0
342.0
365.0

目的是转成以下矩阵形式:

(我了解到的.mat格式的矩阵,行列号都是固定好的,我不晓得怎么改成我想要的形式,所以对于以上评分数据,我没有转成3*4的矩阵,而是转成3*6的矩阵,对于用户没有评分过的物品,设置为0)

 item1item2item3item4item5item6
user10.03.00.00.00.00.0
user20.00.00.00.04.00.0
user30.00.00.02.00.05.0

 

步骤(matlab实现):

首先,将rating.csv文件按照数值矩阵的形式导入,第一列是用户,第二列是物品,第三列是评分值,形式如下

其次,定义一个函数,保存为s.m文件

function y = s(testData1,a,b)  %testData1是要转换的.csv文件,导入到matlab中,是以数值矩阵的形式存在的,如上图所示
n1 = length(testData1(:,1));
for i = 1:n1
    if(testData1(i,1)==a && testData1(i,2)==b) %如果第一列的值等于用户,第二列的值等于物品,则第a行,第b列的值就可以用第三列的值填充。(第a行对应着用户a,第b列对应着物品b)
        y = testData1(i,3);
        break
    else
        y = 0;
    end
end
end

最后,调用.m文件即可

% a = unique(trainData2(:,1));
% b = unique(trainData2(:,2));
testData = zeros(943,1682); %(a=943,b=1682)

for i = 1:943
    for j = 1:1682
        testData(i,j)= s(testData1,i,j);
    end
end

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值