def main(): sd = SynthData() ca = coordinateAscent() cal = CoordinateAscentLasso() st = Standardize() beta0Seperate = True lam = 0.1 X, y, b = sd.generateData(noise=False, w=np.array([1, 1, 1, 1, 1, 0, 0, 0, 0, 0])[np.newaxis].T) #if beta0Seperate: # beta = np.array([1, 1, 1, 1, 0, 0, 0, 0])[np.newaxis].T #else: # beta = np.array([1, 1, 1, 1, 1, 0, 0, 0, 0])[np.newaxis].T #if beta0Seperate: # y = 1 + np.dot(X, beta) #else: # X = np.append(np.ones((X.shape[0], 1)), X, 1) # y = np.dot(X, beta) print('Fitting the model with Lasso:') print('Lambda = ' + str(lam)) print('beta0, array of betas:') t0 = time() print(cal.coordinateAscentLasso(y, X, lam, [], False, beta0Seperate)) dt = time() - t0 print('done in %.4fs.' % dt) print() print('Fitting the model with plain \'ol Coordinate Ascent') print('beta0, array of betas:') t0 = time() print(ca.coordinateAscent(y, X, [], False)) dt = time() - t0 print('done in %.4fs.' % dt) print() #print('Dictionary Learning') #dl = decomposition.DictionaryLearning(fit_algorithm='cd') #print(dl.fit(X)) #print(np.shape(dl.components_)) #print(dl.components_) print('Fitting the model with LARS (from the scikit library)') clf = linear_model.LassoLars(alpha=0.01) t0 = time() print(clf.fit(X, y)) dt = time() - t0 print('done in %.4fs.' % dt) print('array of betas:') print(clf.coef_) return 1
def __init__(self, args): # create logger self.logger = logging.getLogger(__name__) self.logger.setLevel(logging.DEBUG) # create console handler and set level to debug ch = logging.StreamHandler() ch.setLevel(logging.DEBUG) # create formatter formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s') # add formatter to ch ch.setFormatter(formatter) # add ch to logger self.logger.addHandler(ch) self.logger.debug("Starting Collector process in %s" % os.getcwd()) self.logger.debug("Gevent Version %s" % gevent.__version__) #TODO: move output file name to config #fname = "./NetFlow.%s.bin"%str(time.time()*100000) #WARN: might want to remove this after testing #self.out = open(fname,"wb") #create tool instances self.interface = Interface() self.parse = Parse() self.describe = Describe() self.standardize = Standardize() self.transform = Transform() self.partition = Partition() self.q = Queue() self.inWindow = False self.score = Score() #TODO: move csv name to config self.csv = CSV("output.csv") return super(Collector, self).__init__(args)