Machine learning 关联规则-非二进制项

Machine learning 关联规则-非二进制项,machine-learning,Machine Learning,我研究过关联规则,知道如何在经典的商品篮问题上实现算法,例如: Transaction ID Potatoes Eggs Milk A 1 0 1 B 0 1 1 在这个问题中,每个项都有一个二进制标识符。1表示篮子包含货物,0表示不包含货物 但是,对一个可以容纳许多相同商品的篮子进行建模的最佳方法是什么呢?例如,举下面这个非常不现实的例子 Transaction

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

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
在这种情况下,使用二元指标显然会丢失大量信息,我正在寻找一个模型,该模型不仅考虑篮子中项目的存在,而且还考虑项目出现的频率

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


在我的实际数据中,有100多个项目,根据用户购物篮的配置文件,我想计算客户消费其他可用项目的概率。

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

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

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


多一点幻想是使用3个完全连接的层,中间层有一个下落。

另一个选择是使用二元指示符,但以更巧妙的方式构造它们。

这样做的目的是在金额超过中心值时设置指标,这意味着它应该是重要的。如果每个人平均买3个面包,那么在买两个或三个面包的人身上贴上面包爱好者的标签有意义吗

中心值可以是一个简单的算术平均值,一个去除了异常值的平均值,或者是中值

而不是:

binarize(x)  =   0    if x = 0
                 1    otherwise
你可以用

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