Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- for i in range(x_test):
- # рассматриваем первые k элементов.
- k_neighbours = zip(self.y_learn[: self.k], self.x_learn[: self.k])
- # сортируем их. Получаем элементы, отсортированные по возрастанию расстояния до x_test[i].
- k_neighbours.sort(key=lambda y: self.metric(y[1], x_test[i]))
- # расспатриваем элементы y_learn c k-го элемента.
- for j in range(self.k, len(self.y_learn)):
- label = self.y_learn[i]
- y = self.x_learn[i]
- # ищем, возможно ли новый элемент вставить в k_neighbours.
- tmp = 0
- while tmp < self.k and self.metric(y, x_test[i]) < k_neighbours[tmp][1]:
- tmp += 1
- if(tmp < self.k):
- k_neighbours.insert(tmp, (label, self.metric(y, x_test[i])))
- k_neighbours.pop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement