Original size 595x842

Анализ классификации музыкальных жанров.

PROTECT STATUS: not protected
3

Я выбрала данные с информацией о треках, содержащие такие поля, как название песни, имя артиста, и набор числовых аудио-признаков (энергия, танцевальность, настроение и др.), а также жанр — в столбце Class. Данные были взяты из открытого источника Kaggle, где собраны популярные треки с разными характеристиками.

Почему именно эти данные?

1 — Музыка — важное культурное явление, и её анализ через цифровые признаки помогает понять особенности жанров, предпочтения слушателей, тренды. 2 — Эти данные хороши для практики анализа аудио-признаков и для классификации музыкальных жанров. 3 — Задача интересна и практически значима для рекомендационных систем и музыкальных сервисов.

Выбор типа графиков

Для визуализации я выбрала: Столбчатые диаграммы (bar plots) — для наглядного сравнения средних значений признаков по жанрам и распределения количества треков. Boxplot — для изучения распределений признаков внутри каждого жанра и выявления выбросов. Корреляционная тепловая карта (heatmap) — чтобы увидеть взаимосвязи между числовыми признаками.

Эти графики хорошо подходят для описательного анализа данных.

Этапы работы

1. Загрузка и первичный обзор данных import pandas as pd

df = pd.read_csv ('train.csv')

print (df.head ()) print (df.info ()) print (df['Class'].value_counts ())

Проверила пропуски:

print (df.isnull ().sum ())

Построила график распределения жанров:

import matplotlib.pyplot as plt import seaborn as sns

plt.figure (figsize=(10,6)) sns.countplot (y='Class', data=df, order=df['Class'].value_counts ().index, palette='pastel') plt.title ('Распределение треков по музыкальным жанрам') plt.xlabel ('Количество треков') plt.ylabel ('Жанр (Class)') plt.show ()

Original size 841x547

Построила корреляционную матрицу признаков:

plt.figure (figsize=(14,10)) sns.heatmap (df[features].corr (), annot=True, cmap='coolwarm', fmt=».2f») plt.title ('Корреляция числовых признаков') plt.show ()

Original size 1167x956

Изучила распределение признаков energy и danceability по жанрам:

plt.figure (figsize=(12,6)) sns.boxplot (x='Class', y='energy', data=df, palette='Set3') plt.title ('Распределение энергии по музыкальным жанрам') plt.xlabel ('Жанр') plt.ylabel ('Energy') plt.xticks (rotation=45) plt.show ()

plt.figure (figsize=(12,6)) sns.boxplot (x='Class', y='danceability', data=df, palette='Set2') plt.title ('Танцевальность по жанрам') plt.xticks (rotation=45) plt.show ()

Original size 1001x555
Original size 1001x555

Рассчитала средние значения некоторых признаков по жанрам:

mean_feats = df.groupby ('Class')[['danceability', 'energy', 'loudness', 'speechiness', 'acousticness', 'valence']].mean () mean_feats.plot (kind='bar', figsize=(14,7), colormap='tab20') plt.title ('Средние значения признаков по жанрам') plt.ylabel ('Среднее значение') plt.xlabel ('Жанр') plt.xticks (rotation=45) plt.show ()

Original size 1176x632

Стилизация графиков

Использовала палитры цветов пастельных оттенков (pastel, Set2, Set3, tab20), чтобы графики были лёгкими и приятными для восприятия.

Выравнивание осей и поворот меток x-оси для удобства чтения.

Заголовки и подписи шрифтом среднего размера, чтобы обеспечить читаемость без перегрузки.

Вдохновлялась современными аналитическими дашбордами с упором на чистоту и минимализм.

Анализ классификации музыкальных жанров.
3
We use cookies to improve the operation of the HSE website and to enhance its usability. More detailed information on the use of cookies can be fou...
Show more