diff --git a/multiview_platform/MonoMultiViewClassifiers/ExecClassif.py b/multiview_platform/MonoMultiViewClassifiers/ExecClassif.py index a75cd6e4cbce7627ec13bf0dc3845db1e0876349..bf6e0b12f176cd177ade68d4b8925ebdecd43f82 100644 --- a/multiview_platform/MonoMultiViewClassifiers/ExecClassif.py +++ b/multiview_platform/MonoMultiViewClassifiers/ExecClassif.py @@ -444,6 +444,8 @@ def execClassif(arguments): os.nice(args.nice) nbCores = args.nbCores + if nbCores == 1: + os.environ['OPENBLAS_NUM_THREADS'] = '1' statsIter = args.CL_statsiter hyperParamSearch = args.CL_HPS_type multiclassMethod = args.CL_multiclassMethod diff --git a/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/QarBoostUtils.py b/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/QarBoostUtils.py index 1909d038d83909f2356491c1c659700599e59a6a..2433609c717855fec80dd076ece3cd6a78f6dae9 100644 --- a/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/QarBoostUtils.py +++ b/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/QarBoostUtils.py @@ -13,7 +13,6 @@ from .BoostUtils import StumpsClassifiersGenerator, sign, BaseBoost, \ getInterpretBase, get_accuracy_graph from ... import Metrics - # Used for QarBoost and CGreed class ColumnGenerationClassifierQar(BaseEstimator, ClassifierMixin, BaseBoost): @@ -155,8 +154,8 @@ class ColumnGenerationClassifierQar(BaseEstimator, ClassifierMixin, BaseBoost): X = np.array(X.todense()) classification_matrix = self._binary_classification_matrix(X) self.step_predict(classification_matrix) - margins = np.squeeze( - np.asarray(np.matmul(classification_matrix, self.weights_))) + margins = np.sum(classification_matrix * self.weights_, axis=1) + # print(margins) signs_array = np.array([int(x) for x in sign(margins)]) signs_array[signs_array == -1] = 0 end = time.time() @@ -167,8 +166,8 @@ class ColumnGenerationClassifierQar(BaseEstimator, ClassifierMixin, BaseBoost): if classification_matrix.shape != self.train_shape: self.step_decisions = np.zeros(classification_matrix.shape) for weight_index in range(self.weights_.shape[0]-1): - margins = np.squeeze( - np.asarray(np.matmul(classification_matrix[:, :weight_index+1], self.weights_[:weight_index+1]))) + margins = np.sum(classification_matrix[:, :weight_index+1]* self.weights_[:weight_index+1], axis=1) + # print(margins) signs_array = np.array([int(x) for x in sign(margins)]) signs_array[signs_array == -1] = 0 self.step_decisions[:, weight_index] = signs_array @@ -176,10 +175,8 @@ class ColumnGenerationClassifierQar(BaseEstimator, ClassifierMixin, BaseBoost): def update_info_containers(self, y, voter_perf, k): """Is used at each iteration to compute and store all the needed quantities for later analysis""" self.example_weights_.append(self.example_weights) - self.previous_vote = np.matmul( - self.classification_matrix[:, self.chosen_columns_], - np.array(self.weights_).reshape((k + 2, 1))).reshape( - (self.n_total_examples, 1)) + self.previous_vote += self.q * self.new_voter + self.previous_votes.append(self.previous_vote) self.previous_margins.append(