def optimize_machine(paths): # optimizes over all the timeseries provided in the path list # returns a list of algorithms and a list of corresponding anomalies anomaly_dict= dict() anomaly_list= list() index= 1 for path in paths: anomaly_dict[path]= dict() print "finding anomaly for path no." + str(index), path index+= 1 for algo, feature, w_size in algo_iter(): # TODO: replace with my_dict try: var= anomaly_dict[path][algo] except KeyError: anomaly_dict[path][algo]= dict() try: var= anomaly_dict[path][algo][feature] except KeyError: anomaly_dict[path][algo][feature]= dict() anomaly_list.append(gateway.get_anomalies(path, algo, feature, percent=2, mul_dev= 3, window_size= w_size)) print len(anomaly_list[-1]) anomaly_dict[path][algo][feature][w_size]= anomaly_list[-1] final_anomalies, weights= aggregate(anomaly_list, ratio= 0.01) min_algo= list() anomalies= list() for path in paths: min_algo.append(find_optimal_algo(anomaly_dict[path], final_anomalies)) a= min_algo[-1] anomalies.append(anomaly_dict[path][a[0]][a[1]][a[2]]) return min_algo, anomalies, final_anomalies, weights
def ts_majority_vote(path, ratio=0.005): anomaly_list = list() for algo, feature, w_size in algo_iter(): anomaly_list.append( gateway.get_anomalies(path, algo, feature, window_size=w_size, percent=10, mul_dev=1.5)) final_anomalies, weights = aggregate(anomaly_list, ratio) return final_anomalies
def optimize_machine( paths): # optimizes over all the timeseries provided in the path list # returns a list of algorithms and a list of corresponding anomalies anomaly_dict = dict() anomaly_list = list() index = 1 for path in paths: anomaly_dict[path] = dict() print "finding anomaly for path no." + str(index), path index += 1 for algo, feature, w_size in algo_iter(): # TODO: replace with my_dict try: var = anomaly_dict[path][algo] except KeyError: anomaly_dict[path][algo] = dict() try: var = anomaly_dict[path][algo][feature] except KeyError: anomaly_dict[path][algo][feature] = dict() anomaly_list.append( gateway.get_anomalies(path, algo, feature, percent=2, mul_dev=3, window_size=w_size)) print len(anomaly_list[-1]) anomaly_dict[path][algo][feature][w_size] = anomaly_list[-1] final_anomalies, weights = aggregate(anomaly_list, ratio=0.01) min_algo = list() anomalies = list() for path in paths: min_algo.append(find_optimal_algo(anomaly_dict[path], final_anomalies)) a = min_algo[-1] anomalies.append(anomaly_dict[path][a[0]][a[1]][a[2]]) return min_algo, anomalies, final_anomalies, weights
def ts_majority_vote(path, ratio= 0.005): anomaly_list= list() for algo, feature, w_size in algo_iter(): anomaly_list.append(gateway.get_anomalies(path, algo, feature, window_size= w_size, percent= 10, mul_dev= 1.5)) final_anomalies, weights= aggregate(anomaly_list, ratio) return final_anomalies