Menu
CoddyTech

Повторение: настроение плейлистов

Часть раздела Обучение без учителя путешествия по Machine Learning на Coddy. Урок 42 из 51.

challenge icon

Задание

Средне

В вашем плейлисте 98 песен в файле songs.csv. Распределите их по настроениям; диаграмма уже настроена.

  1. Масштабируйте четыре признака и разделите песни на 4 кластера.
  2. Назовите каждый кластер по средним значениям энергичности и валентности: если оба значения не меньше 0.5 — happy, только энергичность — tense, только валентность — calm, ни то ни другое — sad.
  3. Сначала выведите самый большой кластер, затем размер каждого кластера по настроению и его гимн: песню, ближайшую к центру кластера.
  4. Разместите валентность по горизонтали, а энергичность по вертикали; обозначьте каждую группу по настроению её названием; добавьте легенду и покажите диаграмму.

Для первого плейлиста главы:

happy: 26 songs, anthem Lucky Avenue
tense: 22 songs, anthem Midnight Highway
sad: 17 songs, anthem Grey Bridges
calm: 15 songs, anthem Soft Window

и его диаграмма:

Другой плейлист из 80 песен под названием Playlist Moods; валентность расположена по горизонтали, энергичность — по вертикали; четыре группы с подписями: tense вверху слева, happy вверху справа, sad внизу слева, calm внизу справа

Затем Coddy опишет ваш плейлист.

Попробуйте сами

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans

# Одна строка на песню: энергичность и позитивность (0 — грустная, 1 — весёлая) от 0 до 1, темп, акустичность
songs = pd.read_csv("songs.csv")
features = ["energy", "valence", "tempo_bpm", "acousticness"]

fig, ax = plt.subplots()
ax.set_title("Playlist Moods")
ax.set_xlabel("Valence (sad to happy)")
ax.set_ylabel("Energy")

# Напишите свой код ниже

Все уроки раздела Обучение без учителя

Потренируйтесь самостоятельно: Онлайн-компилятор Python