本文参考资料:
写在前面
看了gitbook那本书的第二章和第三章,自己正在复习高等数学、线性代数、概率、统计的知识,所以想用numpy和pandas把第二章和第三章的逻辑实现,书中的代码有点复杂。自从有了这个想法后,gitbook那本书上的源码我几乎都没有看过。
说实话,我看教程很少看别人的源码,当了解问题的逻辑后,我第一时间想到的是自己来实现,写完了代码后再看别人的代码,如果实在写不出来,那么才看别人的源码,看完了之后我也会自己重新理解逻辑再重新敲一遍。
所以,如果你对用numpy和pandas把第二章和第三章的逻辑实现这件事有兴趣,可以在自己实现以后,来看看我写的,欢迎批评建议。
本文需要的基础如下:
- 较好的Python基础
- numpy和pandas基础
- 帮助文档是最好的老师,numpy和pandas帮助文档写的真不错
- Stack Overflow
- 线性代数基础
- 对应相乘再求和 —> 内积!
- 阅读https://www.gitbook.com/book/wizardforcel/guide-to-data-mining/details 前三章
基于用户的推荐
基本的事实:两个人的品味如电影品味越相近,那么两个人对相应内容的评价也越相近
逻辑:根据两者对同样内容的评价,分析两者的相似程度,给对方进行推荐
- 怎么判断相似?
- 曼哈顿距离
- 欧氏距离
- 皮尔逊系数
- 余弦定理
- 怎么推荐?
- 找到与之最相似的用户,推荐这位用户评价最高的内容
- 找到与之比较相似的用户,加权处理
距离
1 | # -*- coding: utf-8 -*- |
皮尔逊系数
为什么出现皮尔逊系数?那本书写的很清楚,建议一读
1 | # -*- coding: utf-8 -*- |
余弦定理
1 | # -*- coding: utf-8 -*- |
K最邻近算法
1 | # -*- coding: utf-8 -*- |
基于物品的推荐
基本事实:两个物品很相近,那么同一用户对这两个物品的评价很可能也相近
修正的余弦定理
1 | # -*- coding: utf-8 -*- |
slope one
1 | # -*- coding: utf-8 -*- |
写在后面
本文仅仅为了熟悉numpy和pandas用法,至于推荐系统嘛,我还没有学太深,先不写。太基础的内容,我不会写,因为网上太多资料了。我会坚持写点符合自己个性的文章。
越来越发现业务知识的重要性,不然分析来分析去,分析出一堆数,也不知道分析的意义。定性分析先行,定量分析后行。