diff --git a/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/CQBoostUtils.py b/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/CQBoostUtils.py
index 16821bd75237ab3800b858465719732354f3f431..154ead82d19802171f4ee6dfe752e92afe382219 100644
--- a/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/CQBoostUtils.py
+++ b/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/CQBoostUtils.py
@@ -14,7 +14,7 @@ from ... import Metrics
 
 
 class ColumnGenerationClassifier(BaseEstimator, ClassifierMixin, BaseBoost):
-    def __init__(self, mu=0.01, epsilon=1e-06, n_max_iterations=None, estimators_generator=None, dual_constraint_rhs=0, save_iteration_as_hyperparameter_each=None, random_state=None):
+    def __init__(self, mu=0.01, epsilon=1e-06, n_max_iterations=100, estimators_generator=None, dual_constraint_rhs=0, save_iteration_as_hyperparameter_each=None, random_state=None):
         super(ColumnGenerationClassifier, self).__init__()
         self.epsilon = epsilon
         self.n_max_iterations = n_max_iterations
@@ -36,6 +36,7 @@ class ColumnGenerationClassifier(BaseEstimator, ClassifierMixin, BaseBoost):
 
         self.estimators_generator.fit(X, y)
         self.classification_matrix = self._binary_classification_matrix(X)
+        self.c_bounds = []
 
         self.infos_per_iteration_ = defaultdict(list)
 
@@ -76,6 +77,8 @@ class ColumnGenerationClassifier(BaseEstimator, ClassifierMixin, BaseBoost):
 
             # Solve restricted master for new costs.
             w, alpha = self._restricted_master_problem(previous_w=w, previous_alpha=alpha)
+            cbound = self.compute_empiric_cbound(w, y_kernel_matrix)
+            self.c_bounds.append(cbound)
 
             self.update_values(h_values, worst_h_index, alpha, w)
 
@@ -113,6 +116,11 @@ class ColumnGenerationClassifier(BaseEstimator, ClassifierMixin, BaseBoost):
         self.step_predict(classification_matrix)
         return signs_array
 
+    def compute_empiric_cbound(self, w, y_kernel_matrix):
+        cbound = 1 - (1.0/self.n_total_examples) * (np.sum(np.average(y_kernel_matrix[:, self.chosen_columns_], axis=1, weights=w))**2/
+                                                    np.sum(np.average(y_kernel_matrix[:, self.chosen_columns_], axis=1, weights=w)**2))
+        return cbound
+
     def step_predict(self, classification_matrix):
         if classification_matrix.shape != self.train_shape:
             self.step_decisions = np.zeros(classification_matrix.shape)
diff --git a/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/CQBoost.py b/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/CQBoost.py
index 19297fc3c506a6915b61820fa54c29861de1e246..0ecdd66618095e0054e943e292d89e632a0aafa7 100644
--- a/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/CQBoost.py
+++ b/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/CQBoost.py
@@ -39,6 +39,8 @@ class CQBoost(ColumnGenerationClassifier, BaseMonoviewClassifier):
 
     def getInterpret(self, directory, y_test):
         np.savetxt(directory + "train_metrics.csv", self.train_metrics, delimiter=',')
+        np.savetxt(directory + "c_bounds.csv", self.c_bounds,
+                   delimiter=',')
         np.savetxt(directory + "y_test_step.csv", self.step_decisions,
                    delimiter=',')
         step_metrics = []
diff --git a/multiview_platform/MonoMultiViewClassifiers/utils/execution.py b/multiview_platform/MonoMultiViewClassifiers/utils/execution.py
index 9f3b4939ab91755b4909ddda6b47fd31f1806eb9..c16c4e26a36fd1cbf46bea8cdfe4f031ca9fc037 100644
--- a/multiview_platform/MonoMultiViewClassifiers/utils/execution.py
+++ b/multiview_platform/MonoMultiViewClassifiers/utils/execution.py
@@ -161,10 +161,10 @@ def parseTheArgs(arguments):
                               help='Set the mu parameter for CQBoost', default=0.001)
     groupCQBoost.add_argument('--CQB_epsilon', metavar='FLOAT', type=float, action='store',
                               help='Set the epsilon parameter for CQBoost', default=1e-08)
-    groupCQBoost.add_argument('--CQB_stump', metavar='INT', type=int,
+    groupCQBoost.add_argument('--CQB_stumps', metavar='INT', type=int,
                               action='store',
                               help='Set the number of stumps for CQBoost',
-                              default=10)
+                              default=1)
 
     groupCQBoostv2 = parser.add_argument_group('CQBoostv2 arguments')
     groupCQBoostv2.add_argument('--CQB2_mu', metavar='FLOAT', type=float, action='store',
@@ -186,7 +186,7 @@ def parseTheArgs(arguments):
 
     groupCGreed = parser.add_argument_group('CGreed arguments')
     groupCGreed.add_argument('--CGR_stumps', metavar='INT', type=int, action='store',
-                               help='Set the n_stumps_per_attribute parameter for CGreed', default=10)
+                               help='Set the n_stumps_per_attribute parameter for CGreed', default=1)
     groupCGreed.add_argument('--CGR_n_iter', metavar='INT', type=int, action='store',
                                  help='Set the n_max_iterations parameter for CGreed', default=100)
 
@@ -194,7 +194,7 @@ def parseTheArgs(arguments):
     groupCGDesc.add_argument('--CGD_stumps', metavar='INT', type=int,
                              action='store',
                              help='Set the n_stumps_per_attribute parameter for CGreed',
-                             default=10)
+                             default=1)
     groupCGDesc.add_argument('--CGD_n_iter', metavar='INT', type=int,
                              action='store',
                              help='Set the n_max_iterations parameter for CGreed',