推荐系统学习之mahout 学习评分计算
来源:互联网 发布:excel2016数据的有效性 编辑:程序博客网 时间:2024/06/07 13:06
mahout 学习评分计算
一、基于item的推荐的评分计算方法
1 目标用户已评价的Item集合,UserItem{item1,item2} 评分为p1、p2 需预测的item3 item3与item1和item2的相似度为s1、s2
(p1*s1+p2*s2)/(s1+s2) 限定分数在最大分和最小分之间
二、基于用户的推荐的评分计算方法
同item类似 计算目标用户最近n个邻居的相似度,最近的2个邻居为user1,user2。user1,user2对item1的 评分p1、p2 与目标用户相似度为s1、s2
预测评分为(p1*s1+p2*s2)/(s1+s2) 限定分数在最大分和最小分之间
三、 knnItem推荐 预测评分的计算法
1 UserItem{item1,item2,item3} 评分为p1、p2、p3 需预测的item4 UserItem中与item4最相似的的2个Item为
item1和item2相似度为s1和s2 计算item1和item2权重为w1和w2 (p1*w1+p2*w2)/(w1+w2)
2 权重的的计算方法
theneighborhood={item1,item2,item4}
usersRatedNeighborhood={user1,user2}同时对theneighborhood有兴趣的用户集合(不包含目标用户)用户个数为numUsers
itemneighborhood ={item1,item2} item个数为k
aMatrix为k*k阶矩阵 aMatrix[i][j] ,i为 itemneighborhood的第i个item,j为 itemneighborhood的第j个item
vki为usersRatedNeighborhood中第K个用户对itemi的评分 vkj为usersRatedNeighborhood中第K个用户对itemj的评分
- aMatrix[i][j]=(v1i*v1j +...+vki*vkj )/numUsers
b为k*1阶矩阵
vk为usersRatedNeighborhood中第K个用户对需预测的item的评分
b[i][1] = (v1i*v1+...+vki*vk)/numUsers
diagonalA diagonalB为aMatrix中对角线元素的和
avgDiagonal = Math.max(diagonalA, diagonalB) / k
avgMatrixA = aMatrix[i][j]的和(i!=j) avgMatrixA /= k * k - k;
avgVectorB = b[i]的和 avgVectorB /= k;
numUsersPlusBeta = numUsers + BETA;
aMatrix[i][j] = (numUsers * aMatrix[i][j] + BETA * average) / numUsersPlusBeta;(i==j ,average = avgDiagonal;i!=j ,average = avgMatrixA;)
b[i] = (numUsers * b[i] + BETA * avgVectorB) / numUsersPlusBeta;
optimize(aMatrix,b)
Arrays.fill(x0, 3.0 / k);
* function [x] = conjgrad(A,b,x0)
x = x0;
r = b - A*x0;
w = -r;
for i = 1:size(A);
z = A*w;
a = (r'*w)/(w'*z);
x = x + a*w;
r = r - a*z;
if ( norm(r) < 1e-10 )
break;
end
B = (r'*z)/(w'*z);
w = -r + B*w;
end
end
- 推荐系统学习之mahout 学习评分计算
- mahout学习之推荐算法
- mahout学习(二)--基于Mahout的电影推荐系统
- Mahout学习系列之推荐算法
- Mahout学习系列之推荐算法
- mahout入门之推荐系统
- 推荐系统评分矩阵稀疏性计算
- 机器学习:个性化推荐之评分预测问题
- mahout学习之TasteOptionParser
- 【Hadoop学习】之Mahout
- mahout之推荐系统源码笔记(2) ---相似度计算之RowSimilarityJob
- Mahout学习之Mahout算法分类
- 机器学习之推荐系统
- 机器学习之- 推荐系统
- mahout推荐相似度学习总结
- 【甘道夫】通过Mahout构建推荐系统--通过IDRescorer扩展评分规则
- 【甘道夫】通过Mahout构建推荐系统--通过IDRescorer扩展评分规则
- lucene学习之自定义评分
- Java Socket实战之一 单线程通信
- VFS 代码分析(open/read/write)
- 电脑硬件知识大全
- 深入分析 Linux 内核链表
- Ubuntu下开启SSH服务
- 推荐系统学习之mahout 学习评分计算
- LeetCode之Palindrome Partitioning II
- 预编译头技术
- python为什么不支持自增操作符
- iOS设计模式(01):观察者
- C语言实现二叉树的常用的算法(递归与非递归实现遍历)
- 贴一张IOS学习过程的图(来自传智播客的)
- win7启动显示英文
- C++中申请对象的两种方式区别及其使用