我可以使用 Orange CN2 classifier 来学习一个 class 的规则吗?
Can I use Orange CN2 classifier to learn rules for one class only?
我正在使用 Orange CN2 规则归纳算法进行欺诈率非常低(低于 0.1%)的欺诈检测。默认情况下,CN2 学习两种 classes(欺诈和非欺诈)的规则。由于我只对欺诈 class 规则感兴趣,学习非欺诈规则是浪费时间,尤其是考虑到我需要在许多数据集上 运行 CN2。 CN2 是否可以仅学习 Fraud class 规则,如果是,如何在脚本中配置它来执行此操作?谢谢!
您正在使用的 CN2UnorderedLearner
class 基于基本的橙色规则学习器,事实上,它已经学习了一个 class 的规则。要学习一个 class 只需要指定 target_class
并调用父 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)
我正在使用 Orange CN2 规则归纳算法进行欺诈率非常低(低于 0.1%)的欺诈检测。默认情况下,CN2 学习两种 classes(欺诈和非欺诈)的规则。由于我只对欺诈 class 规则感兴趣,学习非欺诈规则是浪费时间,尤其是考虑到我需要在许多数据集上 运行 CN2。 CN2 是否可以仅学习 Fraud class 规则,如果是,如何在脚本中配置它来执行此操作?谢谢!
您正在使用的 CN2UnorderedLearner
class 基于基本的橙色规则学习器,事实上,它已经学习了一个 class 的规则。要学习一个 class 只需要指定 target_class
并调用父 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)