Original size 595x842

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

PROTECT STATUS: not protected

Я выбрала данные с информацией о треках, содержащие такие поля, как название песни, имя артиста, и набор числовых аудио-признаков (энергия, танцевальность, настроение и др.), а также жанр — в столбце 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-оси для удобства чтения.

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

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

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