【问题标题】:Movielens Data Set Classification By SVM AlgorithmMovielens 数据集分类通过 SVM 算法
【发布时间】:2014-02-10 19:06:41
【问题描述】:

我想通过 Matlab 实现一个推荐系统,我选择 MoveiLens Dataset 和 svm 算法。 我实现了一个返回两组项目的函数。第一组是用户评分超过 3 的项目,第二组是用户评分低于 4 的项目。 Rate 是一个 3 列的矩阵,第一个是 user Id,第二个是 Item Id,第三个是 User Rate to this item。

  function [like,dislike]=UsetLike(User,Rate)
    k1=1;
    k2=1;
    for i=1:size(Rate,1)
    if(Rate(i,1)==User)
      if(Rate(i,3)>3)
          like(k1)= Rate(i,2);
          k1=k1+1;
      end
      if(Rate(i,3)<=3)
          dislike(k2)= Rate(i,2);
          k2=k2+1;
      end

   end
  end

end

然后我编写另一个由 svm 训练的函数,例如这样。 特征是一个矩阵,在 (i) 行中显示第 (i) 项特征,它有 19 个特征,值为 0 或 1。

function [svmModel]=TrainSVM(like,dislike,Feture)
group1=zeros(size(like,2),19);
group2=zeros(size(dislike,2),19);
for i=1: size(group1,1)
    group1(i,:)= Feture(like(i),:);
 end
 for i=1: size(group2,1)
    group2(i,:)= Feture(dislike(i),:);
 end
   Dataset=cat(1,group1,group2);

   group=[repmat({'like'},1,size(group1,1)) repmat({'dislike'},1,size(group2,1) )]'; 

   svmModel = svmtrain(Dataset, group, ...
   'Autoscale',true, 'Showplot',false, 'Method','QP', ...
   'BoxConstraint',2e-1, 'Kernel_Function','rbf', 'RBF_Sigma',1);

end

现在我想知道我的解决方案是否正确?因为它主要是在 3D 空间中,所以我无法接受它。如果我想使用评分 (1-5) 而不是喜欢或不喜欢怎么办?

【问题讨论】:

    标签: matlab dataset classification svm


    【解决方案1】:

    为了使用比率 (1-5) 作为输出信号,您需要一个名为 ranking SVM 的修改,因为这不仅仅是一个多标签分类,而是一个排名问题。

    【讨论】:

      猜你喜欢
      • 2019-01-23
      • 2017-11-04
      • 2020-10-04
      • 2017-04-29
      • 2020-06-28
      • 2021-01-19
      • 1970-01-01
      • 2017-04-12
      • 1970-01-01
      相关资源
      最近更新 更多