Напишите функцию на Python, которая принимает обучающий набор данных, тестовый набор данных и значение 𝑘, а затем использует алгоритм k-ближайших соседей (kNN) для классификации тестовых данных. Функция должна возвращать предсказанные метки для тестового набора данных.
Пример:
import numpy as np
X_train = np.array([[1, 2], [2, 3], [3, 4], [5, 5]])
y_train = np.array([0, 0, 1, 1])
X_test = np.array([[2, 2], [4, 4]])
predictions = knn_classification(X_train, y_train, X_test, k=3)
print(predictions) # Ожидаемый результат: [0, 1]
Решение задачи🔽
from sklearn.neighbors import KNeighborsClassifier
def knn_classification(X_train, y_train, X_test, k=3):
model = KNeighborsClassifier(n_neighbors=k)
model.fit(X_train, y_train)
return model.predict(X_test)
# Пример использования:
import numpy as np
X_train = np.array([[1, 2], [2, 3], [3, 4], [5, 5]])
y_train = np.array([0, 0, 1, 1])
X_test = np.array([[2, 2], [4, 4]])
predictions = knn_classification(X_train, y_train, X_test, k=3)
print(predictions) # Ожидаемый результат: [0, 1]