summaryrefslogtreecommitdiff
path: root/abml/rules_prolog.py
diff options
context:
space:
mode:
Diffstat (limited to 'abml/rules_prolog.py')
-rw-r--r--abml/rules_prolog.py14
1 files changed, 8 insertions, 6 deletions
diff --git a/abml/rules_prolog.py b/abml/rules_prolog.py
index 9edd674..f67ba93 100644
--- a/abml/rules_prolog.py
+++ b/abml/rules_prolog.py
@@ -1,6 +1,8 @@
-import numpy as np
-import pickle
import itertools
+import os.path
+import pickle
+
+import numpy as np
from Orange.classification.rules import _RuleClassifier, GuardianValidator
import orangecontrib.abml.abrules as rules
from Orange.classification.rules import Rule
@@ -92,14 +94,14 @@ class NegativeFirstClassifier(_RuleClassifier):
return probabilities
class Rules4Prolog:
- def __init__(self, name, threshold):
+ def __init__(self, path, threshold):
self.threshold = threshold
self.learner = rules.ABRuleLearner(width=50, parent_alpha=0.05)
self.learner.rule_finder.general_validator = TrueCondValidator(self.learner.rule_finder.general_validator.max_rule_length,
self.learner.rule_finder.general_validator.min_covered_examples)
self.learner.rule_validator = PureAccuracyValidator(0, self.threshold)
self.learner.classifier = NegativeFirstClassifier
- self.learner.evds = pickle.load(open("data/{}/evds.pickle".format(name), "rb"))
+ self.learner.evds = pickle.load(open(os.path.join(path, 'evds.pickle'), 'rb'))
def __call__(self, data):
# first learn rules for negative class (quality should be higher than
@@ -161,13 +163,13 @@ class Rules4Prolog:
-def create_learner(name, evds=True):
+def create_learner(path, evds=True):
rule_learner = rules.ABRuleLearner(width=50, parent_alpha=0.05)
rule_learner.rule_finder.general_validator = TrueCondValidator(rule_learner.rule_finder.general_validator.max_rule_length,
rule_learner.rule_finder.general_validator.min_covered_examples)
rule_learner.rule_validator = PureAccuracyValidator(0, 0.8)
rule_learner.classifier = NegativeFirstClassifier
if evds:
- rule_learner.evds = pickle.load(open("data/{}/evds.pickle".format(name), "rb"))
+ rule_learner.evds = pickle.load(open(os.path.join(path, 'evds.pickle'), 'rb'))
return rule_learner