Menu
CoddyTech

復習:プレイリストのムード

CoddyのMachine Learningジャーニー「教師なし学習」セクションの一部。レッスン 42/51。

challenge icon

チャレンジ

中級

プレイリストの98曲はsongs.csvにあります。曲をムード別に分類しましょう。グラフの準備はできています。

  1. 4つの特徴量をスケーリングし、曲を4つのクラスターに分類します。
  2. エネルギーとバレンスの平均値から各クラスターに名前を付けます。両方が0.5以上ならhappy、エネルギーだけならtense、バレンスだけならcalm、どちらでもなければsadです。
  3. サイズの大きい順に、各ムードの曲数とアンセム(クラスターの中心に最も近い曲)を出力します。
  4. 横軸にバレンス、縦軸にエネルギーをとり、ムードごとに1つのグループを、その名前をラベルとして散布図にします。凡例を表示し、グラフを表示します。

この章の最初のプレイリストの場合:

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」というタイトルのグラフ。横軸はバレンス、縦軸はエネルギーで、4つのグループに分かれている。左上はtense、右上はhappy、左下はsad、右下はcalm

では、Coddyがあなたのプレイリストについて説明します。

自分で試してみよう

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

# 1曲につき1行:energyとvalence(0が悲しい、1が幸せ)は0から1の範囲、tempo、acousticness
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オンラインコンパイラ