diff --git a/Code/MonoMultiViewClassifiers/MonoviewClassifiers/Adaboost.py b/Code/MonoMultiViewClassifiers/MonoviewClassifiers/Adaboost.py
index 73e2235e49cf94dd0dcbc2cfb1a37768d4f25731..7caafade8b8576591a1ef20f970c491c3e4af7b7 100644
--- a/Code/MonoMultiViewClassifiers/MonoviewClassifiers/Adaboost.py
+++ b/Code/MonoMultiViewClassifiers/MonoviewClassifiers/Adaboost.py
@@ -35,8 +35,8 @@ def paramsToSet(nIter, randomState):
     """Used for weighted linear early fusion to generate random search sets"""
     paramsSet = []
     for _ in range(nIter):
-        paramsSet.append([randomState.randint(1, 15),
-                          DecisionTreeClassifier()])
+        paramsSet.append({"n_estimators": randomState.randint(1, 15),
+                          "base_estimator": DecisionTreeClassifier()})
     return paramsSet
 
 
diff --git a/Code/MonoMultiViewClassifiers/MonoviewClassifiers/DecisionTree.py b/Code/MonoMultiViewClassifiers/MonoviewClassifiers/DecisionTree.py
index fe82b333e202cb42b775812f2c1092251b5b1461..165123726da54b9bd733c8fc1bde32a2c9483ef4 100644
--- a/Code/MonoMultiViewClassifiers/MonoviewClassifiers/DecisionTree.py
+++ b/Code/MonoMultiViewClassifiers/MonoviewClassifiers/DecisionTree.py
@@ -29,8 +29,9 @@ def fit(DATASET, CLASS_LABELS, randomState, NB_CORES=1, **kwargs):
 def paramsToSet(nIter, randomState):
     paramsSet = []
     for _ in range(nIter):
-        paramsSet.append([randomState.randint(1, 300), randomState.choice(["gini", "entropy"]),
-                          randomState.choice(["best", "random"])])
+        paramsSet.append({"max_depth": randomState.randint(1, 300),
+                          "criterion": randomState.choice(["gini", "entropy"]),
+                          "splitter": randomState.choice(["best", "random"])})
     return paramsSet
 
 
diff --git a/Code/MonoMultiViewClassifiers/MonoviewClassifiers/KNN.py b/Code/MonoMultiViewClassifiers/MonoviewClassifiers/KNN.py
index 2c784da603eaefc36bf8c01a26ffe068cd28615b..d242580e28ea6b5c71963e9542571f391a9d6b0c 100644
--- a/Code/MonoMultiViewClassifiers/MonoviewClassifiers/KNN.py
+++ b/Code/MonoMultiViewClassifiers/MonoviewClassifiers/KNN.py
@@ -29,8 +29,10 @@ def fit(DATASET, CLASS_LABELS, randomState, NB_CORES=1, **kwargs):
 def paramsToSet(nIter, randomState):
     paramsSet = []
     for _ in range(nIter):
-        paramsSet.append([randomState.randint(1, 20), randomState.choice(["uniform", "distance"]),
-                          randomState.choice(["auto", "ball_tree", "kd_tree", "brute"]), randomState.choice([1, 2])])
+        paramsSet.append({"n_neighbors": randomState.randint(1, 20),
+                          "weights": randomState.choice(["uniform", "distance"]),
+                          "algorithm": randomState.choice(["auto", "ball_tree", "kd_tree", "brute"]),
+                          "p": randomState.choice([1, 2])})
     return paramsSet
 
 
diff --git a/Code/MonoMultiViewClassifiers/MonoviewClassifiers/RandomForest.py b/Code/MonoMultiViewClassifiers/MonoviewClassifiers/RandomForest.py
index f0955df8713bd112ef7639a95cb2f45adc26acc6..2130acfb779fb29fda488eb0082b8d3a0e210945 100644
--- a/Code/MonoMultiViewClassifiers/MonoviewClassifiers/RandomForest.py
+++ b/Code/MonoMultiViewClassifiers/MonoviewClassifiers/RandomForest.py
@@ -30,8 +30,9 @@ def fit(DATASET, CLASS_LABELS, randomState, NB_CORES=1, **kwargs):
 def paramsToSet(nIter, randomState):
     paramsSet = []
     for _ in range(nIter):
