#!/usr/bin/env python import utils if __name__ == '__main__': import classifiers from datamodel import * import database as db s=db.Session() evaluated=s.query(Link).filter(Link.evaluation != None).count() links=s.query(Link).filter(Link.evaluation != None).order_by(Link.date).all()[::2] print "Training on %d of %d evaluated links (every second element)" % (len(links),evaluated) for cl_name in utils.get_classifiers(): current=__import__('classifiers.'+cl_name,fromlist=[classifiers]) print "Training",cl_name current.train(links)
def show_classifiers(): import classifiers for cl_name in utils.get_classifiers(): current=__import__('classifiers.'+cl_name,fromlist=[classifiers]) print "- "+cl_name+":";current.print_self()
def test_classifiers(): from math import fabs cl_evaluations={} for cl_name in utils.get_classifiers(): cl_evaluations[cl_name]=ClassifierEvaluation(cl_name) return cl_evaluations
def compute(shift): before_after = pandas.DataFrame() for key in list(itertools.product(utils.get_projects(), utils.get_class_models(), utils.get_experiments(), ['ideal'], utils.get_smote(), utils.get_approaches(), utils.get_classifiers())): data = utils.get_item(key, 'data') before_after_local = compute_before_after_series(data, shift) before_after_local['project'] = key[0] before_after_local['approach'] = key[5] before_after = before_after.append(before_after_local, sort=False) utils.boxplot_approaches(before_after, 'before_after_fix_' + str(shift), 'difference', '', True, [-1, 1])