生成分类规则的算法

数据挖掘 机器学习 分类
2021-09-28 03:05:00

因此,我们有可能开发出一种机器学习应用程序,该应用程序非常适合分类器解决的传统问题域,即,我们有一组描述项目的属性和它们最终进入的“桶”。然而,与其创建模型对于朴素贝叶斯或类似分类器中的概率,我们希望我们的输出是一组大致人类可读的规则,最终用户可以查看和修改。

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

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

我只想要“如果它是大的和两门的,那就是卡车”的规则,而不是说“如果它是一个四门的它也很小”的规则。

我能想到的一种解决方法是简单地使用关联规则学习算法并忽略不涉及结束桶的规则,但这似乎有点 hacky。我是否错过了一些算法家族?或者我一开始就错误地解决了这个问题?

4个回答

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

稍后编辑

此外,您可能对直接推断分类规则的算法感兴趣。RIPPER 就是其中之一,它再次在 Weka 中获得了不同的名称 JRip。请参阅 RIPPER 的原始论文:Fast Effective Rule Induction,WW Cohen 1995

根据您的描述,它实际上比这更简单——您只是在寻找一个基本的分类树算法(因此不需要像 C4.5 这样针对预测准确性进行优化的稍微复杂的变体)。规范文本是this

这很容易在RPython中实现。

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