数据挖掘是一种需要大量存储空间和大量计算能力的方法。
我给你举个例子:
想象一下,您是沃尔玛等大型连锁超市的老板,您想了解如何将您的产品投放到您的市场,以便消费者在进入您的商店时花很多钱。
首先,你需要一个想法。您的想法是找到经常一起购买的不同产品组的产品。如果你有这样一对产品,你应该把这些产品放在尽可能远的地方。如果客户想同时购买这两种产品,他/她必须走遍您的整个商店,这样您就可以放置其他可能很适合其中一对但销售频率不高的产品。一些客户会看到这个产品并购买它,这个附加产品的收入就是你的数据挖掘过程的收入。
所以你需要大量的数据。您必须存储从所有商店中所有客户的所有购买中获得的所有数据。当一个人买了一瓶牛奶、一根香肠和一些面包时,你需要存储已经卖出了什么商品、数量和价格。如果您想注意到牛奶和香肠是一起购买的,那么每次购买都需要有自己的 ID。
所以你有大量的购买数据。你有很多不同的产品。假设您在商店中销售 10.000 种不同的产品。每个产品都可以相互配对。这使得 10,000 * 10,000 / 2 = 50,000,000(5000 万)对。对于每个可能的配对,您必须找出它是否包含在购买中。但也许您认为周六下午的客户与周三上午晚些时候的客户不同。因此,您也必须存储购买时间。也许你每周定义 20 个时间片。这使得 50M * 20 = 10 亿条记录。而且由于孟菲斯的人们可能会购买与比佛利山庄不同的东西,因此您也需要数据中的位置。假设您定义了 50 个区域,因此您的数据库中有 500 亿条记录。
然后您处理所有数据。如果客户确实在一次购买中购买了 20 件产品,那么您有 20 * 19 / 2 = 190 双。对于这对中的每一对,您都在数据库中增加了此次购买的时间和地点的计数器。但是你应该通过什么来增加计数器?只差1?还是按购买产品的数量?但是你有一对两个产品。你应该取两者的总和吗?还是最大值?最好使用多个计数器,以便能够以您能想到的所有方式对其进行计数。
你还得做点别的:顾客买的牛奶和面包比香槟和鱼子酱要多得多。因此,如果他们选择任意产品,那么一对牛奶面包的数量当然比一对香槟-鱼子酱高。因此,当您分析数据时,您也必须注意其中的一些影响。
然后,当您完成所有这些操作后,您就可以进行数据挖掘查询了。您选择实际计数与估计计数的比率最高的对。您从具有数十亿条记录的数据库表中选择它。这可能需要几个小时来处理。因此,在提交查询之前,请仔细考虑您的查询是否真的是您想知道的!
您可能会发现,在乡村环境中,人们在周六下午购买的啤酒和尿布比您预期的要多得多。所以你只需要把啤酒放在商店的一端,尿布放在另一端,这会让很多人走过你的整个商店,在那里他们看到(并希望购买)许多他们不会看到的其他东西(并且购买)如果啤酒和尿布放在一起。
请记住:您的数据挖掘过程的成本仅由客户的额外讨价还价支付!
结论:
- 您必须存储对、甚至更大的项目元组的三元组,这将需要大量空间。因为你不知道最后会找到什么,所以你必须存储所有可能的组合!
- 你必须计算那些元组
- 您必须将计数值与估计值进行比较