From 1745f3d504f28b1dcc770108310f5f9d0770c9ce Mon Sep 17 00:00:00 2001
From: bbauvin <baptiste.bauvin@centrale-marseille.fr>
Date: Tue, 17 Oct 2017 15:23:43 -0400
Subject: [PATCH] Modified Execclassif to free hyperparamsearch from multiview
 package

---
 Code/Exec.py                                             | 4 ++--
 Code/MonoMutliViewClassifiers/ExecClassif.py             | 2 +-
 .../MonoviewClassifiers/RandomForest.py                  | 4 ++--
 Code/MonoMutliViewClassifiers/Multiview/ExecMultiview.py | 6 +++---
 .../Multiview/Fusion/Methods/EarlyFusion.py              | 2 +-
 .../Multiview/Fusion/Methods/LateFusion.py               | 2 +-
 .../Multiview/Mumbo/Classifiers/DecisionTree.py          | 2 +-
 Code/MonoMutliViewClassifiers/Multiview/Mumbo/Mumbo.py   | 6 +++---
 .../Multiview/Mumbo/analyzeResults.py                    | 9 +++++----
 Code/MonoMutliViewClassifiers/Multiview/__init__.py      | 7 ++++++-
 Code/MonoMutliViewClassifiers/utils/Dataset.py           | 2 +-
 .../utils/HyperParameterSearch.py                        | 7 +++----
 Code/MonoMutliViewClassifiers/utils/__init__.py          | 2 +-
 Code/Tests/__init__.py                                   | 0
 Code/Tests/poulet.py                                     | 1 +
 Code/__init__.py                                         | 3 +--
 16 files changed, 32 insertions(+), 27 deletions(-)
 create mode 100644 Code/Tests/__init__.py
 create mode 100644 Code/Tests/poulet.py

diff --git a/Code/Exec.py b/Code/Exec.py
index ba70e864..f4a06d2f 100644
--- a/Code/Exec.py
+++ b/Code/Exec.py
@@ -1,5 +1,5 @@
 import sys
-from MonoMutliViewClassifiers.ExecClassif import execClassif
+from MonoMutliViewClassifiers import ExecClassif
 
-execClassif(sys.argv[1:])
+ExecClassif.execClassif(sys.argv[1:])
 
diff --git a/Code/MonoMutliViewClassifiers/ExecClassif.py b/Code/MonoMutliViewClassifiers/ExecClassif.py
index a4b70ca0..ed53a1f4 100644
--- a/Code/MonoMutliViewClassifiers/ExecClassif.py
+++ b/Code/MonoMutliViewClassifiers/ExecClassif.py
@@ -14,7 +14,7 @@ import matplotlib
 import h5py
 
 # Import own modules
-import Multiview
+from . import Multiview
 # import Metrics
 import MonoviewClassifiers
 from Multiview.ExecMultiview import ExecMultiview, ExecMultiview_multicore
diff --git a/Code/MonoMutliViewClassifiers/MonoviewClassifiers/RandomForest.py b/Code/MonoMutliViewClassifiers/MonoviewClassifiers/RandomForest.py
index 16246724..ba85738d 100644
--- a/Code/MonoMutliViewClassifiers/MonoviewClassifiers/RandomForest.py
+++ b/Code/MonoMutliViewClassifiers/MonoviewClassifiers/RandomForest.py
@@ -1,10 +1,10 @@
 from sklearn.ensemble import RandomForestClassifier
 from sklearn.pipeline import Pipeline
 from sklearn.model_selection import RandomizedSearchCV
-import Metrics
+from .. import Metrics
 from scipy.stats import randint
 import numpy as np
-from utils.HyperParameterSearch import genHeatMaps
+from ..utils.HyperParameterSearch import genHeatMaps
 
 # Author-Info
 __author__ = "Baptiste Bauvin"
diff --git a/Code/MonoMutliViewClassifiers/Multiview/ExecMultiview.py b/Code/MonoMutliViewClassifiers/Multiview/ExecMultiview.py
index a9d7bb3c..544c36e9 100644
--- a/Code/MonoMutliViewClassifiers/Multiview/ExecMultiview.py
+++ b/Code/MonoMutliViewClassifiers/Multiview/ExecMultiview.py
@@ -11,9 +11,9 @@ import logging
 import time
 import h5py
 
+from ..utils.Dataset import getShape
+from ..utils import HyperParameterSearch
 import Multiview
-from utils.Dataset import getShape
-from utils.HyperParameterSearch import searchBestSettings
 
 # Author-Info
 __author__ = "Baptiste Bauvin"