-        paramsSet.append([randomState.randint(1, 300), randomState.randint(1, 300),
-                          randomState.choice(["gini", "entropy"])])
+        paramsSet.append({"n_estimators": randomState.randint(1, 300),
+                          "max_depth": randomState.randint(1, 300),
+                          "criterion": randomState.choice(["gini", "entropy"])})
     return paramsSet
 
 
diff --git a/Code/MonoMultiViewClassifiers/MonoviewClassifiers/SCM.py b/Code/MonoMultiViewClassifiers/MonoviewClassifiers/SCM.py
index bebfc0e59d643f6d1c818b52c867a5ef59d7e944..28c09a132a7699acab4ef818019c6e39bf779b59 100644
--- a/Code/MonoMultiViewClassifiers/MonoviewClassifiers/SCM.py
+++ b/Code/MonoMultiViewClassifiers/MonoviewClassifiers/SCM.py
@@ -63,7 +63,9 @@ def fit(DATASET, CLASS_LABELS, randomState, NB_CORES=1, **kwargs):
 def paramsToSet(nIter, randomState):
     paramsSet = []
     for _ in range(nIter):
-        paramsSet.append([randomState.choice(["conjunction", "disjunction"]), randomState.randint(1, 15), randomState.random_sample()])
+        paramsSet.append({"model_type": randomState.choice(["conjunction", "disjunction"]),
+                          "max_rules": randomState.randint(1, 15),
+                          "p": randomState.random_sample()})
     return paramsSet
 
 
diff --git a/Code/MonoMultiViewClassifiers/MonoviewClassifiers/SGD.py b/Code/MonoMultiViewClassifiers/MonoviewClassifiers/SGD.py
index 27d8c2df8b3695157a83206df50f3c88e188d6f4..c208277599b5f3a6ecadcf77578ca007359e1f3c 100644
--- a/Code/MonoMultiViewClassifiers/MonoviewClassifiers/SGD.py
+++ b/Code/MonoMultiViewClassifiers/MonoviewClassifiers/SGD.py
@@ -28,8 +28,9 @@ def fit(DATASET, CLASS_LABELS, randomState, NB_CORES=1, **kwargs):
 def paramsToSet(nIter, randomState):
     paramsSet = []
     for _ in range(nIter):
-        paramsSet.append([randomState.choice(['log', 'modified_huber']),
-                          randomState.choice(["l1", "l2", "elasticnet"]), randomState.random_sample()])
+        paramsSet.append({"loss": randomState.choice(['log', 'modified_huber']),
+                          "penalty": randomState.choice(["l1", "l2", "elasticnet"]),
+                          "alpha": randomState.random_sample()})
     return paramsSet
 
 
diff --git a/Code/MonoMultiViewClassifiers/MonoviewClassifiers/SVMLinear.py b/Code/MonoMultiViewClassifiers/MonoviewClassifiers/SVMLinear.py
index 9b354513ab814e8146af68ba272639897c838d9b..2517f5eb945b382e3d2acab53cc6f89a52a06eca 100644
--- a/Code/MonoMultiViewClassifiers/MonoviewClassifiers/SVMLinear.py
+++ b/Code/MonoMultiViewClassifiers/MonoviewClassifiers/SVMLinear.py
@@ -26,7 +26,7 @@ def fit(DATASET, CLASS_LABELS, randomState, NB_CORES=1, **kwargs):
 def paramsToSet(nIter, randomState):
     paramsSet = []
     for _ in range(nIter):
-        paramsSet.append([randomState.randint(1, 10000), ])
+        paramsSet.append({"C": randomState.randint(1, 10000), })
     return paramsSet
 
 
