【笔记2】推荐算法中的数据格式

设计推荐算法时,首先要考虑数据格式。

由于数据是关于用户对商品的评分,其具有三个要素:用户商品评分

所以,数据格式有三种形式:

1. json格式(json文本)

#数据格式:json数据(用户、商品、打分)
json_txt = '''{"Angelica": {"Blues Traveler": 3.5, "Broken Bells": 2.0,
                      "Norah Jones": 4.5, "Phoenix": 5.0,
                      "Slightly Stoopid": 1.5,
                      "The Strokes": 2.5, "Vampire Weekend": 2.0},

         "Bill":{"Blues Traveler": 2.0, "Broken Bells": 3.5,
                 "Deadmau5": 4.0, "Phoenix": 2.0,
                 "Slightly Stoopid": 3.5, "Vampire Weekend": 3.0},

         "Chan": {"Blues Traveler": 5.0, "Broken Bells": 1.0,
                  "Deadmau5": 1.0, "Norah Jones": 3.0, "Phoenix": 5,
                  "Slightly Stoopid": 1.0},

         "Dan": {"Blues Traveler": 3.0, "Broken Bells": 4.0,
                 "Deadmau5": 4.5, "Phoenix": 3.0,
                 "Slightly Stoopid": 4.5, "The Strokes": 4.0,
                 "Vampire Weekend": 2.0},

         "Hailey": {"Broken Bells": 4.0, "Deadmau5": 1.0,
                    "Norah Jones": 4.0, "The Strokes": 4.0,
                    "Vampire Weekend": 1.0},

         "Jordyn":  {"Broken Bells": 4.5, "Deadmau5": 4.0,
                     "Norah Jones": 5.0, "Phoenix": 5.0,
                     "Slightly Stoopid": 4.5, "The Strokes": 4.0,
                     "Vampire Weekend": 4.0},

         "Sam": {"Blues Traveler": 5.0, "Broken Bells": 2.0,
                 "Norah Jones": 3.0, "Phoenix": 5.0,
                 "Slightly Stoopid": 4.0, "The Strokes": 5.0},

         "Veronica": {"Blues Traveler": 3.0, "Norah Jones": 5.0,
                      "Phoenix": 4.0, "Slightly Stoopid": 2.5,
                      "The Strokes": 3.0}
}'''

2. 矩阵格式(csv文本)

横轴是商品,纵轴是用户,表内是评分

#数据格式:矩阵(用户-商品)(适用于小数据量)
csv_txt = '''"user","Blues Traveler","Broken Bells","Deadmau5","Norah Jones","Phoenix","Slightly Stoopid","The Strokes","Vampire Weekend"
"Angelica",3.5,2.0,,4.5,5.0,1.5,2.5,2.0
"Bill",2.0,3.5,4.0,,2.0,3.5,,3.0
"Chan",5.0,1.0,1.0,3.0,5,1.0,,
"Dan",3.0,4.0,4.5,,3.0,4.5,4.0,2.0
"Hailey",,4.0,1.0,4.0,,,4.0,1.0
"Jordyn",,4.5,4.0,5.0,5.0,4.5,4.0,4.0
"Sam",5.0,2.0,,3.0,5.0,4.0,5.0,
"Veronica",3.0,,,5.0,4.0,2.5,3.0,'''

3. 条目格式(csv文本)

每一行代表一条记录,其形式为:用户,商品,打分

#数据格式:条目(用户、商品、打分)(避免巨型稀疏矩阵)
csv_txt = '''"Angelica","Blues Traveler",3.5
"Angelica","Broken Bells",2.0
"Angelica","Norah Jones",4.5
"Angelica","Phoenix",5.0
"Angelica","Slightly Stoopid",1.5
"Angelica","The Strokes",2.5
"Angelica","Vampire Weekend",2.0
"Bill","Blues Traveler",2.0
"Bill","Broken Bells",3.5
"Bill","Deadmau5",4.0
"Bill","Phoenix",2.0
"Bill","Slightly Stoopid",3.5
"Bill","Vampire Weekend",3.0
"Chan","Blues Traveler",5.0
"Chan","Broken Bells",1.0
"Chan","Deadmau5",1.0
"Chan","Norah Jones",3.0
"Chan","Phoenix",5,
"Chan","Slightly Stoopid",1.0
"Dan","Blues Traveler",3.0
"Dan","Broken Bells",4.0
"Dan","Deadmau5",4.5
"Dan","Phoenix",3.0
"Dan","Slightly Stoopid",4.5
"Dan","The Strokes",4.0
"Dan","Vampire Weekend",2.0
"Hailey","Broken Bells",4.0
"Hailey","Deadmau5",1.0
"Hailey","Norah Jones",4.0
"Hailey","The Strokes",4.0
"Hailey","Vampire Weekend",1.0
"Jordyn","Broken Bells",4.5
"Jordyn","Deadmau5",4.0
"Jordyn","Norah Jones",5.0
"Jordyn","Phoenix",5.0
"Jordyn","Slightly Stoopid",4.5
"Jordyn","The Strokes",4.0
"Jordyn","Vampire Weekend",4.0
"Sam","Blues Traveler",5.0
"Sam","Broken Bells",2.0
"Sam","Norah Jones",3.0
"Sam","Phoenix",5.0
"Sam","Slightly Stoopid",4.0
"Sam","The Strokes",5.0
"Veronica","Blues Traveler",3.0
"Veronica","Norah Jones",5.0
"Veronica","Phoenix",4.0
"Veronica","Slightly Stoopid",2.5
"Veronica","The Strokes",3.0'''
时间: 2024-07-31 02:51:44

【笔记2】推荐算法中的数据格式的相关文章

