def __init__(self, X, y, testfunction=None, name='', testPoints=None, **kwargs): self.X = copy.deepcopy(X) self.y = copy.deepcopy(y) self.testfunction = testfunction self.name = name self.n = self.X.shape[0] self.k = self.X.shape[1] self.theta = np.ones(self.k) self.pl = np.ones(self.k) * 2. self.sigma = 0 self.normRange = [] self.ynormRange = [] self.normalizeData() self.sp = samplingplan.samplingplan(self.k) self.updateData() self.updateModel() self.thetamin = 1e-5 self.thetamax = 100 self.pmin = 1 self.pmax = 2 # Setup functions for tracking history self.history = {} self.history['points'] = [] self.history['neglnlike'] = [] self.history['theta'] = [] self.history['p'] = [] self.history['rsquared'] = [0] self.history['adjrsquared'] = [0] self.history['chisquared'] = [1000] self.history['lastPredictedPoints'] = [] self.history['avgMSE'] = [] if testPoints: self.history['pointData'] = [] self.testPoints = self.sp.rlh(testPoints) for point in self.testPoints: testPrimitive = {} testPrimitive['point'] = point if self.testfunction: testPrimitive['actual'] = self.testfunction(point)[0] else: testPrimitive['actual'] = None testPrimitive['predicted'] = [] testPrimitive['mse'] = [] testPrimitive['gradient'] = [] self.history['pointData'].append(testPrimitive) else: self.history['pointData'] = None matrixops.__init__(self)
def __init__(self, X, y, testfunction=None, name='', **kwargs): self.X = copy.deepcopy(X) self.y = copy.deepcopy(y) self.testfunction = testfunction self.name = name self.n = self.X.shape[0] self.k = self.X.shape[1] self.theta = np.ones(self.k) self.pl = np.ones(self.k) self.sigma = 0 self.normRange = [] self.ynormRange = [] self.normalizeData() self.Lambda = 1 matrixops.__init__(self)