智能推荐

在这里插入图片描述
在这里插入图片描述
Recommender(data, method, parameter = NULL)
类“ratingMatrix”:用于评级数据的虚拟类
类“realRatingMatrix”:实值评级矩阵
对象可以通过调用new形式(“realRatingMatrix”,data = m)创建,其中m是包矩阵中类dgCMatrix的稀疏矩阵,或者通过强制从一个常规矩阵、一个包含用户/项/评级三联的data.frame作为行、或一个三联形式的稀疏矩阵(包矩阵中dgTMatrix)创建。
类“binaryRatingMatrix”:二进制评级矩阵
表示二进制评级数据的矩阵。1码为积极评级,0码为否或消极评级。这种编码在购买或不购买产品的市场数据中很常见。

predict(object, newdata, n = 10, data=NULL,type=“topNList”, …)
使用推荐模型和新用户数据创建推荐
object 推荐模型
newdata 用于活动用户的数据(类“ratingMatrix”)或用于创建推荐的训练数据中的用户索引。如果使用索引,那么需要将训练数据作为参数数据传递给一些推荐算法。有些算法可能只支持用户索引
data 如果newdata是用户索引而不是用户数据,一些推荐算法需要训练数据

evaluationScheme(data, method=“split”,train=0.9, k=NULL, given, goodRating = NA)
从一个数据集创建一个evaluationScheme对象。该方案可以简单地分为训练和测试数据、k-fold交叉评价或者使用k个独立的bootstrap样本。
data 数据集作为一个评分矩阵
method 定义要使用的计算方法的字符串
given 单个项目的数量给出的评价或向量的数据长度给出的项目的数量为每个观察。负值实现了基本方案。例如,given = -1表示all-but-1求值
goodRating 数字;评分被认为适合于评价的阈值。例如,goodRating=3,所有实际用户评分大于或等于3的项目在评估过程中都被认为是积极的。注意,只有当ratingMatrix是一个子类realRatingMatrix时才使用这个参数!

evaluate(x, method, …)
给出一个评价方案,对单个或一列推荐模型进行评价
evaluate(x, method, type=“topNList”,n=1:10, parameter=NULL, progress = TRUE, keepModel=FALSE)

calcPredictionAccuracy(x, data, byUser=FALSE, given=NULL, goodRating=NA,…)
计算预测精度。对预测评级MAE(平均平均误差)、MSE(平均平方误差)和RMSE(根平均平方误差)进行了计算。对于topNLists,将返回各种二进制分类指标。
x “topNList”中的预测项目或“realRatingMatrix”中的预测评级
data 用户实际评分为“评分矩阵”
given 给出了多少项来创建预测。

plot(x, y,xlim=NULL, ylim=NULL, col = NULL, pch = NULL, lty = 1,avg = TRUE, type = “b”, annotate= 0, legend=“bottomright”, …)
为推荐评价结果创建精确回忆或ROC图。
x要绘制的对象
y表示绘图类型的字符串(例如,“ROC”或“prec/rec”)。

dataclass <- as(data1_matrix_new,"binaryRatingMatrix")

在这里插入图片描述


#创建评分方案
scheme <- evaluationScheme(dataclass,method="cross-validation",k=10,given=-1)
#创建算法列表
algo <- list(
  POPULAR = list(name="PAPULAR",param = NULL),
  UBCF =list(name="UBCF",parm=NULL),
  IBCF=list(name="IBCF",parm=NULL))
#评价模型
results <- evaluate(scheme,algo,n=1:5)
par(mfrow=c(1,2))
plot(results,annotate=1:3,lty=1:3,legend="topleft")

在这里插入图片描述

plot(results,"prec/rec",lty=1:3,annotate=1:3)

在这里插入图片描述

model.UBCF <- Recommender(getData(scheme,"train"),method="UBCF")
model.IBCF <-Recommender(getData(scheme,"train"),method="IBCF")
predict.UBCF <- predict(model.UBCF,getData(scheme,"known"),type="topNList")
predict.IBCF <- predict(model.IBCF,getData(scheme,"known"),type="topNList")
predict.err <- rbind(calcPredictionAccuracy(predict.UBCF,getData(scheme,"unknow"),given=2),
                      calcPredictionAccuracy(predict.IBCF,getData(scheme,"unknow"),given=2))
rownames(predict.err) <- c("UBCF","IBCF")
round(predict.err,3)

在这里插入图片描述

model.best <- Recommender(dataclass,method="IBCF")
data.predict <- predict(model.best,newdata=dataclass,n=5)
recom3 <- bestN(data.predict,3)
as(recom3,"list")[1:5]

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u010380670/article/details/85221209
今日推荐