推荐者:记录用户操作并对其进行数据处理 - 很好的解决方案

Qui*_*Par 10 algorithm recommendation-engine machine-learning

我打算记录所有用户操作,如查看过的页面,标签等.

什么是一个良好的精益解决方案来挖掘数据以获得建议
说像:

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

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

让我重新说一下.
让我们说像stackoverflowQuora这样的网站.我记录了所有浏览不同问题的浏览历史记录,Quora会进行数据挖掘工作,查看并填充相关问题.我会回答有关育儿的问题,下次登录时我会看到有关育儿的问题.与亚马逊购物同上.我浏览手表和搅拌机,两天后他们发给我一份我感兴趣的相关购物项目的邮件.

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

Hub*_*ast 3

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

\n\n

我给你举个例子:

\n\n

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

\n\n

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

\n\n

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

\n\n

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

\n\n

然后你处理所有的数据。如果一位顾客一次购买了 20 件产品,则您有 20 * 19 / 2 = 190 对。对于这一对中的每一对,您都会在数据库中增加此次购买的时间和地点的计数器。但是你应该增加计数器多少呢?就差1了?还是按购买产品的数量?但你有一对两种产品。你应该取两者的总和吗?还是最大?最好使用多个计数器,以便能够以您能想到的所有方式进行计数。

\n\n

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

\n\n

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

\n\n

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

\n\n

请记住:数据挖掘过程的成本只能由客户的额外讨价还价来承担!

\n\n

结论:

\n\n
    \n
  • 您必须存储成对、三重甚至更大的元组的项目,这将需要大量空间。因为你不知道最后会发现什么,所以你必须存储所有可能的组合!
  • \n
  • 你必须计算那些元组
  • \n
  • 您必须将计数值与估计值进行比较
  • \n
\n