Skip to content
Snippets Groups Projects
Select Git revision
  • d8f038412845dd420096cde1fa7f9764916457dc
  • master default
  • object
  • develop protected
  • private_algos
  • cuisine
  • SMOTE
  • revert-76c4cca5
  • archive protected
  • no_graphviz
  • 0.0.1
11 results

ExecClassif.py

Blame
  • ResultAnalysis.py 1.64 KiB
    # Import built-in modules
    import time
    import pylab
    import logging
    
    # Import third party modules
    import matplotlib
    matplotlib.use('Agg')
    import matplotlib.pyplot as plt
    
    #Import own Modules
    import Metrics
    
    # Author-Info
    __author__ 	= "Baptiste Bauvin"
    __status__ 	= "Prototype"                           # Production, Development, Prototype
    
    
    def resultAnalysis(benchmark, results, name, times, metrics):
        for metric in metrics:
            mono, multi = results
            names = [res[1][0]+"-"+res[1][1][-1] for res in mono]
            names+=[type_ if type_ != "Fusion" else a["fusionType"]+"-"+a["fusionMethod"] for type_, a, b in multi]
            nbResults = len(mono)+len(multi)
            validationScores = [float(res[1][2][metric[0]][2]) for res in mono]
            validationScores += [float(scores[metric[0]][2]) for a, b, scores in multi]
            f = pylab.figure(figsize=(40, 30))
            fig = plt.gcf()
            fig.subplots_adjust(bottom=105.0, top=105.01)
            ax = f.add_axes([0.1, 0.1, 0.8, 0.8])
            if metric[1]!=None:
                metricKWARGS = dict((index, metricConfig) for index, metricConfig in enumerate(metric[1]))
            else:
                metricKWARGS = {}
            ax.set_title(getattr(Metrics, metric[0]).getConfig(**metricKWARGS)+" on validation set for each classifier")
            ax.bar(range(nbResults), validationScores, align='center')
            ax.set_xticks(range(nbResults))
            ax.set_xticklabels(names, rotation="vertical")
    
            f.savefig("Results/"+name+"-"+metric[0]+"-"+time.strftime("%Y%m%d-%H%M%S")+".png")
        logging.info("Extraction time : "+str(times[0])+"s, Monoview time : "+str(times[1])+"s, Multiview Time : "+str(times[2])+"s")