From 7aa0fbd5d6fa4f06a35fc3dcd1779ff28b59af63 Mon Sep 17 00:00:00 2001 From: Baptiste Bauvin <baptiste.bauvin@lis-lab.fr> Date: Fri, 10 Aug 2018 18:40:43 -0400 Subject: [PATCH] Working --- .../MonoMultiViewClassifiers/Monoview/MonoviewUtils.py | 3 +++ .../MonoMultiViewClassifiers/MonoviewClassifiers/CQBoostv2.py | 3 +++ .../MonoviewClassifiers/CQBoostv21.py | 3 +++ .../MonoviewClassifiers/QarBoostNC.py | 3 +++ .../MonoviewClassifiers/QarBoostNC2.py | 3 +++ .../MonoviewClassifiers/QarBoostv2.py | 3 +++ .../MonoviewClassifiers/QarBoostv3.py | 3 +++ .../MultiviewClassifiers/Fusion/FusionModule.py | 4 +++- multiview_platform/MonoMultiViewClassifiers/ResultAnalysis.py | 1 + .../MonoMultiViewClassifiers/utils/GetMultiviewDb.py | 4 ++-- 10 files changed, 27 insertions(+), 3 deletions(-) diff --git a/multiview_platform/MonoMultiViewClassifiers/Monoview/MonoviewUtils.py b/multiview_platform/MonoMultiViewClassifiers/Monoview/MonoviewUtils.py index 9f4260d7..77be2405 100644 --- a/multiview_platform/MonoMultiViewClassifiers/Monoview/MonoviewUtils.py +++ b/multiview_platform/MonoMultiViewClassifiers/Monoview/MonoviewUtils.py @@ -166,6 +166,9 @@ class BaseMonoviewClassifier(object): ", feature importance : " + str(featureImportance) + "\n" return interpretString + def get_name_for_fusion(self): + return self.__class__.__name__[:4] + def get_names(classed_list): return np.array([object_.__class__.__name__ for object_ in classed_list]) diff --git a/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/CQBoostv2.py b/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/CQBoostv2.py index ea98bf3e..98a9d653 100644 --- a/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/CQBoostv2.py +++ b/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/CQBoostv2.py @@ -79,6 +79,9 @@ class CQBoostv2(ColumnGenerationClassifierv2, BaseMonoviewClassifier): def getInterpret(self, directory): return getInterpretBase(self, directory, "CQBoostv2", self.weights_,) + def get_name_for_fusion(self): + return "CQB2" + def formatCmdArgs(args): """Used to format kwargs for the parsed args""" diff --git a/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/CQBoostv21.py b/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/CQBoostv21.py index ce990e81..516c7bb0 100644 --- a/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/CQBoostv21.py +++ b/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/CQBoostv21.py @@ -261,6 +261,9 @@ class CQBoostv21(CqBoostClassifierv21, BaseMonoviewClassifier): def getInterpret(self, directory): return getInterpretBase(self, directory, "CQBoostv21", self.weights_, self.break_cause) + def get_name_for_fusion(self): + return "CQ21" + def formatCmdArgs(args): """Used to format kwargs for the parsed args""" diff --git a/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/QarBoostNC.py b/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/QarBoostNC.py index 7c02053f..bda1bf70 100644 --- a/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/QarBoostNC.py +++ b/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/QarBoostNC.py @@ -23,6 +23,9 @@ class QarBoostNC(ColumnGenerationClassifierQar, BaseMonoviewClassifier): def getInterpret(self, directory): return getInterpretBase(self, directory, "QarBoostNC", self.weights_, self.break_cause) + def get_name_for_fusion(self): + return "QBNC" + def formatCmdArgs(args): """Used to format kwargs for the parsed args""" diff --git a/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/QarBoostNC2.py b/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/QarBoostNC2.py index 1f1d9fd8..35cce384 100644 --- a/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/QarBoostNC2.py +++ b/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/QarBoostNC2.py @@ -23,6 +23,9 @@ class QarBoostNC2(ColumnGenerationClassifierQar, BaseMonoviewClassifier): def getInterpret(self, directory): return getInterpretBase(self, directory, "QarBoostNC2", self.weights_, self.break_cause) + def get_name_for_fusion(self): + return "QBN2" + def formatCmdArgs(args): """Used to format kwargs for the parsed args""" diff --git a/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/QarBoostv2.py b/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/QarBoostv2.py index 4fe7364c..5b8b234e 100644 --- a/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/QarBoostv2.py +++ b/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/QarBoostv2.py @@ -23,6 +23,9 @@ class QarBoostv2(ColumnGenerationClassifierQar, BaseMonoviewClassifier): def getInterpret(self, directory): return getInterpretBase(self, directory, "QarBoostv2", self.weights_, self.break_cause) + def get_name_for_fusion(self): + return "QBv2" + def formatCmdArgs(args): """Used to format kwargs for the parsed args""" diff --git a/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/QarBoostv3.py b/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/QarBoostv3.py index b9f5e73c..d14e66ff 100644 --- a/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/QarBoostv3.py +++ b/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/QarBoostv3.py @@ -50,6 +50,9 @@ class QarBoostv3(ColumnGenerationClassifierQar3, BaseMonoviewClassifier): def getInterpret(self, directory): return getInterpretBase(self, directory, "QarBoostv3", self.weights_, self.break_cause) + def get_name_for_fusion(self): + return "QBv3" + def formatCmdArgs(args): """Used to format kwargs for the parsed args""" kwargsDict = {} diff --git a/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/FusionModule.py b/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/FusionModule.py index a222a599..97540300 100644 --- a/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/FusionModule.py +++ b/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/FusionModule.py @@ -23,7 +23,9 @@ def genName(config): classifierRedNames = [classifierName[:4] for classifierName in config["classifiersNames"]] return "Late-" + str(config["fusionMethod"][:4])#+"-"+"-".join(classifierRedNames) elif config["fusionType"] == "EarlyFusion": - return "Early-" + config["fusionMethod"][:4] + "-" + config["classifiersNames"][:4] + monoview_short_name = getattr(getattr(MonoviewClassifiers, config["classifiersNames"]), + config["classifiersNames"])().get_name_for_fusion() + return "Early-" + config["fusionMethod"][:4] + "-" + monoview_short_name def getBenchmark(benchmark, args=None): diff --git a/multiview_platform/MonoMultiViewClassifiers/ResultAnalysis.py b/multiview_platform/MonoMultiViewClassifiers/ResultAnalysis.py index f148f7e5..8905d16b 100644 --- a/multiview_platform/MonoMultiViewClassifiers/ResultAnalysis.py +++ b/multiview_platform/MonoMultiViewClassifiers/ResultAnalysis.py @@ -425,6 +425,7 @@ def publishIterBiclassMetricsScores(iterResults, directory, labelsDictionary, cl testSTDs = np.std(testScores, axis=1) nbResults = len(trainMeans) reversedClassifiersDict = dict((value, key) for key, value in classifiersDict.items()) + # import pdb;pdb.set_trace() names = [reversedClassifiersDict[i] for i in range(len(classifiersDict))] size=nbResults if nbResults<minSize: diff --git a/multiview_platform/MonoMultiViewClassifiers/utils/GetMultiviewDb.py b/multiview_platform/MonoMultiViewClassifiers/utils/GetMultiviewDb.py index 5726b95f..9a9f486f 100644 --- a/multiview_platform/MonoMultiViewClassifiers/utils/GetMultiviewDb.py +++ b/multiview_platform/MonoMultiViewClassifiers/utils/GetMultiviewDb.py @@ -53,11 +53,11 @@ def makeMeNoisy(viewData, randomState, percentage=15): def getPlausibleDBhdf5(features, pathF, name, NB_CLASS=3, LABELS_NAME="", randomState=None, full=True, nbView=3, - nbClass=2, datasetLength=347, randomStateInt=None): + nbClass=2, datasetLength=34, randomStateInt=None): """Used to generate a plausible dataset to test the algorithms""" randomStateInt = 42 randomState = np.random.RandomState(randomStateInt) - nbFeatures = 100 + nbFeatures = 10 if not os.path.exists(os.path.dirname(pathF + "Plausible.hdf5")): try: os.makedirs(os.path.dirname(pathF + "Plausible.hdf5")) -- GitLab