Выполните подготовку данных и обучите модель kNN — одну с евклидовым расстоянием, другую — с манхэттенским. Оцените качество решения модели метрикой accuracy в обоих случаях.

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import OneHotEncoder
from sklearn.preprocessing import StandardScaler

# импортируйте функцию для оценки качества модели 
from sklearn.metrics import accuracy_score

# импортируйте класс для модели классификации kNN 
from sklearn.neighbors import KNeighborsClassifier

# создание константы RANDOM_STATE
RANDOM_STATE = 42

# выполняем подготовку данных функцией, все операции в скрытом прекоде
X_train, X_test, y_train, y_test = prepare_data('music_genre_2_classes_balanced_v2_exp.csv')


# создайте и обучите модель kNN на тренировочных данных
# при обучении модель должна использовать 300 ближайших соседей и евклидово расстояние
model = KNeighborsClassifier(n_neighbors=300, metric='euclidean')
model.fit(X_train, y_train)
preds = model.predict(X_test)

# выполните тестирование на тестовой выборке
euclidean_accuracy = accuracy_score(y_test, preds)

# создайте и обучите модель kNN на тренировочных данных
# при обучении модель должна использовать 300 ближайших соседей и манхэттенское расстояние
model = KNeighborsClassifier(n_neighbors=300, metric='cityblock')
model.fit(X_train, y_train)
preds = model.predict(X_test)

# выполните тестирование на тестовой выборке
cityblock_accuracy = accuracy_score(y_test, preds)

# выведите на экран обе метрики
print('Accuracy (euclidean distance) =', euclidean_accuracy)
print('Accuracy (cityblock distance) =', cityblock_accuracy)

Результат
Accuracy (euclidean distance) = 0.7544483985765125
Accuracy (cityblock distance) = 0.7540035587188612