1

不正率が非常に低い (0.1% 未満) 不正検出に Orange CN2 ルール誘導アルゴリズムを使用しています。デフォルトでは、CN2 は両方のクラス (Fraud と Non-Fraud) のルールを学習します。私は Fraud クラス ルールのみに関心があるため、特に多くのデータセットで CN2 を実行する必要があることを考えると、非不正ルールの学習は時間の無駄です。CN2 が Fraud クラス ルールのみを学習することは可能ですか? 可能である場合、スクリプトでこれを構成する方法を教えてください。ありがとう!

4

1 に答える 1

2

使用CN2UnorderedLearnerしているクラスは基本的なオレンジ色のルールラーナーに基づいており、実際には既に 1 つのクラスのルールのみを学習しています。1 つのクラスだけを学習するには、 を指定し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 に答える