我正在努力对数据集进行关联规则挖掘,该数据集有很多二进制属性,但也有很多分类属性。将分类转换为二进制在理论上是可能的,但不切实际。我正在寻找一种技术来解决这个问题。
以汽车规范数据为例,要执行关联规则挖掘,汽车颜色属性应该是二进制,对于颜色,我们有很多颜色要转换为二进制(我的数据集是保险声明,它比这个例子糟糕得多)。
最佳答案
关联规则挖掘不使用“属性”。它处理市场购物篮类型的数据。 将其预处理为二进制属性是没有意义的。因为您需要再次将二进制属性转换为项目(最坏的情况,如果您也在寻找,则将“color=blue”项目翻译为“color_red=0,color_black=0,... color_blue=1”负面规则。
不幸的是,不同的算法以及理论上相同的算法的不同实现将会有很大的不同。
APRIORI 的设计可以很好地适应交易数量,但不能很好地适应具有最低支持的不同项目的数量;特别是如果您期望短项集仅频繁出现。其他算法,例如 Eclat 和 FP-Growth 可能会更好。但是YMMV。
首先,尝试将数据集转换为购物篮格式,您认为每个项目都是相关的。丢弃所有其他东西。然后从较高的最低支持开始,直到开始获得结果。使用太低的最低支持运行可能会耗尽内存,或者可能需要很长时间。
此外,请确保得到良好的实现。很多自称是 APRIORI 的东西都只是一半,而且速度慢得令人难以置信。
关于machine-learning - 每个属性具有大量值的分类数据的关联规则挖掘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27908105/