关联规则 - 非二元项

时间:2017-06-07 15:43:46

标签: machine-learning

我研究过关联规则并知道如何在经典的商品问题上实施算法,例如:

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

在这种情况下使用二进制指示器显然会丢失大量信息,而我正在寻找的模型不仅要考虑篮子中物品的存在,还要考虑物品出现的频率。

这个问题的合适算法是什么?

在我的实际数据中,有超过一百个项目,并且根据用户购物篮的个人资料,我想计算消费其他可用项目的客户的概率。

2 个答案:

答案 0 :(得分:0)

一种替代方法是使用二进制指示符,但以更巧妙的方式构造它们

想法是在金额大于中心值时设置指标,这意味着该指标很重要。如果每个人平均购买3个面包,那么将某人标记为“买两个或三个”的“面包爱好者”有意义吗?

中心值可以是简单的算术平均值,除去了异常值的平均值或中位数。

代替:

binarize*(x) =   0    if x <= central(X)
                 1    otherwise

您可以使用

{{1}}

答案 1 :(得分:-1)

我认为如果你真的想要概率就是以概率的方式对数据进行编码。贝叶斯网络或马尔可夫网络可能是一种可行的方式。然而,如果没有合理的结构,这将是计算极其广泛的。但是,对于三种类型,这似乎是可行的

如果您有更多项目类型,我会尝试使用神经网络自动编码器。如果数据中存在某种依赖关系,它会发现。

对于上面的示例,您可以使用具有三个输入,两个隐藏和三个输出神经元的网络。

更加花哨的是使用3个完全连接的层,中间层有辍学。