diff --git a/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/QarBoostUtils.py b/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/QarBoostUtils.py index ed4283298a39c5483a9842925424b8f2b81e4a45..c7a23e6be37aacc1752f21d22692aac7c31702f8 100644 --- a/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/QarBoostUtils.py +++ b/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/QarBoostUtils.py @@ -51,23 +51,15 @@ class ColumnGenerationClassifierQar(BaseEstimator, ClassifierMixin, BaseBoost): if scipy.sparse.issparse(X): logging.info('Converting to dense matrix.') X = np.array(X.todense()) - - if self.estimators_generator is None: - self.estimators_generator = StumpsClassifiersGenerator(n_stumps_per_attribute=self.n_stumps, - self_complemented=self.self_complemented) # Initialization y[y == 0] = -1 + y = y.reshape((y.shape[0], 1)) - self.init_info_containers() - self.estimators_generator.fit(X, y) - self.classification_matrix = self._binary_classification_matrix(X) + self.init_info_containers() - - m, n = self.classification_matrix.shape - y = y.reshape((m,1)) - y_kernel_matrix = np.multiply(y, self.classification_matrix) + m,n,y_kernel_matrix = self.init_hypotheses(X, y) self.example_weights = self._initialize_alphas(m).reshape((m,1)) @@ -173,6 +165,17 @@ class ColumnGenerationClassifierQar(BaseEstimator, ClassifierMixin, BaseBoost): self.predict_time = end - start return signs_array + def init_hypotheses(self, X, y): + if self.estimators_generator is None: + self.estimators_generator = StumpsClassifiersGenerator(n_stumps_per_attribute=self.n_stumps, + self_complemented=self.self_complemented) + self.estimators_generator.fit(X, y) + self.classification_matrix = self._binary_classification_matrix(X) + + m, n = self.classification_matrix.shape + y_kernel_matrix = np.multiply(y, self.classification_matrix) + return m,n,y_kernel_matrix + def init_info_containers(self): self.weights_ = [] self.chosen_columns_ = []