Загрузите датасет для классификации музыкальных жанров и обучите модель kNN. Выполните предсказания на тестовых данных и постройте график ROC-кривой.

import pandas as pd

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import OneHotEncoder
from sklearn.preprocessing import StandardScaler
import matplotlib.pyplot as plt

# импортируйте функцию для расчёта fpr, tpr, threshold
from sklearn.metrics import roc_curve

# импортируйте класс для модели классификации 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')
#print(X_train)
# создайте и обучите модель kNN на тренировочных данных 
model = KNeighborsClassifier()
model.fit(X_train, y_train)

# выполните предсказания на тестовых данных
preds = model.predict_proba(X_test)

# рассчитайте значения FPR и TRP
fpr, tpr, threshold = roc_curve(y_test, preds[:,1], pos_label='Jazz')

# постройте график зависимости FPR от TPR
plt.plot(fpr, tpr)
plt.title("График зависимости FPR от TPR")
plt.xlabel('False Positive Rate (FPR)')
plt.ylabel('True Positive Rate (TPR)')
plt.show()

Результат

p1

Вот и график ROC-кривой. Самое время провести его анализ.