From cc41068e6b4566633ebc7a841290ce167671d2bf Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Tue, 18 Apr 2017 17:25:18 +0200 Subject: Store student submissions in files instead of .pickle --- abml/rules_prolog.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'abml/rules_prolog.py') 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 -- cgit v1.2.1