R语言实战实现基于用户的简单的推荐系统(数量较少)

a<-c(1,1,1,1,2,2,2,2,3,3,3,4,4,4,5,5,5,5,6,6,7,7)

b<-c(1,2,3,4,2,3,4,5,4,1,2,3,2,4,5,2,6,4,1,2,3,4)

da<-data.frame(a,b)

a<-c(1,1,2,2,3,3,3,3,3,4,4,5,5,5,6,6,7,7)

b<-c(2,5,7,2,6,4,7,1,8,6,3,3,4,1,2,4,4,9)

da2<-data.frame(a,b)

ax<-unique(da$a)

bx<-unique(da$b)

m<-matrix(0,max(ax),max(ax))

for(i in 1:max(ax))

{

for(j in 1:max(ax))

{

if(i==j)

{

m[i,j]=0

}else{

m[i,j]=length(intersect(t(da[which(da$a==i),][2]),t(da[which(da$a==j),][2])))

}

}

}

m

myfun<-function(da,k,da2,m)

{

uid<-unique(c)

pre=0

recall=0

for (mm in 1:max(uid))

{

aa<-which(rank(-m[mm,])<k)

bb<-unique(da[unlist(lapply(da$a,function(x){

length(intersect(x,aa))!=0

})),][2])

movie<-setdiff(t(bb),t((da[which(da$a==mm),][2])))

movie2<-t(da2[da2$a==mm,][2])

p<-length(intersect(movie,movie2))/length(movie)

r<-length(intersect(movie,movie2))/length(movie2)

pre<-pre+p

recall<-recall+r

if(mm==1)

{

user_top1<-which(rank(-m[mm,])<k)

movie_top2<-sort(movie[rank(movie)<k])

print(user_top1)

print(movie_top2)

}

}

preA<-pre/length(uid);

recallA<-recall/length(uid);

dataframe<-data.frame(c(k),preA,recallA)

return(dataframe)

}

df<-myfun(da,4,da2,m);

preA<-c()

recallA<-c()

k<-c()

daa<-data.frame(k,preA,recallA)

for(i in 3:7)

{

df<-myfun(da,i,da2,m);

daa<-rbind(daa,df)

}

daa

library(ggplot2)

qplot(preA,recallA,data=daa ,geom = c("point", "smooth"))

preA<-c()recallA<-c()k<-c()daa<-data.frame(k,preA,recallA)

R语言实战实现基于用户的简单的推荐系统(数量较少)的更多相关文章

  1. R语言实战(十)处理缺失数据的高级方法

    本文对应<R语言实战>第15章:处理缺失数据的高级方法 本文仅在书的基础上进行简单阐述,更加详细的缺失数据问题研究将会单独写一篇文章. 处理缺失值的一般步骤: 识别缺失数据: 检查导致数据 ...

  2. R语言实战(九)主成分和因子分析

    本文对应<R语言实战>第14章:主成分和因子分析 主成分分析(PCA)是一种数据降维技巧,它能将大量相关变量转化为一组很少的不相关变量,这些无关变量成为主成分. 探索性因子分析(EFA)是 ...

  3. R语言实战(七)图形进阶

    本文对应<R语言实战>第11章:中级绘图:第16章:高级图形进阶 基础图形一章,侧重展示单类别型或连续型变量的分布情况:中级绘图一章,侧重展示双变量间关系(二元关系)和多变量间关系(多元关 ...

  4. R 语言实战-Part 4 笔记

    R 语言实战(第二版) part 4 高级方法 -------------第13章 广义线性模型------------------ #前面分析了线性模型中的回归和方差分析,前提都是假设因变量服从正态 ...

  5. R 语言实战-Part 3 笔记

    R 语言实战(第二版) part 3 中级方法 -------------第8章 回归------------------ #概念:用一个或多个自变量(预测变量)来预测因变量(响应变量)的方法 #最常 ...

  6. R语言实战(第二版)-part 1笔记

    说明: 1.本笔记对<R语言实战>一书有选择性的进行记录,仅用于个人的查漏补缺 2.将完全掌握的以及无实战需求的知识点略去 3.代码直接在Rsudio中运行学习 R语言实战(第二版) pa ...

  7. R 语言实战-Part 5-1笔记

    R 语言实战(第二版) part 5-1 技能拓展 ----------第19章 使用ggplot2进行高级绘图------------------------- #R的四种图形系统: #①base: ...

  8. R语言实战(三)基本图形与基本统计分析

    本文对应<R语言实战>第6章:基本图形:第7章:基本统计分析 =============================================================== ...

  9. R语言实战(四)回归

    本文对应<R语言实战>第8章:回归 回归是一个广义的概念,通指那些用一个或多个预测变量(也称自变量或解释变量)来预测响应变量(也称因变量.效标变量或结果变量)的方法.通常,回归分析可以用来 ...

随机推荐

  1. 概率校准Probability Calibration

    在分类问题中,我们有时不仅仅需要给测试样本打上类别标签,也需要给出一个"置信度"来表示该样本属于此类别的可能性. 然而,有的分类器只能直接打上类别标签没法给出置信度.概率校准就是用 ...

  2. 【LeetCode】146. LRU Cache

    LRU Cache Design and implement a data structure for Least Recently Used (LRU) cache. It should suppo ...

  3. PMP考试终于结束了。。。

    PMP考试昨天终于结束了,可以好好的先休息下了,先不管成绩了,通过这段时间的学习了解,发现PMP在实际工作中的运用 起的作用还很大,看样子以后要学习的东西还多着呢,先休息一周再说...

  4. [置顶] Android中使用Movie显示gif动态图

    转载请注明:  http://blog.csdn.net/u012975705/article/details/48717391 在看这篇博文之前对attr自定义属性还是不是很熟的童鞋可以先看看:An ...

  5. EF 多线程TransactionScope事务异常"事务EFTransaction类定义:与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务。"

    解决方案代码一:使用lock锁定 //对于锁推荐使用静态私有静态变量 private readonly static object _MyLock = new object(); /// <su ...

  6. ubuntu16.4安装中文输入法

    ibus输入法 Chinese语言包安装 首先需要给Ubuntu16.04安装Chinese语言包支持.  如上图点击其中的Install/Remove Languages…,这个对话框是通过syst ...

  7. Effective JavaScript Item 33 让构造函数不再依赖newkeyword

    本系列作为EffectiveJavaScript的读书笔记. 在将function当做构造函数使用时,须要确保该函数是通过newkeyword进行调用的. function User(name, pa ...

  8. Java反射机制在Spring IOC中的应用

    反射的定义: 反射是java语言的一个特性,它允程序在运行时(注意不是编译的时候)来进行自我检查并且对内部的成员进行操作.例如它允许一个java的类获取它所有的成员变量和方法并且显示出来. 反射机制的 ...

  9. Effective JavaScript Item 46 优先使用数组而不是Object类型来表示有顺序的集合

    本系列作为Effective JavaScript的读书笔记. ECMAScript标准并没有规定对JavaScript的Object类型中的属性的存储顺序. 可是在使用for..in循环对Objec ...

  10. Azure Redis

    https://azure.microsoft.com/en-us/blog/mvc-movie-app-with-azure-redis-cache-in-15-minutes/ https://a ...