diff --git a/multiview_platform/MonoMultiViewClassifiers/Monoview/ExecClassifMonoView.py b/multiview_platform/MonoMultiViewClassifiers/Monoview/ExecClassifMonoView.py
index 143988785ae0ba35d42763d7c43d338c12d472e5..e0d532dc0a563ed2050e90560f236bc78d8f6bab 100644
--- a/multiview_platform/MonoMultiViewClassifiers/Monoview/ExecClassifMonoView.py
+++ b/multiview_platform/MonoMultiViewClassifiers/Monoview/ExecClassifMonoView.py
@@ -161,7 +161,7 @@ def getHPs(classifierModule, hyperParamSearch, nIter, CL_type, X_train, y_train,
                                       outputFileName, classifierModule,
                                       KFolds=KFolds, nbCores=nbCores,
                                       metric=metrics[0], nIter=nIter)
-        logging.debug("Done:\t " + hyperParamSearch + "RandomSearch best settings")
+        logging.debug("Done:\t " + hyperParamSearch + " best settings")
     else:
         clKWARGS = kwargs[CL_type + "KWARGS"]
     return clKWARGS, testFoldsPreds
diff --git a/multiview_platform/MonoMultiViewClassifiers/Monoview/MonoviewUtils.py b/multiview_platform/MonoMultiViewClassifiers/Monoview/MonoviewUtils.py
index dd7c33faa797818b226c20f62b3dd71832ba823a..30a342c3a0e1fd4f73e937b7782a612d7c38ddb0 100644
--- a/multiview_platform/MonoMultiViewClassifiers/Monoview/MonoviewUtils.py
+++ b/multiview_platform/MonoMultiViewClassifiers/Monoview/MonoviewUtils.py
@@ -1,5 +1,6 @@
 from sklearn.model_selection import RandomizedSearchCV
 import numpy as np
+from scipy.stats import uniform, randint
 
 from .. import Metrics
 from ..utils import HyperParameterSearch
@@ -50,6 +51,29 @@ def genTestFoldsPreds(X_train, y_train, KFolds, estimator):
     testFoldsPreds = np.array([testFoldPreds[:minFoldLength] for testFoldPreds in testFoldsPreds])
     return testFoldsPreds
 
+
+class CustomRandint:
+    def __init__(self, low=0, high=0, multiplier="e-"):
+        self.randint = randint(low, high)
+        self.multiplier = multiplier
+
+    def rvs(self, random_state=None):
+        randinteger = self.randint.rvs(random_state=random_state)
+        if self.multiplier == "e-":
+            return 10 ** -randinteger
+
+
+class CustomUniform:
+    def __init__(self, loc=0, state=1, multiplier="e-"):
+        self.uniform = uniform(loc, state)
+        self.multiplier = multiplier
+
+    def rvs(self, random_state=None):
+        unif = self.uniform.rvs(random_state=random_state)
+        if self.multiplier == 'e-':
+            return 10 ** -unif
+
+
 # def isUseful(labelSupports, index, CLASS_LABELS, labelDict):
 #     if labelSupports[labelDict[CLASS_LABELS[index]]] != 0:
 #         labelSupports[labelDict[CLASS_LABELS[index]]] -= 1
diff --git a/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/CQBoost.py b/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/CQBoost.py
index b53ab51773c36fc32e835b1f662a12b73967687b..0d1ecb15ef01c801f883c7af4feae1bac8b8ab9b 100644
--- a/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/CQBoost.py
+++ b/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/CQBoost.py
@@ -19,9 +19,11 @@ from sklearn.base import BaseEstimator, ClassifierMixin
 from sklearn.pipeline import Pipeline
 from sklearn.model_selection import RandomizedSearchCV
 from sklearn.tree import DecisionTreeClassifier
-from scipy.stats import randint
+from scipy.stats import randint, uniform
 import numpy as np
 
+from ..Monoview.MonoviewUtils import CustomUniform, CustomRandint
+
 
 
 class ColumnGenerationClassifier(BaseEstimator, ClassifierMixin):
@@ -293,6 +295,10 @@ class CQBoost(CqBoostClassifier):
         return interpretString
 
 
+
+
+
+
 def canProbas():
     return False
 
@@ -311,7 +317,7 @@ def paramsToSet(nIter, randomState):
     """Used for weighted linear early fusion to generate random search sets"""
     paramsSet = []
     for _ in range(nIter):
-        paramsSet.append({"mu": randomState.uniform(1e-02, 10**(-0.5)),
+        paramsSet.append({"mu": 10**-randomState.uniform(0.5, 1.5),
                           "epsilon": 10**-randomState.randint(1, 15),
                           "n_max_iterations": None})
     return paramsSet
@@ -331,8 +337,8 @@ def genPipeline():
 
 
 def genParamsDict(randomState):
-    return {"classifier__mu": [0.001, 0.002],
-                "classifier__epsilon": [1e-08, 2e-08],
+    return {"classifier__mu": CustomUniform(loc=.5, state=2, multiplier='e-'),
+                "classifier__epsilon": CustomRandint(low=1, high=15, multiplier='e-'),
                 "classifier__n_max_iterations": [None]}
 
 
diff --git a/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/CQBoostv2.py b/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/CQBoostv2.py
index 0039a4f4754cf3194bd07a33f2e83ab9b9337f86..839cd7c60ad96730c6a2857513d3f871a7316a68 100644
--- a/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/CQBoostv2.py
+++ b/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/CQBoostv2.py
@@ -7,21 +7,23 @@ from collections import defaultdict, OrderedDict
 import pandas as pd
 import sys
 from functools import partial
-import numpy as np
-from scipy.spatial import distance
 from sklearn.base import BaseEstimator, ClassifierMixin, TransformerMixin
 from sklearn.utils.validation import check_is_fitted
 from sklearn.preprocessing import LabelEncoder
-from sklearn.tree import DecisionTreeClassifier
-from sklearn.metrics.pairwise import rbf_kernel, linear_kernel
-import numpy as np
 from sklearn.base import BaseEstimator, ClassifierMixin
 from sklearn.pipeline import Pipeline
-from sklearn.model_selection import RandomizedSearchCV
-from sklearn.tree import DecisionTreeClassifier
-from scipy.stats import randint
 import numpy as np
 
+# import numpy as np
+# from scipy.spatial import distance
+# from sklearn.tree import DecisionTreeClassifier
+# from sklearn.metrics.pairwise import rbf_kernel, linear_kernel
+# from sklearn.model_selection import RandomizedSearchCV
+# from sklearn.tree import DecisionTreeClassifier
+# from scipy.stats import randint
+
+
+from ..Monoview.MonoviewUtils import CustomRandint, CustomUniform
 
 class ColumnGenerationClassifierv2(BaseEstimator, ClassifierMixin):
     def __init__(self, epsilon=1e-06, n_max_iterations=None, estimators_generator=None, dual_constraint_rhs=0, save_iteration_as_hyperparameter_each=None):
@@ -350,8 +352,8 @@ def genPipeline():
 
 
 def genParamsDict(randomState):
-    return {"classifier__mu": [0.001, 0.002],
-                "classifier__epsilon": [1e-08, 2e-08],
+    return {"classifier__mu": CustomUniform(loc=.5, state=2, multiplier='e-'),
+                "classifier__epsilon": CustomRandint(low=1, high=15, multiplier='e-'),
                 "classifier__n_max_iterations": [None]}