Исходный размер 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()

Исходный размер 841x547

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

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

Исходный размер 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()

Исходный размер 1001x555
Исходный размер 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()

Исходный размер 1176x632

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

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

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

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

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

Анализ классификации музыкальных жанров.
Проект создан 14.10.2025
Мы используем файлы cookies для улучшения работы сайта и большего удобства его использования. Более подробную информац...
Показать больше