def opt_rescaling(self,var): adjusted_cycle = self.get_adjusted_cycle(var) xtick = rescale_time(adjusted_cycle) red_cycle = redistribute(xtick,self.views) estimate = self.get_estimate(red_cycle) error = sum([(red_cycle[x]-estimate[x]) ** 2 for x in range(24*self.prom_length-1)]) return error
def get_gamma_func_estimate(self,gamma_func,ticks): max_length = len(self.views) log_estimate = np.zeros(max_length).tolist() # log_estimate[:self.pattern.length*24] = [log(self.red_views[self.pattern.start])+log(self.beta)*x for x in range(self.pattern.length*24)] log_estimate[self.pattern.start:self.pattern.length*24] = [log(self.red_views[self.pattern.start])+log(self.beta)*x for x in range(self.pattern.length*24)] log_estimate[self.pattern.length*24:self.max_length] = [log(self.red_views[self.pattern.start])+gamma_func[1]+log(self.red_views[self.pattern.start])*gamma_func[0]+log(self.beta)*(x-1) for x in range(self.pattern.length*24,self.max_length)] estimate = [exp(log_estimate[x]) for x in range(self.max_length)] self.est_gamma_func = redistribute(ticks,estimate)
def get_estimate(self,ticks): max_length = len(self.views) log_estimate = np.zeros(max_length).tolist() if self.pattern.has_gamma: # log_estimate[:self.pattern.length*24] = [log(self.red_views[self.pattern.start])+log(self.beta)*x for x in range(self.pattern.length*24)] log_estimate[self.pattern.start:self.pattern.length*24] = [log(self.red_views[self.pattern.start])+log(self.beta)*x for x in range(self.pattern.length*24)] log_estimate[self.pattern.length*24:max_length] = [log(self.red_views[self.pattern.start])+log(self.gamma)+log(self.beta)*(x-1) for x in range(self.pattern.length*24,max_length)] else: log_estimate[self.pattern.start:self.pattern.start+self.pattern.length*24] = [log(self.red_views[self.pattern.start])+log(self.beta)*x for x in range(self.pattern.length*24)] estimate = [exp(log_estimate[x]) for x in range(self.max_length)] self.est_params = redistribute(ticks,estimate)
def get_gamma_func_estimate(self,art,gamma_func,ticks): max_length = len(art.views) log_estimate = zeros(max_length).tolist() if self.pattern.has_gamma: # log_estimate[:self.pattern.length*24] = [log(art.red_views[self.pattern.start])+log(self.beta)*x for x in range(self.pattern.length*24)] log_estimate[self.pattern.start:self.pattern.length*24] = [log(art.red_views[self.pattern.start])+log(self.beta)*x for x in range(self.pattern.length*24)] log_estimate[self.pattern.length*24:max_length] = [log(art.red_views[self.pattern.start])+gamma_func[1]+log(art.red_views[self.pattern.start])*gamma_func[0]+log(self.beta)*(x-1) for x in range(self.pattern.length*24,max_length)] else: log_estimate = zeros(max_length).tolist() log_estimate[self.pattern.start:self.pattern.start+self.pattern.length*24] = [log(art.red_views[self.pattern.start])+log(self.beta)*x for x in range(self.pattern.length*24)] estimate = [exp(log_estimate[x]) for x in range(max_length)] art.est_gamma_func = redistribute(ticks,estimate)
def redistribute_views(self,ticks): self.red_views = redistribute(ticks,self.views)