@@ -59,7 +59,7 @@ def ExecMultiview(directory, DATASET, name, classificationIndices, KFolds, nbCor
     analysisModule = getattr(classifierPackage, "analyzeResults")
 
     if hyperParamSearch != "None":
-        classifier = searchBestSettings(DATASET, CL_type, metrics, learningIndices, KFolds, randomState,
+        classifier = HyperParameterSearch.searchBestSettings(DATASET, classifierModule, CL_type, metrics, learningIndices, KFolds, randomState,
                                         viewsIndices=viewsIndices, searchingTool=hyperParamSearch, nIter=nIter,
                                         **classificationKWARGS)
     else:
diff --git a/Code/MonoMutliViewClassifiers/Multiview/Fusion/Methods/EarlyFusion.py b/Code/MonoMutliViewClassifiers/Multiview/Fusion/Methods/EarlyFusion.py
index ebfa665d..fa282d9c 100644
--- a/Code/MonoMutliViewClassifiers/Multiview/Fusion/Methods/EarlyFusion.py
+++ b/Code/MonoMutliViewClassifiers/Multiview/Fusion/Methods/EarlyFusion.py
@@ -2,7 +2,7 @@
 # -*- encoding: utf-8
 
 import numpy as np
-from utils.Dataset import getV
+from ....utils.Dataset import getV
 
 
 class EarlyFusionClassifier(object):
diff --git a/Code/MonoMutliViewClassifiers/Multiview/Fusion/Methods/LateFusion.py b/Code/MonoMutliViewClassifiers/Multiview/Fusion/Methods/LateFusion.py
index c2044a81..df9b88e9 100644
--- a/Code/MonoMutliViewClassifiers/Multiview/Fusion/Methods/LateFusion.py
+++ b/Code/MonoMutliViewClassifiers/Multiview/Fusion/Methods/LateFusion.py
@@ -9,7 +9,7 @@ from joblib import Parallel, delayed
 import os
 import sys
 
-import MonoviewClassifiers
+from  .... import MonoviewClassifiers
 import Metrics
 from utils.Dataset import getV
 
diff --git a/Code/MonoMutliViewClassifiers/Multiview/Mumbo/Classifiers/DecisionTree.py b/Code/MonoMutliViewClassifiers/Multiview/Mumbo/Classifiers/DecisionTree.py
index 14fc273d..3e8bbb5b 100644
--- a/Code/MonoMutliViewClassifiers/Multiview/Mumbo/Classifiers/DecisionTree.py
+++ b/Code/MonoMutliViewClassifiers/Multiview/Mumbo/Classifiers/DecisionTree.py
@@ -7,7 +7,7 @@ import logging
 
 # Add weights
 
-import Metrics
+from .... import Metrics
 
 
 class DecisionTree(BaseEstimator, ClassifierMixin):
diff --git a/Code/MonoMutliViewClassifiers/Multiview/Mumbo/Mumbo.py b/Code/MonoMutliViewClassifiers/Multiview/Mumbo/Mumbo.py
index a6de51d6..c79f4dec 100644
--- a/Code/MonoMutliViewClassifiers/Multiview/Mumbo/Mumbo.py
+++ b/Code/MonoMutliViewClassifiers/Multiview/Mumbo/Mumbo.py
@@ -2,13 +2,13 @@ import numpy as np
 import math
 from joblib import Parallel, delayed
 import itertools
-from Classifiers import *
 import time
-import Classifiers
 import pkgutil
 import logging
 from sklearn.metrics import accuracy_score
-from utils.Dataset import getV
+
+import Classifiers
+from ...utils.Dataset import getV
 
 # Author-Info
 __author__ = "Baptiste Bauvin"
diff --git a/Code/MonoMutliViewClassifiers/Multiview/Mumbo/analyzeResults.py b/Code/MonoMutliViewClassifiers/Multiview/Mumbo/analyzeResults.py
index 7a853245..e26ff468 100644
--- a/Code/MonoMutliViewClassifiers/Multiview/Mumbo/analyzeResults.py
+++ b/Code/MonoMutliViewClassifiers/Multiview/Mumbo/analyzeResults.py
@@ -6,11 +6,12 @@ matplotlib.use('Agg')
 import matplotlib.pyplot as plt
 import operator
 from datetime import timedelta as hms
-import Mumbo
-from Classifiers import *
 import logging
-import Metrics
-from utils.Dataset import getV, getShape
+
+# import Mumbo
+# from Classifiers import *
+from ... import Metrics
+from ...utils.Dataset import getV, getShape
 
 # Author-Info
 __author__ = "Baptiste Bauvin"
diff --git a/Code/MonoMutliViewClassifiers/Multiview/__init__.py b/Code/MonoMutliViewClassifiers/Multiview/__init__.py
index 9ed7abb2..c08e3796 100644
--- a/Code/MonoMutliViewClassifiers/Multiview/__init__.py
+++ b/Code/MonoMutliViewClassifiers/Multiview/__init__.py
@@ -1,2 +1,7 @@
-from . import GetMultiviewDb, Mumbo, Fusion, ExecMultiview
+from . import GetMultiviewDb, ExecMultiview, Mumbo, Fusion
+
+# from . import ExecMultiview
+# from . import Mumbo
+# from . import Fusion
+
 __all__ = ['Fusion', 'Mumbo']
diff --git a/Code/MonoMutliViewClassifiers/utils/Dataset.py b/Code/MonoMutliViewClassifiers/utils/Dataset.py
index 0d4d324f..1ce96122 100644
--- a/Code/MonoMutliViewClassifiers/utils/Dataset.py
+++ b/Code/MonoMutliViewClassifiers/utils/Dataset.py
@@ -1,10 +1,10 @@
 from scipy import sparse
 import numpy as np
-import Multiview.GetMultiviewDb as DB
 import logging
 import os
 import sys
 import select
+from ..Multiview import GetMultiviewDb as DB
 
 
 def getV(DATASET, viewIndex, usedIndices=None):
diff --git a/Code/MonoMutliViewClassifiers/utils/HyperParameterSearch.py b/Code/MonoMutliViewClassifiers/utils/HyperParameterSearch.py
index 97ad9403..ddb0b434 100644
--- a/Code/MonoMutliViewClassifiers/utils/HyperParameterSearch.py
+++ b/Code/MonoMutliViewClassifiers/utils/HyperParameterSearch.py
@@ -1,10 +1,10 @@
 import numpy as np
 import sys
-import Multiview
-import Metrics
 import matplotlib.pyplot as plt
 import itertools
 
+from .. import Metrics
+
 
 def searchBestSettings(dataset, classifierName, metrics, iLearningIndices, iKFolds, randomState, viewsIndices=None,
                        searchingTool="hyperParamSearch", nIter=1, **kwargs):
@@ -22,7 +22,7 @@ def gridSearch(dataset, classifierName, viewsIndices=None, kFolds=None, nIter=1,
     pass
 
 
-def randomizedSearch(dataset, classifierName, metrics, learningIndices, KFolds, randomState, viewsIndices=None, nIter=1,
+def randomizedSearch(dataset, classifierPackage, classifierName, metrics, learningIndices, KFolds, randomState, viewsIndices=None, nIter=1,
                      nbCores=1, **classificationKWARGS):
     if viewsIndices is None:
         viewsIndices = range(dataset.get("Metadata").attrs["nbView"])
@@ -32,7 +32,6 @@ def randomizedSearch(dataset, classifierName, metrics, learningIndices, KFolds,
         metricKWARGS = dict((index, metricConfig) for index, metricConfig in enumerate(metric[1]))
     else:
         metricKWARGS = {}
-    classifierPackage = getattr(Multiview, classifierName)  # Permet d'appeler un module avec une string
     classifierModule = getattr(classifierPackage, classifierName)
     classifierClass = getattr(classifierModule, classifierName)
     if classifierName != "Mumbo":
diff --git a/Code/MonoMutliViewClassifiers/utils/__init__.py b/Code/MonoMutliViewClassifiers/utils/__init__.py
index a67257f2..842d824c 100644
--- a/Code/MonoMutliViewClassifiers/utils/__init__.py
+++ b/Code/MonoMutliViewClassifiers/utils/__init__.py
@@ -1 +1 @@
-from . import Dataset
+from . import Dataset, execution, HyperParameterSearch, Transformations
diff --git a/Code/Tests/__init__.py b/Code/Tests/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/Code/Tests/poulet.py b/Code/Tests/poulet.py
new file mode 100644
index 00000000..0733701a
--- /dev/null
+++ b/Code/Tests/poulet.py
@@ -0,0 +1 @@
+print "essai2"
\ No newline at end of file
diff --git a/Code/__init__.py b/Code/__init__.py
index 7ccf8824..01da5837 100644
--- a/Code/__init__.py
+++ b/Code/__init__.py
@@ -1,2 +1 @@
-__all__ = ['FeatExtraction', 'Monoview', 'Multiview', 'MonoviewClassifiers']
-from . import FeatExtraction, Monoview, Multiview, MonoviewClassifiers
\ No newline at end of file
+from . import MonoMutliViewClassifiers, Tests, Exec
\ No newline at end of file
-- 
GitLab