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