diff --git a/Code/MonoMultiViewClassifiers/MonoviewClassifiers/SVMPoly.py b/Code/MonoMultiViewClassifiers/MonoviewClassifiers/SVMPoly.py
index 93abfc038db51bf2d7ba93f1461c492ebf5a847e..5c6aff003ed6ec427cdd27c1bb4401a9e1436d8c 100644
--- a/Code/MonoMultiViewClassifiers/MonoviewClassifiers/SVMPoly.py
+++ b/Code/MonoMultiViewClassifiers/MonoviewClassifiers/SVMPoly.py
@@ -26,7 +26,7 @@ def fit(DATASET, CLASS_LABELS, randomState, NB_CORES=1, **kwargs):
 def paramsToSet(nIter, randomState):
     paramsSet = []
     for _ in range(nIter):
-        paramsSet.append([randomState.randint(1, 10000), randomState.randint(1, 30)])
+        paramsSet.append({"C": randomState.randint(1, 10000), "degree": randomState.randint(1, 30)})
     return paramsSet
 
 
diff --git a/Code/MonoMultiViewClassifiers/MonoviewClassifiers/SVMRBF.py b/Code/MonoMultiViewClassifiers/MonoviewClassifiers/SVMRBF.py
index 85cca14337425cc9c988679fbb6e53f7f7c8b69a..df99dc47fe2881537305b5746e4e8c5540528f56 100644
--- a/Code/MonoMultiViewClassifiers/MonoviewClassifiers/SVMRBF.py
+++ b/Code/MonoMultiViewClassifiers/MonoviewClassifiers/SVMRBF.py
@@ -26,7 +26,7 @@ def fit(DATASET, CLASS_LABELS, randomState, NB_CORES=1, **kwargs):
 def paramsToSet(nIter, randomState):
     paramsSet = []
     for _ in range(nIter):
-        paramsSet.append([randomState.randint(1, 10000), ])
+        paramsSet.append({"C": randomState.randint(1, 10000), })
     return paramsSet
 
 
diff --git a/Code/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/EarlyFusionPackage/WeightedLinear.py b/Code/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/EarlyFusionPackage/WeightedLinear.py
index c5f72caee1118897968f2da9a75fdcaaa40a3ec5..16fba3f0726744dbc7f36a4c711428bb98dc2e08 100644
--- a/Code/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/EarlyFusionPackage/WeightedLinear.py
+++ b/Code/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/EarlyFusionPackage/WeightedLinear.py
@@ -87,7 +87,7 @@ class WeightedLinear(EarlyFusionClassifier):
 
     def setParams(self, paramsSet):
         self.weights = paramsSet[0]
-        self.monoviewClassifiersConfig = dict((str(index), param) for index, param in enumerate(paramsSet[1]))
+        self.monoviewClassifiersConfig = paramsSet[1]
 
     def predict_hdf5(self, DATASET, usedIndices=None, viewsIndices=None):
         if type(viewsIndices) == type(None):
diff --git a/Code/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusion.py b/Code/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusion.py
index ff6d3ea378add33a5739dceb75c146be04944ec5..1ba4023fef00538dbf9d04ff832643cc45e65c3f 100644
--- a/Code/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusion.py
+++ b/Code/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusion.py
@@ -54,11 +54,11 @@ def intersect(allClassifersNames, directory, viewsIndices, resultsMonoview, clas
         if resultMonoview[1][0] in classifiersNames[resultMonoview[0]]:
             classifierIndex = classifiersNames.index(resultMonoview[1][0])
             wrongSets[resultMonoview[0]][classifierIndex] = np.where(
-                trainLabels + resultMonoview[1][3][classificationIndices[0]] == 1)
+                trainLabels + resultMonoview[1][3][classificationIndices[0]] == 1)[0]
         else:
             classifiersNames[resultMonoview[0]].append(resultMonoview[1][0])
             wrongSets[resultMonoview[0]].append(
-                np.where(trainLabels + resultMonoview[1][3][classificationIndices[0]] == 1))
+                np.where(trainLabels + resultMonoview[1][3][classificationIndices[0]] == 1)[0])
 
     combinations = itertools.combinations_with_replacement(range(len(classifiersNames[0])), nbViews)
     bestLen = length