Назад к вопросам
JuniorТеорияЧасто
Что выведет эта программа?
import numpy as np
X_train = np.array([[0, 0], [1, 3], [3, 0], [3, 3], [5, 5]])
y_train = np.array([0, 0, 0, 1, 1])
x = np.array([3, 2])
dist = np.sqrt(((X_train - x) ** 2).sum(axis=1))
order = np.argsort(dist)
print(y_train[order[0]], np.bincount(y_train[order[:3]]).argmax())1 0
- Ждать
1 1: ближайшая точка[3, 3]— класса1, но следующие две,[3, 0]и[1, 3], — класса0, и трое соседей голосуют за0. - Ждать
0для одного соседа, раз точек класса0больше: при одном соседе важна только ближайшая точка, а[3, 3]на расстоянии1.0— класса1.
- Какую метку вернёт этот код, если соседями взять все пять точек, и почему?
- Как изменится ответ для трёх соседей, если взвешивать голос обратно расстоянию?