From 0a142ce1b4c68d7a804c71fa5078a2ca7825ab31 Mon Sep 17 00:00:00 2001 From: Saurabh7 Date: Sun, 5 Jun 2016 15:15:30 +0530 Subject: [PATCH] shogun lars,lasso fixes --- config.yaml | 12 +++++++++++- methods/scikit/lars.py | 4 ++-- methods/shogun/lars.py | 4 ++-- methods/shogun/lasso.py | 20 +++++++++----------- 4 files changed, 24 insertions(+), 16 deletions(-) diff --git a/config.yaml b/config.yaml index 648976c..e6f0fc3 100644 --- a/config.yaml +++ b/config.yaml @@ -1600,7 +1600,17 @@ methods: ['datasets/arcene_X.csv', 'datasets/arcene_y.csv'], ['datasets/madelon_X.csv', 'datasets/madelon_y.csv']] options: '-l 0.01' - + LARS: + run: ['timing'] + iteration: 3 + script: methods/shogun/lars.py + format: [csv, txt] + datasets: + - files: [ ['datasets/diabetes_X.csv', 'datasets/diabetes_y.csv'], + ['datasets/cosExp_X.csv', 'datasets/cosExp_y.csv'], + ['datasets/arcene_X.csv', 'datasets/arcene_y.csv'], + ['datasets/madelon_X.csv', 'datasets/madelon_y.csv']] + options: '-l 0.01' QDA: run: ['timing','metric'] script: methods/shogun/qda.py diff --git a/methods/scikit/lars.py b/methods/scikit/lars.py index eea471a..e1a6c4f 100644 --- a/methods/scikit/lars.py +++ b/methods/scikit/lars.py @@ -58,8 +58,8 @@ def RunLARSScikit(q): try: with totalTimer: # Get all the parameters. - lambda1 = re.search("-l (\d+)", options) - lambda1 = 0.0 if not lambda1 else int(lambda1.group(1)) + lambda1 = re.search("-l (\d+\.\d+)", options) + lambda1 = 0.0 if not lambda1 else float(lambda1.group(1)) # Perform LARS. model = LassoLars(alpha=lambda1) diff --git a/methods/shogun/lars.py b/methods/shogun/lars.py index d845c32..4187a1f 100644 --- a/methods/shogun/lars.py +++ b/methods/shogun/lars.py @@ -60,8 +60,8 @@ def RunLARSShogun(q): responsesFeat = RegressionLabels(responsesData) # Get all the parameters. - lambda1 = re.search("-l (\d+)", options) - lambda1 = 0.0 if not lambda1 else int(lambda1.group(1)) + lambda1 = re.search("-l (\d+\.\d+)", options) + lambda1 = 0.0 if not lambda1 else float(lambda1.group(1)) with totalTimer: # Perform LARS. diff --git a/methods/shogun/lasso.py b/methods/shogun/lasso.py index ccc5502..e73872e 100644 --- a/methods/shogun/lasso.py +++ b/methods/shogun/lasso.py @@ -63,22 +63,20 @@ def RunLASSOShogun(q): # If the dataset contains two files then the second file is the responses # file. try: + # Load input dataset. Log.Info("Loading dataset", self.verbose) - if len(self.dataset) == 2: - testSet = np.genfromtxt(self.dataset[1], delimiter=',') + inputData = np.genfromtxt(self.dataset[0], delimiter=',') + responsesData = np.genfromtxt(self.dataset[1], delimiter=',') - # Get all the parameters. - lambda1 = re.search("-l (\d+)", options) - lambda1 = 0.0 if not lambda1 else int(lambda1.group(1)) - - # Use the last row of the training set as the responses. - X, y = SplitTrainData(self.dataset) + # Get all the parameters. + lambda1 = re.search("-l (\d+\.\d+)", options) + lambda1 = 0.0 if not lambda1 else float(lambda1.group(1)) with totalTimer: - model = LeastAngleRegression(lasso=True) + model = LeastAngleRegression(True) model.set_max_l1_norm(lambda1) - model.set_labels(RegressionLabels(y)) - model.train(RealFeatures(X.T)) + model.set_labels(RegressionLabels(responsesData)) + model.train(RealFeatures(inputData.T)) except Exception as e: print(e)