我有很多如下所示的数据:
<A,B,C,D,E,F>
…
我想知道是否有方法可以确定向量中不同列之间的关联。这种关联在整个数据中是一致的。例如,其中一条规则是
if (A changes by 1) B changes by 1
我想能够自动生成这些规则,如果可以的话,请问是否有可用的库来完成这个任务?
回答:
您描述的技术,虽然是一个用例,通常被称为关联规则或市场篮分析。(后一个术语反映了这些算法最早的应用,即研究超市中消费者行为——例如,如果一个购物者购买了一罐花生酱,他们购买一罐蜂蜜的频率是多少?)
至少有一个Python库,Orange,它有一个关联规则模块。
关联规则代码位于Orange模块中,orngAssoc。
通常,您传入数据和一个“阈值标准”(指定给定数据行中任何两个项目之间的关联必须有多强),算法会返回一组超过该阈值的规则。
Orange A/R模块的一个非常有趣的特点是,它可以选择性地返回项目集——即,满足这些规则集的数据行。
Orange的A/R模块的文档简洁明了,并提供了几个简单的可运行代码示例(即,您可以直接插入到A/R模块中)。
我强烈推荐这个模块——在过去几个月中我使用了大约十二次。它的引擎似乎与我使用过的其他实现一样好(Orange实现了Agrawal的动态归纳算法,以及该算法的修改形式);Orange关联规则模块的吸引力在于(在我看来)它比其他模块更易于使用,并且结果以更易于解释和通常更有用的形式返回(即,项目集)——再次,与其他实现相比。