Сэмплируйте данные для бинарной классификации методом оверсэмпринга. Выведите на экран количество наблюдений в тренировочной выборке до и после сэмплирования.

import pandas as pd
import matplotlib
from sklearn.model_selection import train_test_split

# импортируйте из библиотеки imblearn класс RandomOverSamper
from imblearn.over_sampling import RandomOverSampler

# создание константы 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, 
    random_state=RANDOM_STATE,
    stratify=y
)

# создайте экземпляр класса RandomOverSampler с фиксированным random_state
sampler = RandomOverSampler(random_state=RANDOM_STATE)

# сэмплируйте данные методов оверсэмплинга одной командой
X_train_sampled, y_train_sampled = sampler.fit_resample(X_train, y_train)

# выведите на экран распределения классов в тренировочном датасете до и после сэмплирования
print(f'Тренировочные данные до сэмплирования:\n{y_train.value_counts()}')
print(f'\nТренировочные данные после сэмплирования:\n{y_train_sampled.value_counts(),}')

Результат
Тренировочные данные до сэмплирования:
Classical 3000
Rock 750
Name: music_genre, dtype: int64

Тренировочные данные после сэмплирования:
(Classical 3000
Rock 3000
Name: music_genre, dtype: int64,)