4.1 推荐系统概述
4.1.1 从亚马逊网站认识推荐系统
4.1.2 推荐系统架构
第一部分 推荐系统至少三个推荐方:
物品信息、用户信息、用户对物品或者信息的偏好
第二部分 算法区域:推荐模型
基于人口统计学的推荐机制、基于内容的推荐、基于协同过滤的推荐(基于项目、基于用户)、基于隐语义的推荐模型
4.2 协同过滤及其算法
4.2.1 协同过滤(略)
4.2.2 数据预处理
4.2.3 使用Scikit-Learn的KMeans聚类
4.2.4 User CF 原理
基于用户的协同过滤算法
4.2.5 Item CF原理
基于物体的协同过滤算法
4.2.6 SVD原理与计算
使用余弦定理求用户之间的相似度,即选中与新用户之间夹角最小的那个。
#coding:utf-8from numpy import *eps = 1.0e-6#避免除0def cosSim(inA,inB): #夹角余弦定理denom = linalg.norm(inA)*linalg.norm(inB)return float(inA*inB.T)/(denom+eps)#加载数据A = mat([[5,5,3,0,5,5],[5,0,4,0,4,4],[0,3,0,5,4,5],[5,4,3,3,5,5]])new = mat([[5,5,0,0,0,5]]) #新加入的User EU,S,VT = linalg.svd(A.T)V= VT.TSigma = diag(S)r= 2 #取前两个奇异值#得到近似后的U、S、V值Ur= U[:,:r]Sr= Sigma[:r,:r]Vr= V[:,:r]newresult = new*Ur*linalg.inv(Sr) #计算User E的坐标值print newresultmaxv = 0 #最大的余弦值maxi = 0 #最大值下标indx = 0for vi in Vr: #计算最近似的结果temp = cosSim(newresult,vi)if temp >maxv:maxv = tempmaxi = indxindx += 1print maxv,maxi
郑捷《机器学习算法原理与编程实践》学习笔记(第四章 推荐系统原理)(一)推荐系统概述...