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                    #避免除0
def 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 E
U,S,VT = linalg.svd(A.T)
V      = VT.T
Sigma  = 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   = 0
for vi in Vr:                  #计算最近似的结果temp = cosSim(newresult,vi)if temp >maxv:maxv = tempmaxi = indxindx += 1
print maxv,maxi

转载于:https://www.cnblogs.com/wuchuanying/p/6249709.html

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

  1. Python快速编程入门#学习笔记01# |第一章 :Python基础知识 (Python发展历程、常见的开发工具、import模块导入)

    全文目录 ==先导知识== 1 认识Python 1.1.1 Python的发展历程 1.1.2 Python语言的特点 2. Python解释器的安装与Python程序运行 1.2.1 安装Pyth ...

  2. Java编程思想学习笔记-第11章

    <?xml version="1.0" encoding="utf-8"?> Java编程思想学习笔记-第11章 Java编程思想学习笔记-第11章 ...

  3. Python快速编程入门#学习笔记03# |第二章 :Python基础(代码格式、标识符关键字、变量和数据类型、数字类型以及运算符)

    全文目录 ==先导知识== 学习目标: 2.1 代码格式 2.1.1 注释 2.1.2 缩进 2.1.3 语句换行 2.2 标识符和关键字 2.2.1 标识符 2.2.2 关键字 2.3 变量和数据类 ...

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

    4.5.1 SVD算法回顾 A = U∑VT 其中:A是N*M的矩阵,U是M*M的方阵(里面向量正交,称为左奇异向量),∑是一个M*N的矩阵,VT是一个N*N的矩阵(里面向量正交,右奇异向量) 那么奇 ...

  5. Opencv3编程入门学习笔记(四)之split通道分离Debug过程中0xC0000005内存访问冲突问题

    这是笔者学习<Opencv3编程入门>的第四篇博客,这篇博客主要是解决在Windows系统下VS 2013中Debug含有split分离通道色彩函数时报出的0xC0000005内存访问冲突 ...

  6. Linux7.6—Shell编程 学习笔记 第四章:系统任务设置

    Linux7.6-Shell编程 第四章:系统任务设置 文章目录 Linux7.6-Shell编程 一.系统启动流程 二.系统服务 三.开机自启动服务 四.定时任务 一.系统启动流程 启动计算机的硬件 ...

  7. 《机器学习》赵卫东学习笔记 第13章推荐系统(课后习题及答案)

    1 推荐系统的功能是什么? 推荐系统是一种帮助用户快速发现有用信息的工具.通过分析用户的历史行为,研究用户偏好,对用户兴趣建模,从而主动给用户推荐能够满足他们感兴趣的信息.本质上,推荐系统是解决用户额 ...

  8. 传感器原理与检测技术复习笔记第四章-电感式传感器

    第四章 电感式传感器 文章目录 第四章 电感式传感器 变磁阻电感式(自感式) 基本原理 输出特性 测量电路 变磁阻式应用 变气隙电感式压力传感器 变气隙差动压力传感器 差动变气隙厚度电感测微仪 差动变 ...

  9. 机器学习算法入门与编程实践课后题及答案(唐四新等编著)

    目录 习题1 习题2 习题3 习题4 习题5 习题6 习题7 习题8 习题1 1.无监督学习的两个主要任务是(多选)(BD). A.回归         B.降维         C.分类       ...

  10. Unix编程实践教程笔记(四) IO重定向

    IO重定向 //将stdin(标准输入)重定向到文件的第一个方法// 策略解释: // close then open // 先使用close将标准输入的连接切断// 使用open打开连接到stdin ...

最新文章

  1. android 模拟器识别,一种基于符号的识别Android应用运行在模拟器中的方法与流程...
  2. php7和php8内核有区别吗,不要在PHP7中踩这些坑
  3. 一张图来看看.NETCore和前后端技术的演进之路
  4. 6位顺序号生成_分布式id生成策略,我和面试官扯了一个半小时
  5. 几种实用的 pythonic 语法
  6. 【医疗影像处理】使用前景像素的均值和方差(mean,std)对图像进行归一化(背景像素为0)【numpy-code】
  7. Target folder is neither empty nor does it point to an existing SDK installtion.
  8. mtk android 串口日志重定向,MTK UART串口调试
  9. 网络协议学习--SOAP协议(二)
  10. 如何对比评价TOM邮箱、QQ邮箱,Gmail邮箱以及139邮箱?
  11. html图片与文字的排版6,前端开发学习笔记(六)- Css 文字排版
  12. (十三)Thread-Specific Storage(ThreadLocal)模式
  13. Emacs 配置 latex
  14. 一文看尽 6篇 CVPR2021 2D 异常检测论文
  15. 中国首个数字化糖尿病逆转项目在宁波正式启动
  16. android最新版本下载vivo,vivo官网下载
  17. 【数据库】数据库恢复技术
  18. 四、函数的基本概念和使用
  19. 干货来了,这些物联网基础知识你了解吗
  20. SpringBoot+Mybatis+Thymeleaf-Build Blog site_2

热门文章

  1. tcpreplay linux,Linux——Tcpreplay
  2. lync2013持久聊天服务器如何修复,Lync Server 2013:持久聊天服务器所需的资源 - Lync Server | Microsoft Docs...
  3. 2021-2027全球与中国自动卡车装卸系统市场现状及未来发展趋势
  4. 基于Arduino、ESP8266的物联网项目开发方案整理、毕业设计(第二波)
  5. 炉石传说一直显示重新连接服务器,炉石传说一直显示战网开启中 炉石传说卡在启动战网解决办法...
  6. Eclipse 代码整理
  7. 电机控制系统php,基于FPGA的直流电机PWM控制系统(附带源码下载)
  8. docker安装RabbitMQ:Error starting userland proxy: listen tcp 0.0.0.0:15672: bind: address already in u
  9. 〖2011.08.19〗秋无痕常用软件全功能装机光盘2011年八月版(支持64位WIN7)
  10. windows php进程数,win10的进程数应该多少?