From b15eb3c5bea87d53d3bf4890c4e404a5d5cffff0 Mon Sep 17 00:00:00 2001 From: Baptiste Bauvin <baptiste.bauvin@lis-lab.fr> Date: Wed, 13 Feb 2019 16:37:15 -0500 Subject: [PATCH] Adjustments on training curve with noise --- .../MonoMultiViewClassifiers/Monoview/Additions/BoostUtils.py | 4 ++-- .../Monoview/Additions/CQBoostUtils.py | 2 +- .../Monoview/Additions/QarBoostUtils.py | 1 + .../MonoMultiViewClassifiers/MonoviewClassifiers/Adaboost.py | 1 + .../MonoMultiViewClassifiers/MonoviewClassifiers/CQBoost.py | 2 ++ 5 files changed, 7 insertions(+), 3 deletions(-) diff --git a/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/BoostUtils.py b/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/BoostUtils.py index 964f9225..90dca128 100644 --- a/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/BoostUtils.py +++ b/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/BoostUtils.py @@ -202,12 +202,12 @@ class StumpsClassifiersGenerator(ClassifiersGenerator): self.estimators_ += [DecisionStumpClassifier(i, (different[stump_number]+different[ stump_number+1])/2, 1).fit(X, y) - for stump_number in range(nb_different-1)] + for stump_number in range(int(nb_different)-1)] if self.self_complemented: self.estimators_ += [DecisionStumpClassifier(i, (different[stump_number] + different[ stump_number + 1]) / 2, -1).fit(X, y) - for stump_number in range(nb_different-1)] + for stump_number in range(int(nb_different)-1)] else: self.estimators_ += [DecisionStumpClassifier(i, minimums[i] + ranges[i] * stump_number, 1).fit(X, y) for stump_number in range(1, self.n_stumps_per_attribute + 1) diff --git a/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/CQBoostUtils.py b/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/CQBoostUtils.py index c7ebf500..18367d71 100644 --- a/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/CQBoostUtils.py +++ b/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/CQBoostUtils.py @@ -22,7 +22,7 @@ class ColumnGenerationClassifier(BaseEstimator, ClassifierMixin, BaseBoost): self.dual_constraint_rhs = dual_constraint_rhs self.mu = mu self.train_time = 0 - self.plotted_metric = Metrics.accuracy_score + self.plotted_metric = Metrics.zero_one_loss def fit(self, X, y): start = time.time() diff --git a/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/QarBoostUtils.py b/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/QarBoostUtils.py index 09277d17..bc2aac34 100644 --- a/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/QarBoostUtils.py +++ b/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/QarBoostUtils.py @@ -502,6 +502,7 @@ class ColumnGenerationClassifierQar(BaseEstimator, ClassifierMixin, BaseBoost): np.savetxt(directory+"y_train.csv", self.y_train, delimiter=',') np.savetxt(directory + "raw_weights.csv", self.raw_weights, delimiter=',') np.savetxt(directory + "c_bounds.csv", self.c_bounds, delimiter=',') + np.savetxt(directory + "train_metrics.csv", self.train_metrics, delimiter=',') args_dict = dict( (arg_name, str(self.__dict__[arg_name])) for arg_name in self.printed_args_name_list) diff --git a/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/Adaboost.py b/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/Adaboost.py index 0bdc4977..68c1b2d0 100644 --- a/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/Adaboost.py +++ b/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/Adaboost.py @@ -46,6 +46,7 @@ class Adaboost(AdaBoostClassifier, BaseMonoviewClassifier): interpretString += "\n\n Estimator error | Estimator weight\n" interpretString += "\n".join([str(error) +" | "+ str(weight/sum(self.estimator_weights_)) for error, weight in zip(self.estimator_errors_, self.estimator_weights_)]) get_accuracy_graph(self.metrics, "Adaboost", directory+"metrics.png", self.plotted_metric_name, bounds=list(self.bounds)) + np.savetxt(directory + "train_metrics.csv", self.metrics, delimiter=',') return interpretString diff --git a/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/CQBoost.py b/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/CQBoost.py index 3d57fe81..ea3c4f1e 100644 --- a/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/CQBoost.py +++ b/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/CQBoost.py @@ -2,6 +2,7 @@ from ..Monoview.MonoviewUtils import CustomUniform, CustomRandint, BaseMonoviewC from ..Monoview.Additions.CQBoostUtils import ColumnGenerationClassifier from ..Monoview.Additions.BoostUtils import getInterpretBase +import numpy as np class CQBoost(ColumnGenerationClassifier, BaseMonoviewClassifier): @@ -22,6 +23,7 @@ class CQBoost(ColumnGenerationClassifier, BaseMonoviewClassifier): return True def getInterpret(self, directory, y_test): + np.savetxt(directory + "train_metrics.csv", self.train_metrics, delimiter=',') return getInterpretBase(self, directory, "CQBoost", self.weights_, y_test) -- GitLab