推荐算法实践
礼拜天吃芋圆
这个作者很懒,什么都没留下…
展开
-
推荐系统实战(十一)基于社会网络的好友推荐
4中不同的方法,具体可看 好友推荐数据集为Slashdot0902.txt# 导入包import randomimport mathimport timefrom tqdm import tqdm# 定义装饰器,监控运行时间def timmer(func): def wrapper(*args, **kwargs): start_time = time.t...原创 2019-06-03 15:59:29 · 971 阅读 · 0 评论 -
推荐系统实战(十)基于时间上下文
1.数据集:delicious-2k2.Code:很好的封装性,代码写的很到位github地址# 导入包import randomimport mathimport timeimport codecsfrom tqdm import tqdmclass Dataset(): # 对每个用户按照时间进行从前到后的排序,取最后一个时间的item作为要预测的测试集 ...原创 2019-05-31 21:13:19 · 1627 阅读 · 1 评论 -
推荐系统实践(九)UCG 基于图模型(3元图)(数据源有问题)
例子:比如我利用标签来设计基于图的推荐算法,数据源结构(user,item,tag),在设计用户物品标签三分图时,三分图的结构如下:其中A,B,C是用户,a,b,c是物品,1,2,3是标签。用户和物品通过标签相连。初始是用户和物品的边的权重为1,如果用户节点和物品节点通过标签已经相连,那么边的权重就加1。而上面的二分图边权重全是1。对一个三元的数据进行游走,构建模型。第一项为users...原创 2019-05-29 17:57:25 · 777 阅读 · 0 评论 -
推荐系统实践(八)UCG 利用ltf-idf方法
1.SimpleTagBased:1.下载数据数据集自己设定的A 一曲相思 流行A 生僻字 流行A 最后的莫西干人 纯音乐A 倩女幽魂 经典B 故乡的原风景 纯音乐B 生僻字 流行B 故乡的原风景 纯音乐C 倩女幽魂 经典C 海阔天空 经典D 海阔天空 经典A 突然好想你 寂寞C 走西口 民歌D 走西口 民歌B 重头再来 励志D 倩女幽魂 经典C 重头再来 励志...原创 2019-05-28 21:31:25 · 549 阅读 · 0 评论 -
推荐系统实践(七)CB
数据集:temp_user_scores_mat.csv 用户–节目评分矩阵temp_users_movies_01mat.csv 节目及其所属标签类型的01矩阵temp_movies_01mat.csv 用户收视了的节目–标签01矩阵整体流程:1.读取节目及所属类别数据,...原创 2019-05-21 21:14:49 · 329 阅读 · 0 评论 -
推荐系统实践(六)CF 图模型
二部图在推荐系统中,用户行为数据可以表示成图的形式,具体来说是二部图。用户的行为数据集由一个个(u,i)二元组组成,表示为用户u对物品i产生过行为其中,users集U={A, B, C},items集I = {a,b,c,d}。则用户物品的二部图为:图中顶点的相关度主要取决与以下因素:1)两个顶点之间路径数2)两个顶点之间路径长度3)两个顶点之间路径经过的顶点而相关性高的顶点一般...原创 2019-05-21 16:05:07 · 2412 阅读 · 0 评论 -
推荐系统实践(五)聚类
https://www.cnblogs.com/pinard/p/6179132.html一、原理(1)kmeans常识(2)minibatch-kmeansMini Batch K-Means算法是K-Means算法的变种,采用小批量的数据子集减小计算时间,同时仍试图优化目标函数,这里所谓的小批量是指每次训练算法时所随机抽取的数据子集,采用这些随机产生的子集进行训练算法,大大减小了计算...原创 2019-05-18 21:04:11 · 2523 阅读 · 1 评论 -
推荐系统实践(四)LFM代码(2)
一、SVD1.直接写https://blog.csdn.net/qiqi123i/article/details/88855620简述一下代码过程:读取数据,划分训练集和测试集对训练集使用SGD进行训练,得到两个矩阵P,Q,P 的大小是(num(all user),factor),Q的大小是(num(all item),factor)遍历测试集的每一个user-item对,得到预估的评...原创 2019-05-18 19:58:58 · 551 阅读 · 0 评论 -
推荐系统实践(四)LFM原理(1)
隐语义模型,矩阵分解方法:一、SVD分解1.存在两个严重的缺陷:(1)、SVD 分解前需要把稀疏矩阵填充成无缺失值的稠密矩阵,而数据集中往往 90%以上的数据都是缺失的,这样会造成数据存储空间成本大大增加;(2)、该算法的计算复杂度较高,对于填充后的稠密矩阵来说,计算速度变的更慢,甚至无法获得结果。2、算法流程:关键步骤:对特征值矩阵进行选择,一般从小到大排序,特征值大的代表着...原创 2019-05-17 17:06:54 · 1534 阅读 · 0 评论 -
推荐系统实践(三)ICF和UCF
一、原理ICF是基于物品的推荐(利用物品之间的相似度计算预测值)UCF是基于用户的最近邻推荐1.UCF(1)输入:An×m的评分 (用户n,物品m)(2)1.计算用户之间的相关系数person系数:(得到的值在-1~1之间,越接近1的越好)得到与A用户近似的N个用户。person系数的理解:在计算中不考虑平均值的差异使得用户间可以比较。没有考虑两用户是否仅同时对很少的物品进行评...原创 2019-05-16 19:37:08 · 8699 阅读 · 0 评论 -
推荐系统实践(二)FPGrowth
关联规则之FPGrowth一、原理:与Apriori相比,只需要扫描两个数据库。第一次扫描:得到每个元素出现的次数,去除低于阈值的项,并排序。再对不同的项,按次序的高低排序第二次扫描:构建FP-TREE树,从FP树中找到关联规则。二、算法流程步骤:FP Tree算法包括三步:1)扫描数据,得到所有频繁一项集的的计数。然后删除支持度低于阈值的项,将1项频繁集放入项头表,并按照支持度...原创 2019-05-16 16:00:42 · 3953 阅读 · 0 评论 -
Wide and Deep Learning(2)tf代码实现
https://zhuanlan.zhihu.com/p/433284921、数据人口普查数据:查看data:特征进行处理:连续的特征,包含这些:CONTINUOUS_COLUMNS = ["age", "education_num", "capital_gain", "capital_loss", "hours_per_week"]...原创 2019-05-15 20:20:57 · 721 阅读 · 0 评论 -
Wide and Deep Learning(1)原理
部分转载于https://blog.csdn.net/sxf1061926959/article/details/78440220一、译文:摘要:通过将稀疏数据的非线性转化特征应用在广义线性模型中被广泛应用于大规模的回归和分类问题。通过广泛的使用交叉特征转化,使得特征交互的记忆性是有效的,并且具有可解释性,而然不得不做许多的特征工作。相对来说,通过从稀疏数据中学习低纬稠密embedding特...原创 2019-05-14 21:40:52 · 724 阅读 · 0 评论 -
推荐系统实践(一)Apriori
关联规则之Apriori一、名词解释:支持度和置信度:支持度、置信度越大,商品出现一起购买的次数就越多,可信度就越大作用:找到商品购买记录中反复一起出现的商品,帮助营销人员做更好的策略,帮助顾客方便购买策略:同时购买的商品放在一起、同时购买的商品放在两端support(A->B) = P(AB)confidence(A->B) = P(B|A)=P(AB)/P(A)项集...原创 2019-05-13 20:43:59 · 838 阅读 · 0 评论