我研究过关联规则并知道如何在经典的商品问题上实施算法,例如:
Transaction ID Potatoes Eggs Milk
A 1 0 1
B 0 1 1
在这个问题中,每个项目都有一个二进制标识符。 1表示篮子包含商品,0表示不包含商品。
但是,对于可以包含许多相同商品的篮子来说,最好的方法是什么呢?例如,采取以下非常不切实际的例子。
Transaction ID Potatoes Eggs Milk
A 5 0 178
B 0 35 7
在这种情况下使用二进制指示器显然会丢失大量信息,而我正在寻找的模型不仅要考虑篮子中物品的存在,还要考虑物品出现的频率。
这个问题的合适算法是什么?
在我的实际数据中,有超过一百个项目,并且根据用户购物篮的个人资料,我想计算消费其他可用项目的客户的概率。
答案 0 :(得分:0)
一种替代方法是使用二进制指示符,但以更巧妙的方式构造它们。
想法是在金额大于中心值时设置指标,这意味着该指标很重要。如果每个人平均购买3个面包,那么将某人标记为“买两个或三个”的“面包爱好者”有意义吗?
中心值可以是简单的算术平均值,除去了异常值的平均值或中位数。
代替:
binarize*(x) = 0 if x <= central(X)
1 otherwise
您可以使用
{{1}}
答案 1 :(得分:-1)
我认为如果你真的想要概率就是以概率的方式对数据进行编码。贝叶斯网络或马尔可夫网络可能是一种可行的方式。然而,如果没有合理的结构,这将是计算极其广泛的。但是,对于三种类型,这似乎是可行的
如果您有更多项目类型,我会尝试使用神经网络自动编码器。如果数据中存在某种依赖关系,它会发现。
对于上面的示例,您可以使用具有三个输入,两个隐藏和三个输出神经元的网络。
更加花哨的是使用3个完全连接的层,中间层有辍学。