生成分类规则的算法


11

因此,我们有潜力将一种机器学习应用程序很好地适合分类器所解决的传统问题领域,即,我们拥有一组属性,这些属性描述了最终出现的项目和“存储桶”。但是,不是创建模型对于诸如朴素贝叶斯(Naive Bayes)或类似分类器之类的概率,我们希望我们的输出是一组大致人类可读的规则,可由最终用户查看和修改。

关联规则学习看起来像解决这类问题的算法家族,但是这些算法似乎专注于识别功能的常见组合,并且不包括这些功能可能指向的最终存储桶的概念。例如,我们的数据集如下所示:

Item A { 4-door, small, steel } => { sedan }
Item B { 2-door, big,   steel } => { truck }
Item C { 2-door, small, steel } => { coupe }

我只想要说“如果大而有两扇门,那是一辆卡车”的规则,而不是说“如果是四成之门也很小”的规则。

我可以想到的一种解决方法是,仅使用关联规则学习算法,而忽略不涉及结束存储桶的规则,但这似乎有些hacker。我是否错过了一些算法系列?还是我一开始就错误地解决了这个问题?

Answers:


9

Quinlan生产的C45能够产生预测规则。检查此维基百科页面。我知道在Weka中它的名字叫J48。我不知道这是在R或Python中的实现。无论如何,从这种决策树中,您应该能够推断出预测规则。

以后编辑

另外,您可能对直接推断分类规则的算法感兴趣。RIPPER是其中之一,它在Weka中又获得了另一个名称JRip。参见RIPPER:快速有效规则归纳的原始论文,WW Cohen 1995


我在先前的项目中曾尝试过C45 / J48。我没有意识到我可以从中获取规则。我还将检查RIPPER。谢谢!
super_seabass 2014年

此外,在R.检查出的C50包
nfmcclure

想要提供有关此问题/答案的更新:我们一直在使用JRip取得了一些成功,但是我们的主要竞争者是FURIA(cs.uni-paderborn.de/fileadmin/Informatik/eim-i-is/PDFs / ...)。它正在生成供人工检查/使用的最佳规则,因为它试图生成详尽的规则集。JRip制定了很好的规则,但是当没有其他规则适用时,它具有用于分类的“默认”规则。默认存储桶在我们项目的业务环境中不能很好地工作,我们需要详尽的规则。
super_seabass 2014年

7

根据您的描述,它实际上甚至比这还要简单-您只需要寻找一种基本的分类树算法即可(因此,不需要像C4.5这样稍微更复杂的变量,这些变量针对预测精度进行了优化)。规范文本为:

http://www.amazon.com/Classification-Regression-Wadsworth-Statistics-Probability/dp/0412048418

这很容易在R中实现:

http://cran.r-project.org/web/packages/tree/tree.pdf

和Python:

http://scikit-learn.org/stable/modules/tree.html


我不同意树木对这里有帮助。这是过滤规则的问题,可以使用R中的arules软件包来实现。–
adesantos


1

您应该尝试使用 R中的arules软件包。它不仅可以创建关联规则,还可以指定每个规则的长度,每个规则的重要性,还可以过滤它们,这就是您想要的(尝试此包的rhs()命令)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.