100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 郑捷《机器学习算法原理与编程实践》学习笔记(第四章 推荐系统原理)(一)推荐系统

郑捷《机器学习算法原理与编程实践》学习笔记(第四章 推荐系统原理)(一)推荐系统

时间:2023-10-06 01:19:52

相关推荐

郑捷《机器学习算法原理与编程实践》学习笔记(第四章 推荐系统原理)(一)推荐系统

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

郑捷《机器学习算法原理与编程实践》学习笔记(第四章 推荐系统原理)(一)推荐系统概述...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。