def __init__(self, width, height, dataset, iteration_num=1000): self.radius = max(width, height) / 2.0 self.time_constant = iteration_num / math.log10(self.radius) self.learning_rate = 0.09 #TODO to determine the init learning rate self.current_learning_rate = 0.0 self.iteration_num = iteration_num self.current_iteration = 1 self.neighbour_radius = 0.0 self.width = width self.height = height self.nodes = [] self.bmu = None self.mh = mahalanobis_helper( dataset) # using given samples to calculate covariance matrix self.init_map_node(dataset) '''for x in range(self.width): for y in range(self.height): wv = [] # init weights vector for map node #wv.append(random.randint(*self.app_index_range)) wv.append(random.randint(*self.duration_range)) wv.append(random.randint(*self.num_events_range)) wv.append(random.randint(*self.num_sys_objs_range)) wv.append(random.randint(*self.token_index_range)) wv.append(random.randint(*self.num_db_range)) wv.append(random.randint(*self.num_cp_range)) wv.append(random.randint(*self.num_network_range)) # init new node and append to map self.nodes.append(Node(self, x, y, wv))''' # init the first round parameters self.update_neighbour_radius() self.update_learning_rate()
def __init__(self, width, height, dataset, iteration_num = 50): self.radius = max(width, height) / 2.0 self.time_constant = iteration_num / math.log10(self.radius) self.learning_rate = 2.0 #TODO to determine the init learning rate self.current_learning_rate = 0.0 self.iteration_num = iteration_num self.current_iteration = 1 self.neighbour_radius = 0.0 self.width = width self.height = height self.nodes = [] self.bmu = None self.mh = mahalanobis_helper(dataset) # using given samples to calculate covariance matrix self.init_map_node(dataset) for x in range(self.width): for y in range(self.height): wv = [] # init weights vector for map node wv.append(random.randint(*self.obj_range)) wv.append(random.randint(*self.pid_range)) wv.append(random.randint(*self.date_range)) wv.append(random.randint(*self.obj_occur_range)) wv.append(random.randint(*self.pid_occur_range)) self.nodes.append(Node(self, x, y, wv)) # init the first round parameters self.update_neighbour_radius() self.update_learning_rate()
def __init__(self, width, height, dataset, iteration_num = 1000): self.radius = max(width, height) / 2.0 self.time_constant = iteration_num / math.log10(self.radius) self.learning_rate = 0.09 #TODO to determine the init learning rate self.current_learning_rate = 0.0 self.iteration_num = iteration_num self.current_iteration = 1 self.neighbour_radius = 0.0 self.width = width self.height = height self.nodes = [] self.bmu = None self.mh = mahalanobis_helper(dataset) # using given samples to calculate covariance matrix self.init_map_node(dataset) '''for x in range(self.width): for y in range(self.height): wv = [] # init weights vector for map node #wv.append(random.randint(*self.app_index_range)) wv.append(random.randint(*self.duration_range)) wv.append(random.randint(*self.num_events_range)) wv.append(random.randint(*self.num_sys_objs_range)) wv.append(random.randint(*self.token_index_range)) wv.append(random.randint(*self.num_db_range)) wv.append(random.randint(*self.num_cp_range)) wv.append(random.randint(*self.num_network_range)) # init new node and append to map self.nodes.append(Node(self, x, y, wv))''' # init the first round parameters self.update_neighbour_radius() self.update_learning_rate()