我被限制使用基于感知器的方法。我有一个用户项目矩阵,其中填充了 1 到 5 的评分数据,如下所示,大约 50% 的矩阵没有数据:
r<- matrix(c(2,4, NA,5,NA,3, NA,5,NA,1,NA,3,NA,5,NA,4,4,NA,NA,NA,1,1,2,NA,1,1,1,1,NA,NA,NA,NA,2,3,4,2,NA,NA,NA,NA,3,4,5,1,NA,NA,2,3,NA), nrow=7).
#one row represents one user, hile one column represents one item
r
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 2 5 NA 1 NA 2 5
[2,] 4 NA 4 2 NA NA 1
[3,] NA 1 4 NA NA NA NA
[4,] 5 NA NA 1 NA NA NA
[5,] NA 3 NA 1 2 NA 2
[6,] 3 NA NA 1 3 3 3
[7,] NA 5 1 1 4 4 NA
我将 NA 重新编码为 0,这使得感知器只给出 2 个类(一个包含所有 1 和 0,另一个包含所有 2、3、4 和 5。我猜这是可以理解的。)怎么做我处理这个?我尝试了平均插补,但结果不好(20% 准确率)
(由于这是我公司的专有代码,我无法给出确切的代码,但任何基于感知器的方法都适用于本示例)