UserCF:推荐那些和他有共同兴趣爱好的用户喜欢的物品
一、数据集
当系统进入正式运行阶段的时候就有不同类型的数据
比如
标签库
访问轨迹
投放数据
二、算法实现步骤
1 建立数学模型
2 相似度计算
3 最紧邻计算
4 推荐结果
基于用户的矩阵协同过滤算法(协同过滤:将所有用户的行为一起作为过滤条件进行推荐的算法)
/** 算法步骤
* 建立数学模型
* 用户邻居矩阵
* 最紧邻矩阵
* 推荐
*/
/**
* 建立数据模型
*/
FileDataModel <- function(file){
#读取文件数据,列属性有头部不要显示header=FALSE
data <- read.csv( file, header=FALSE )
#重新定义头部信息
names( data ) <- c( 'uid', 'iid', 'pref' )
#取user行,item列
user <- unique( data$uid )
item <- unique( sort(data$iid) )
#根据user行,item列构建空矩阵
M <- matrix( 0, length( user ), length( item ) )
rownames(M) <- user
colnames(M) <- item
#将data匹配成对应的坐标
col_uid <- match( data$uid, user )
col_iid <- match( data$iid, item )
#组合成新的数据集
new_data <- cbind( col_uid, col_iid, pref=data$pref )
for( i in 1:nrow( new_data ) ){