Esempio n. 1
0
    def plot(model_name, dataset, datasize):
        exp = "2"
        path_manager = PathManager(model_name, dataset)
        dist = defaultdict(list)
        for expl_name in AbsExp.get_method_names():
            result_file = path_manager.result_json_path(
                exp, expl_name, datasize)
            if os.path.isfile(result_file):
                with open(result_file) as f:
                    results = json.loads(f.readlines()[0])
                    for value in results.values():
                        dist[expl_name].append(value["L1Distance"])

        pdf_name = path_manager.figure_path(datasize, exp)
        pp = PdfPages(pdf_name)
        values, names = [], []
        for i, j in sorted(dist.items(), key=Plot.sort_key, reverse=False):
            values.append(j)
            names.append(i)
        Plot.plot_box(values, names, pp, model_name, "L1Dist", True, False,
                      pdf_name)
        pp.close()
Esempio n. 2
0
    def plot(model_name, dataset, datasize):
        exp = "7"
        path_manager = PathManager(model_name, dataset)
        cs = defaultdict(list)
        for feature_type in AbsExp.get_attribute_method_names():
            result_file = path_manager.result_json_path(
                exp, feature_type, datasize)
            if os.path.isfile(result_file):
                with open(result_file) as f:
                    results = json.loads(f.readlines()[0])
                    for value in results.values():
                        cs[feature_type].append(value["Cosine"])

        pdf_name = path_manager.figure_path(datasize, exp)
        pp = PdfPages(pdf_name)
        values, names = [], []
        for i, j in sorted(cs.items(), key=Plot.sort_key, reverse=True):
            values.append(sorted(j, reverse=True))
            names.append(i)
        Plot.plot_line(values, names, pp, model_name, "CS",
                       "Index of Instance", [-0.05, 1.1], 0.5, (18, 6),
                       (100, 300))
        pp.close()
Esempio n. 3
0
    def plot(model_name, dataset, datasize):
        exp = "1"
        wd = defaultdict(list)
        rd = defaultdict(list)
        path_manager = PathManager(model_name, dataset)
        for expl_name in AbsExp.get_method_names():
            result_file = path_manager.result_json_path(
                exp, expl_name, datasize)
            # ##############################################
            # if "Open" not in result_file:
            #     continue
            # ##############################################
            if os.path.isfile(result_file):
                with open(result_file) as f:
                    results = json.loads(f.readlines()[0])
                    for result in results.values():
                        wd[expl_name].append(result["CoreParameter"])
                        rd[expl_name].append(0 if result["Polytope"] ==
                                             0 else 1)

        pdf_name = path_manager.figure_path(datasize, exp)
        pp = PdfPages(pdf_name)
        values, names = [], []
        logger.info("WD {}".format({i: np.mean(j) for i, j in wd.items()}))
        for i, j in sorted(wd.items(), key=Plot.sort_key, reverse=False):
            values.append(j)
            names.append(i)
        Plot.plot_box(values, names, pp, model_name, "WD", False, True,
                      pdf_name)

        logger.info("RD {}".format({i: np.mean(j) for i, j in rd.items()}))
        values, names = [], []
        for i, j in sorted(rd.items(), key=Plot.sort_key, reverse=False):
            values.append(j)
            names.append(i)
        Plot.plot_scatter(values, names, pp, model_name, "RD")
        pp.close()
Esempio n. 4
0
    def plot(model_name, dataset, datasize):
        exp = "3"
        path_manager = PathManager(model_name, dataset)
        cs = defaultdict(list)
        for expl_name in AbsExp.get_method_names():
            result_file = path_manager.result_json_path(
                exp, expl_name, datasize)
            if os.path.isfile(result_file):
                with open(result_file) as f:
                    results = json.loads(f.readlines()[0])
                    for value in results.values():
                        cs[expl_name].append(value["Cosine"])

        pdf_name = path_manager.figure_path(datasize, exp)
        pp = PdfPages(pdf_name)
        values, names = [], []
        for i, j in sorted(cs.items(), key=Plot.sort_key, reverse=True):
            if "-08" not in i and "0.0001" not in i and "Ground" not in i:
                continue
            values.append(sorted(j, reverse=True))
            names.append(i)
        Plot.plot_line(values, names, pp, model_name, "CS",
                       "Index of Instance", [-0.05, 1.1], 0.5)
        pp.close()