Оцените качество работы модели kNN функцией cross_val_score(), в качестве метрики используйте ROC-AUC. Оцените стандартное отклонение метрики модели.
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.model_selection import cross_val_score
# импортируйте модель KNeighborsClassifier
from sklearn.neighbors import KNeighborsClassifier
# импортируйте классы для кодирования и масштабирования
from sklearn.preprocessing import OneHotEncoder, StandardScaler
# создание константы RANDOM_STATE
RANDOM_STATE = 42
# загрузка данных из CSV-файла в датафрейм pandas
df = pd.read_csv('music_genre_2_classes_imbalanced_v2.csv')
X = df.drop(columns='music_genre')
y = df.music_genre
# формирование тренировочной и тестовой выборок со стратификацией
# подготовка данных выполнена функцией, все операции в скрытом прекоде
X_train, X_test, y_train, y_test = train_test_split(X, y, \
test_size=0.25, random_state=RANDOM_STATE, stratify=y)
X_train, X_test = prepare_data(X_train, X_test)
# создайте модель kNN
model = KNeighborsClassifier()
# оцените качество модели на кросс-валидации
# используйте метрику ROC-AUC
result = cross_val_score(model, X_train, y_train, scoring='roc_auc')
# вывод результатов
print(f"Среднее значение ROC-AUC: {result.mean():.2f}")
print(f"Стандартное отклонение предсказаний: {result.std():.2f}")
Результат
Среднее значение ROC-AUC: 0.97
Стандартное отклонение предсказаний: 0.01