예제 #1
0
    def get_result(self, point):

        if not self.ready_model:
            self.eval()

        distance_list = []
        index = 0

        while index < len(self.point_list):
            w_distance = euclidean_distance(self.point_list[index], point)+\
                       euclidean_distance(self.point_list[index], self.class_table[self.class_list[index]])
            distance_list.append({
                'class': self.class_list[index],
                'distance': w_distance
            })
            index+=1

        distance_list.sort(key = lambda x: x['distance'])
        fav = distance_list[:self.k]
        fav_class = {}
        for item in fav:
            fav_class.setdefault(item['class'], 0)
            fav_class[item['class']]+=1

        fav_class_items = fav_class.items()
        # Будем отдавать наиболее часто встречаюшегося соседа
        fav_class_items.sort(key = lambda x:x[1])
        return fav_class_items[-1][0]
예제 #2
0
    def get_result(self, point):

        if not self.ready_model:
            self.eval()

        distance_list = []
        index = 0

        while index < len(self.point_list):
            w_distance = euclidean_distance(self.point_list[index], point)+\
                       euclidean_distance(self.point_list[index], self.class_table[self.class_list[index]])
            distance_list.append({
                'class': self.class_list[index],
                'distance': w_distance
            })
            index += 1

        distance_list.sort(key=lambda x: x['distance'])
        fav = distance_list[:self.k]
        fav_class = {}
        for item in fav:
            fav_class.setdefault(item['class'], 0)
            fav_class[item['class']] += 1

        fav_class_items = fav_class.items()
        # Будем отдавать наиболее часто встречаюшегося соседа
        fav_class_items.sort(key=lambda x: x[1])
        return fav_class_items[-1][0]
예제 #3
0
    def get_result(self, point):
        distance_list = {}
        if not self.ready_model:
            self.eval()

        for (_class, centre) in self.class_table.items():
            distance_list[_class] = euclidean_distance(centre, point)

        fav_class_items = distance_list.items()

        # Будем отдавать класс с наиболее близким центром
        fav_class_items.sort(key = lambda x:x[1])
        return fav_class_items[0][0]
예제 #4
0
    def get_result(self, point):
        distance_list = {}
        if not self.ready_model:
            self.eval()

        for (_class, centre) in self.class_table.items():
            distance_list[_class] = euclidean_distance(centre, point)

        fav_class_items = distance_list.items()

        # Будем отдавать класс с наиболее близким центром
        fav_class_items.sort(key=lambda x: x[1])
        return fav_class_items[0][0]