def RunLARSShogun(q): totalTimer = Timer() # Load input dataset. try: Log.Info("Loading dataset", self.verbose) inputData = np.genfromtxt(self.dataset[0], delimiter=',') responsesData = np.genfromtxt(self.dataset[1], delimiter=',') inputFeat = RealFeatures(inputData.T) responsesFeat = RegressionLabels(responsesData) # Get all the parameters. lambda1 = re.search("-l (\d+)", options) lambda1 = 0.0 if not lambda1 else int(lambda1.group(1)) with totalTimer: # Perform LARS. model = LeastAngleRegression(False) model.set_max_l1_norm(lambda1) model.set_labels(responsesFeat) model.train(inputFeat) model.get_w(model.get_path_size() - 1) except Exception as e: q.put(-1) return -1 time = totalTimer.ElapsedTime() q.put(time) return time
LeastAngleRegression.set_labels(Labels(y)) LeastAngleRegression.train(RealFeatures(X.T)) # train ordinary LSR if use_ridge: lsr = LinearRidgeRegression(0.01, RealFeatures(X.T), Labels(y)) lsr.train() else: lsr = LeastSquaresRegression() lsr.set_labels(Labels(y)) lsr.train(RealFeatures(X.T)) # gather LASSO path path = np.zeros((p, LeastAngleRegression.get_path_size())) for i in xrange(path.shape[1]): path[:,i] = LeastAngleRegression.get_w(i) # apply on training data mse_train = np.zeros(LeastAngleRegression.get_path_size()) for i in xrange(mse_train.shape[0]): LeastAngleRegression.switch_w(i) ypred = LeastAngleRegression.apply(RealFeatures(X.T)).get_labels() mse_train[i] = np.dot(ypred - y, ypred - y) / y.shape[0] ypred = lsr.apply(RealFeatures(X.T)).get_labels() mse_train_lsr = np.dot(ypred - y, ypred - y) / y.shape[0] # apply on test data mse_test = np.zeros(LeastAngleRegression.get_path_size()) for i in xrange(mse_test.shape[0]): LeastAngleRegression.switch_w(i) ypred = LeastAngleRegression.apply(RealFeatures(Xtest.T)).get_labels()
LeastAngleRegression.set_labels(RegressionLabels(y)) LeastAngleRegression.train(RealFeatures(X.T)) # train ordinary LSR if use_ridge: lsr = LinearRidgeRegression(0.01, RealFeatures(X.T), Labels(y)) lsr.train() else: lsr = LeastSquaresRegression() lsr.set_labels(RegressionLabels(y)) lsr.train(RealFeatures(X.T)) # gather LASSO path path = np.zeros((p, LeastAngleRegression.get_path_size())) for i in xrange(path.shape[1]): path[:, i] = LeastAngleRegression.get_w(i) # apply on training data mse_train = np.zeros(LeastAngleRegression.get_path_size()) for i in xrange(mse_train.shape[0]): LeastAngleRegression.switch_w(i) ypred = LeastAngleRegression.apply(RealFeatures(X.T)).get_labels() mse_train[i] = np.dot(ypred - y, ypred - y) / y.shape[0] ypred = lsr.apply(RealFeatures(X.T)).get_labels() mse_train_lsr = np.dot(ypred - y, ypred - y) / y.shape[0] # apply on test data mse_test = np.zeros(LeastAngleRegression.get_path_size()) for i in xrange(mse_test.shape[0]): LeastAngleRegression.switch_w(i) ypred = LeastAngleRegression.apply(RealFeatures(Xtest.T)).get_labels()