微博背后的大数据算法探寻:微博推荐算法简述

在介绍微博推荐算法之前,我们先聊一聊推荐系统和推荐算法.有这样一些问题:推荐系统适用哪些场景?用来解决什么问题.具有怎样的价值?效果如何衡量? 推荐系统诞生很早,但真正被大家所重视,缘起于以"facebook"为代表的社会化网络的兴起和以"淘宝"为代表的电商的繁荣,"选择"的时代已经来临,信息和物品的极大丰富,让用户如浩瀚宇宙中的小点,无所适从.推荐系统迎来爆发的机会,变得离用户更近: 快速更新的信息,使用户需要借助群体的智慧,了解当前热点.信息

探寻微博背后的大数据原理:微博推荐算法简述

在介绍微博推荐算法之前,我们先聊一聊推荐系统和推荐算法.有这样一些问题:推荐系统适用哪些场景?用来解决什么问题.具有怎样的价值?效果如何衡量? 推荐系统诞生很早,但真正被大家所重视,缘起于以"facebook"为代表的社会化网络的兴起和以"淘宝"为代表的电商的繁荣,"选择"的时代已经来临,信息和物品的极大丰富,让用户如浩瀚宇宙中的小点,无所适从.推荐系统迎来爆发的机会,变得离用户更近: 快速更新的信息,使用户需要借助群体的智慧,了解当前热点. 信

用Spark学习矩阵分解推荐算法

在矩阵分解在协同过滤推荐算法中的应用中,我们对矩阵分解在推荐算法中的应用原理做了总结,这里我们就从实践的角度来用Spark学习矩阵分解推荐算法. 1. Spark推荐算法概述 在Spark MLlib中,推荐算法这块只实现了基于矩阵分解的协同过滤推荐算法.而基于的算法是FunkSVD算法,即将m个用户和n个物品对应的评分矩阵M分解为两个低维的矩阵: 其中k为分解成低维的维数,一般远比m和n小.如果大家对FunkSVD算法不熟悉,可以复习对应的原理篇. 2. Spark推荐算法类库介绍 在Spar

常用推荐算法

推荐系统的出现 随着互联网的发展,人们正处于一个信息爆炸的时代.相比于过去的信息匮乏,面对现阶段海量的信息数据,对信息的筛选和过滤成为了衡量一个系统好坏的重要指标.一个具有良好用户体验的系统,会将海量信息进行筛选.过滤,将用户最关注最感兴趣的信息展现在用户面前.这大大增加了系统工作的效率,也节省了用户筛选信息的时间. 搜索引擎的出现在一定程度上解决了信息筛选问题,但还远远不够.搜索引擎需要用户主动提供关键词来对海量信息进行筛选.当用户无法准确描述自己的需求时,搜索引擎的筛选效果将大打折扣,而用户

【笔记3】用pandas实现矩阵数据格式的推荐算法 (基于用户的协同)

原书作者使用字典dict实现推荐算法,并且惊叹于18行代码实现了向量的余弦夹角公式. 我用pandas实现相同的公式只要3行. 特别说明:本篇笔记是针对矩阵数据,下篇笔记是针对条目数据. ''' 基于用户的协同推荐 矩阵数据 ''' import pandas as pd from io import StringIO import json #数据类型一:csv矩阵(用户-商品)(适用于小数据量) csv_txt = '''"user","Blues Traveler&qu

大数据-新闻推荐系统中的推荐算法

问题描述 新闻推荐系统中的推荐算法 如何有一个算法是从大数据的新闻列表中通过内容找到自己想要的新闻呢?基于Hadoop的可以.求大神们给一些思路.不要关系型数据库的. 解决方案 [推荐系统算法]推荐引擎算法学习导论 解决方案二: google 协同过滤算法google 新闻推荐 解决方案三: 协同过滤算法http://www.cnblogs.com/zhangchaoyang/articles/2664366.html 解决方案四: 一般做新闻推荐有三种推荐策略:第一是热门推荐,可以设置一个时间

网站拉拢用户的核心机密:推荐算法

文章描述:互联网无处不在的"推荐算法". 数据显示,三分之一的用户会根据电子商务网站的推荐买东西,这是任何广告都不可能做到的成绩.媒体上播放的大众化广告对消费者的影响已经越来越低,于是有人做出预见--个性化推荐技术将成为广告的终极形式.     很多年前,看过一部电影叫作<谁知女人心>,好莱坞大牌梅尔·吉布森饰演的男主角是一个典型的大男子主义者.一次浴室触电的意外突然让这个大男人获得了神奇的本领--"读心术",可以轻而易举地洞悉身边女人们的心事,听到她们

蛙蛙推荐:asp中的多条件组合查询实现

条件|组合查询 <!-- 蛙蛙推荐:asp中的多条件组合查询实现多条件组合查询在很多地方都很有用,本文用一个简单的例子来实现一种组合查询在示例之前请确保你安装有sqlserver2000及其默认数据库NorhtWind.代码非常直观,加上关键部分我做了注释,所以很容易理解.需要注意的几个问题就是:1.在字符串连接的时候注意两个需要连接的串中第二个串的开头第一个字符应该打一个空格,这样不至于两个串的首尾相连成一个单词.2.righ的left函数取出的结构区分大小写,如果你字符串里用的是'and',

mahout算法中new Configuration问题

版本:hadoop2.4+mahout0.9 在web程序中调用云平台mahout的算法时,有时会遇到找不到路径的问题,比如org.apache.mahout.clustering.classify.ClusterClassifier这个类中的 public void readFromSeqFiles(Configuration conf, Path path) throws IOException { Configuration config = new Configuration(); Li