我正在使用 Orange CN2 规则归纳算法进行欺诈率非常低(低于 0.1%)的欺诈检测。默认情况下,CN2 学习两个类(欺诈和非欺诈)的规则。由于我只对欺诈类规则感兴趣,因此学习非欺诈规则是浪费时间,尤其是考虑到我需要在许多数据集上运行 CN2。CN2 是否可以只学习欺诈类规则,如果可以,如何在脚本中配置它来做到这一点?谢谢!
问问题
1254 次
1 回答
2
您正在使用的CN2UnorderedLearner
课程基于基本的橙色规则学习器,事实上,它已经学习了一个课程的规则。要学习一个类,您只需要指定target_class
并调用父类。像这样的东西:
cn2_learner.target_class = 0 # you can change this to get other classes
cn2_classifier = Orange.classification.rules.RuleLearner.__call__(cn2_learner, train, 0)
#cn2_classifier = cn2_learner(train)
for r in cn2_classifier.rules:
print Orange.classification.rules.rule_to_string(r)
于 2015-07-01T09:55:21.270 回答