Files
python_ray/variance_x.py
2022-05-27 16:44:49 +08:00

33 lines
950 B
Python

from algorithm import algorithm
import json
import ray
@ray.remote
class variance_x(algorithm):
def __init__(self):
self.config_dict_ = None
self.config_ = None
self.window_length_ = 10
self.avg_ = 0
self.var_ = 0
def set_config(self, config):
self.config_ = config
self.config_dict_ = json.loads(self.config_)
self.window_length_ = self.config_dict_["WINDOW_LENGTH"]
self.init_flag_ = False
def config(self):
return self.config_
def eval(self, value):
if self.init_flag_ == False:
self.init_flag_ = True
self.avg_ = value
self.var_ = 0
else:
present_avg_ = self.avg_ * (self.window_length_ - 1)/self.window_length_ + value / self.window_length_
self.var_ = self.var_ +(value - present_avg_) * (value-self.avg_)
self.avg_ = present_avg_
return self.var_