diff --git a/variance.py b/variance.py index 9954066..c96144b 100644 --- a/variance.py +++ b/variance.py @@ -3,34 +3,39 @@ import json import ray @ray.remote -class average(algorithm): +class variance(algorithm): def __init__(self): self.config_dict_ = None self.config_ = None - self.average_number_ = 10 + self.variance_number_ = 10 self.present_number_ = 0 self.window_1_ = [] self.sum = 0 self.average = 0 - + self.variance = 0 + self.variance_sum = 0 def set_config(self, config): self.config_ = config self.config_dict_ = json.loads(self.config_) - self.average_number_ = self.config_dict_["AVERAGE_NUMBER"] + self.variance_number_ = self.config_dict_["VARIANCE_NUMBER"] def config(self): return self.config_ def eval(self, value): self.present_number_ = len(self.window_1_) - if self.present_number_ < self.average_number_: + if self.present_number_ < self.variance_number_: self.window_1_.append(value) self.sum = 0 for i in self.window_1_: self.sum = self.sum + i self.average = self.sum / len(self.window_1_) - return self.average + self.variance_sum = 0 + for i in self.window_1_: + self.variance_sum = self.variance_sum + (i-self.average)*(i-self.average) + self.variance = self.variance_sum / len(self.window_1_) + return self.variance else: self.sum = 0 del self.window_1_[0] @@ -38,4 +43,9 @@ class average(algorithm): for i in self.window_1_: self.sum = self.sum + i self.average = self.sum / len(self.window_1_) - return self.average + self.variance_sum = 0 + for i in self.window_1_: + self.variance_sum = self.variance_sum + (i-self.average)*(i-self.average) + self.variance = self.variance_sum / len(self.window_1_) + return self.variance + diff --git a/variance_test_csv.py b/variance_test_csv.py new file mode 100644 index 0000000..d23acc8 --- /dev/null +++ b/variance_test_csv.py @@ -0,0 +1,31 @@ +import pandas as pd +from variance import variance +import ray + +ray.init() + +ray.RAY_DISABLE_MEMORY_MONITOR=1 +filepath = "D:/python_project_data/1.csv" +origin_data = pd.read_csv(filepath) +row_len = origin_data.shape[0] +cow_len = origin_data.shape[1] +variance_data = origin_data +algorithm_variance = variance.remote() + +cow_name = "G1.TTXD1_3" +contrast_data = pd.DataFrame() +contrast_data[cow_name+'_origin'] = origin_data[cow_name] +algorithm_variance.set_config.remote('{"VARIANCE_NUMBER": 5 }') +# algorithm_step.set_config('{"CYCLE_TIME_BASE": 5 }') +for i in range(0,row_len): + futures=algorithm_variance.eval.remote(origin_data.loc[i,cow_name]) + variance_data.loc[i, cow_name]=ray.get(futures) + +print(variance_data.loc[:, cow_name]) +contrast_data[cow_name+'_variance'] = variance_data[cow_name] +# average_data.to_csv("D:/python_project_data/1_disturb.csv", index=False) +contrast_data.to_csv("D:/python_project_data/variance_data.csv", index=False) + + +# 以下均为测试性能用 +# print(algorithm_step.config_) \ No newline at end of file