diff --git a/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/CQBoostUtils.py b/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/CQBoostUtils.py index 154ead82d19802171f4ee6dfe752e92afe382219..716ebf8c10a7523b21f9bf96a7fa25c959240b54 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=100, 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=None, 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 diff --git a/multiview_platform/MonoMultiViewClassifiers/Monoview/ExecClassifMonoView.py b/multiview_platform/MonoMultiViewClassifiers/Monoview/ExecClassifMonoView.py index 95f89ec7f8b9cb2787e6f2f83833f9b7a13545d7..778ab96a6456f467bac4c21a74e6a35d40a20d17 100644 --- a/multiview_platform/MonoMultiViewClassifiers/Monoview/ExecClassifMonoView.py +++ b/multiview_platform/MonoMultiViewClassifiers/Monoview/ExecClassifMonoView.py @@ -80,6 +80,7 @@ def ExecMonoview(directory, X, Y, name, labelsNames, classificationIndices, KFol logging.debug("Start:\t Predicting") y_train_pred = classifier.predict(X_train) y_test_pred = classifier.predict(X_test) + print(np.unique(y_test_pred)) full_labels_pred = np.zeros(Y.shape, dtype=int)-100 for trainIndex, index in enumerate(classificationIndices[0]): full_labels_pred[index] = y_train_pred[trainIndex] diff --git a/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/Lasso.py b/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/Lasso.py new file mode 100644 index 0000000000000000000000000000000000000000..79e2a750f9f3f1c608d632bfe3437775f03eabef --- /dev/null +++ b/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/Lasso.py @@ -0,0 +1,61 @@ +from sklearn.linear_model import Lasso +import numpy as np + +from ..Monoview.MonoviewUtils import CustomRandint, CustomUniform, BaseMonoviewClassifier + +# Author-Info +__author__ = "Baptiste Bauvin" +__status__ = "Prototype" # Production, Development, Prototype + + +class Lasso(Lasso, BaseMonoviewClassifier): + + def __init__(self, random_state=None, alpha=1.0, + max_iter=10, warm_start=False, **kwargs): + super(Lasso, self).__init__( + alpha=alpha, + max_iter=max_iter, + warm_start=warm_start, + random_state=random_state + ) + self.param_names = ["max_iter", "alpha",] + self.classed_params = [] + self.distribs = [CustomRandint(low=1, high=300), + CustomUniform(),] + self.weird_strings = {} + + def fit(self, X, y, check_input=True): + neg_y = np.copy(y) + neg_y[np.where(neg_y==0)] = -1 + super(Lasso, self).fit(X, neg_y) + return self + + def predict(self, X): + prediction = super(Lasso, self).predict(X) + signed = np.sign(prediction) + signed[np.where(signed==-1)] = 0 + return signed + + + def canProbas(self): + """Used to know if the classifier can return label probabilities""" + return False + + def getInterpret(self, directory, y_test): + interpretString = "" + return interpretString + + +def formatCmdArgs(args): + """Used to format kwargs for the parsed args""" + kwargsDict = {"alpha": args.LA_alpha, + "max_iter": args.LA_n_iter} + return kwargsDict + + +def paramsToSet(nIter, randomState): + paramsSet = [] + for _ in range(nIter): + paramsSet.append({"max_iter": randomState.randint(1, 300), + "alpha": randomState.uniform(0,1.0),}) + return paramsSet \ No newline at end of file diff --git a/multiview_platform/MonoMultiViewClassifiers/utils/execution.py b/multiview_platform/MonoMultiViewClassifiers/utils/execution.py index c16c4e26a36fd1cbf46bea8cdfe4f031ca9fc037..55355de96984af69f10bf33831af5b018883cb37 100644 --- a/multiview_platform/MonoMultiViewClassifiers/utils/execution.py +++ b/multiview_platform/MonoMultiViewClassifiers/utils/execution.py @@ -200,6 +200,16 @@ def parseTheArgs(arguments): help='Set the n_max_iterations parameter for CGreed', default=100) + groupLasso = parser.add_argument_group('Lasso arguments') + groupLasso.add_argument('--LA_n_iter', metavar='INT', type=int, + action='store', + help='Set the max_iter parameter for Lasso', + default=1) + groupLasso.add_argument('--LA_alpha', metavar='FLOAT', type=float, + action='store', + help='Set the alpha parameter for Lasso', + default=1.0) + groupGradientBoosting = parser.add_argument_group('Gradient Boosting arguments') groupGradientBoosting.add_argument('--GB_n_est', metavar='INT', type=int, action='store',