10

我计划记录所有用户操作,例如查看的页面、标签等。

对这些数据进行数据挖掘以获得建议的精益解决方案是什么?
像这样说:

  • 从查看的 URL 中找出所有兴趣(假设我知道相关的标签)
  • 找出有相似兴趣的人。例如,John & Jane 查看了与汽车等相关的 URL

编辑:
这确实是我在这个领域缺乏知识,这是开始的一个限制因素。

让我重述一下。
让我们说一个像stackoverflowQuora这样的网站。我所有浏览不同问题的历史记录都会被记录下来,Quora 会进行数据挖掘工作,通过它查看并用相关问题填充我的信息流。我浏览了有关育儿的问题,下次登录时,我会看到有关育儿的问题。与亚马逊购物同上。我浏览了手表和调音台,两天后他们给我发了一封我感兴趣的相关购物物品的邮件。

我的问题是,他们如何有效地存储这些数据,然后对其进行数据挖掘以显示下一组相关数据。

4

3 回答 3

3

数据挖掘是一种需要大量存储空间和大量计算能力的方法。

我给你举个例子:

想象一下,您是沃尔玛等大型连锁超市的老板,您想了解如何将您的产品投放到您的市场,以便消费者在进入您的商店时花很多钱。

首先,你需要一个想法。您的想法是找到经常一起购买的不同产品组的产品。如果你有这样一对产品,你应该把这些产品放在尽可能远的地方。如果客户想同时购买这两种产品,他/她必须走遍您的整个商店,这样您就可以放置其他可能很适合其中一对但销售频率不高的产品。一些客户会看到这个产品并购买它,这个附加产品的收入就是你的数据挖掘过程的收入。

所以你需要大量的数据。您必须存储从所有商店中所有客户的所有购买中获得的所有数据。当一个人买了一瓶牛奶、一根香肠和一些面包时,你需要存储已经卖出了什么商品、数量和价格。如果您想注意到牛奶和香肠是一起购买的,那么每次购买都需要有自己的 ID。

所以你有大量的购买数据。你有很多不同的产品。假设您在商店中销售 10.000 种不同的产品。每个产品都可以相互配对。这使得 10,000 * 10,000 / 2 = 50,000,000(5000 万)对。对于每个可能的配对,您必须找出它是否包含在购买中。但也许您认为周六下午的客户与周三上午晚些时候的客户不同。因此,您也必须存储购买时间。也许你每周定义 20 个时间片。这使得 50M * 20 = 10 亿条记录。而且由于孟菲斯的人们可能会购买与比佛利山庄不同的东西,因此您也需要数据中的位置。假设您定义了 50 个区域,因此您的数据库中有 500 亿条记录。

然后您处理所有数据。如果客户确实在一次购买中购买了 20 件产品,那么您有 20 * 19 / 2 = 190 双。对于这对中的每一对,您都在数据库中增加了此次购买的时间和地点的计数器。但是你应该通过什么来增加计数器?只差1?还是按购买产品的数量?但是你有一对两个产品。你应该取两者的总和吗?还是最大值?最好使用多个计数器,以便能够以您能想到的所有方式对其进行计数。

你还得做点别的:顾客买的牛奶和面包比香槟和鱼子酱要多得多。因此,如果他们选择任意产品,那么一对牛奶面包的数量当然比一对香槟-鱼子酱高。因此,当您分析数据时,您也必须注意其中的一些影响。

然后,当您完成所有这些操作后,您就可以进行数据挖掘查询了。您选择实际计数与估计计数的比率最高的对。您从具有数十亿条记录的数据库表中选择它。这可能需要几个小时来处理。因此,在提交查询之前,请仔细考虑您的查询是否真的是您想知道的!

您可能会发现,在乡村环境中,人们在周六下午购买的啤酒和尿布比您预期的要多得多。所以你只需要把啤酒放在商店的一端,尿布放在另一端,这会让很多人走过你的整个商店,在那里他们看到(并希望购买)许多他们不会看到的其他东西(并且购买)如果啤酒和尿布放在一起。

请记住:您的数据挖掘过程的成本仅由客户的额外讨价还价支付!

结论:

  • 您必须存储对、甚至更大的项目元组的三元组,这将需要大量空间。因为你不知道最后会找到什么,所以你必须存储所有可能的组合!
  • 你必须计算那些元组
  • 您必须将计数值与估计值进行比较
于 2012-08-24T12:34:13.303 回答
2

将每笔交易存储为标签向量(即包含这些标签的已访问页面)。然后对这些数据进行关联分析(我可以推荐 Weka),以使用可用的“关联”算法找到关联。当然,有效性取决于很多不同的事情。

我大学的一个人告诉我的一件事是,通常你可以简单地创建一个人购买的所有产品的向量,并将其与其他人的向量进行比较,并获得不错的推荐。那就是将用户表示为他们购买的产品或他们访问的页面,并进行例如 Jaccard 相似度计算。如果“人”是相似的,那么看看他们买的这个人没有的产品。(可能是同类人群中最常见的那些)

存储是一个完全不同的球赛,矢量数据有许多很好的索引,例如在不同 RDBM 中实现的 KD 树。

参加数据挖掘课程:) 或者只是阅读一本优秀的教科书(我读过 Pang-Ning tan 等人的《数据挖掘导论》,很好。)

而关于存储所有产品对等,当然没有这样做,而是使用基于支持和置信度的更有效的算法来修剪搜索空间。

于 2012-08-30T06:08:46.087 回答
0

我应该说推荐是机器学习问题。如何存储数据取决于您选择的算法。

于 2012-08-26T19:45:52.110 回答