1.はじめに
今回はDataikuを使ってKaggleのデータセットであるSpotifyのデータをクラスタリングして簡単にTableauで分析してみようとおもいます。
今回使用したデータセット
Most Streamed Spotify Songs 2023
https://www.kaggle.com/datasets/nelgiriyewithana/top-spotify-songs-2023/data
2.データの説明
今回使用したデータの中身は以下のようになります(簡単な訳も隣に載せいています)
- track_name: Name of the song(曲名)
- artist(s)_name: Name of the artist(s) of the song(アーティスト名)
- artist_count: Number of artists contributing to the song(アーティストの数)
- released_year: Year when the song was released(リリースされた年)
- released_month: Month when the song was released(リリースされた月)
- released_day: Day of the month when the song was released(リリースされた日)
- in_spotify_playlists: Number of Spotify playlists the song is included in(spotifyでプレイリストに入れられた数)
- in_spotify_charts: Presence and rank of the song on Spotify charts(spotifyでのランキング)
- streams: Total number of streams on Spotify(spotifyでのストリーミング回数)
- in_apple_playlists: Number of Apple Music playlists the song is included in(Apple Musicのプレイリストに入れらた数)
- in_apple_charts: Presence and rank of the song on Apple Music charts(Apple Musicでのランキング)
- in_deezer_playlists: Number of Deezer playlists the song is included in(Deezerのプレイリストに入れらた数)
- in_deezer_charts: Presence and rank of the song on Deezer charts(Deezerでのランキング)
- in_shazam_charts: Presence and rank of the song on Shazam charts(Shazamでのランキング)
- bpm: Beats per minute, a measure of song tempo(曲のテンポ)
- key: Key of the song(曲の音程の高さ)
- mode: Mode of the song (major or minor)(コード進行の形式)
- danceability_%: Percentage indicating how suitable the song is for dancing(踊りやすさ)
- valence_%: Positivity of the song’s musical content(陽気さ)
- energy_%: Perceived energy level of the song(エネルギッシュさ)
- acousticness_%: Amount of acoustic sound in the song(アコースティックである度合)
- instrumentalness_%: Amount of instrumental content in the song(インスト部分の割合)
- liveness_%: Presence of live performance elements(ライブパフォーマンスであるかどうかの度合)
- speechiness_%: Amount of spoken words in the song(曲中の発語の割合)
今回はこれらの中から様々な特徴量を選びクラスタリングをおこない、どのような傾向があるか見ていきたいと思います。
3.クラスタリングの実行
今回はDataikuを用いてクラスタリングを実行していこうと思います。
データの前処理やインポートについては以下のような記事も執筆していますので参考にしてみてください。
Dataikuつかってみた
https://www.keywalker.co.jp/blog/dataiku-trial.html
KaggleでおなじみのTitanicのデータをDataikuで整形をしてみた
https://www.keywalker.co.jp/blog/dataiku-tinanic-01-2.html
KaggleでおなじみのTitanicの生存者予測をDataikuでしてみた
https://www.keywalker.co.jp/blog/dataiku-tinanic-02-2.html
今回はk-means法を用いてクラスタリングを実行します。
今回は選択する特徴量を感性にまつわる項目にしてクラスタリングを実行していこうと思います。
danceability_%、valence_%、energy_%、acousticness_%、instrumentalness_%、liveness_%、speechiness_% を選択してみたいと思います。
各特徴量については以下のような意味を持っています
danceability:踊りやすさ
valence:幸福感、陽気さ(低いと悲しみや怒りを表している)
energy:エネルギッシュさ
acousticness:電気を使わない楽器の度合、フォークギターやピアノといった電子楽器でないものを使ったものの度合
instrumentalness:曲のインスト部分の多さ
liveness:ライブパフォーマンスである度合(録音された曲に聴衆が入っているかの度合)
speechness:曲の中でどのくらい発語があったかの度合
上記に挙げた特徴量を選択し、クラスタリングを実行すると結果が以下のようになります。
このヒートマップではクラスターのもつ特徴量の関連度を表しています。赤に近いほど高く、青に近いほど低いです。
どのクラスターがどのような性質を持つかどうか、分かりやすくするためにそれぞれのクラスターがもつ性質を併記しておきます。
cluster_0 high_valence_danceability_energy
cluster_1 high_accousticness,low_energy
cluster_2 low_accousticness,low_valence
cluster_3 high_instrumentalness,low_speechness
cluster_4 high_speechness_danceability
4.クラスタリングの結果をTabelauで可視化してみる
クラスタリングしたクラスターのストリーミングの回数やどのような傾向があるかどうか見るために、Tableauと連携して可視化してみます。
Dataikuでは処理した結果を簡単にTableauと連携することができます。
Tableauとの連携の仕方は下記の過去の記事を参考にしてみてください。
DataikuとTableauを連携
https://www.keywalker.co.jp/blog/dataiku-tableau-2.html
ここまでノーコードで一時間程度あれば簡単にできます。
下記の画像が実際のフローになります。
それでは実際にTableau上で可視化してみましょう。
まずは平均ストリーミング数をクラスタ別に見てみましょう。
平均値で一番大きいのはcluster_1でした。accousticnessが高くenergyが低い傾向のある曲がストリーミング数がほかに比べて高いようです。
bpmについてはどうでしょうか
どのクラスターもあまり差がないようです。
アーティスト別にみてみましょう。ストリーミング数で上位10位までを表示してみます。
名だたる有名アーティストばかりですが、特にTaylor SwiftとEd Sheeranがトップを占めているようです。
トップ2をクラスターを踏まえて掘り下げてみます。
二人ともcluster_0,1,2の曲がよく再生されているようです。
5.おわりに
このような形でDataikuでコードを書くことなく誰でもサクッとクラスタリングして、クラスタリングしたデータをもとにTableauと連携して簡単に可視化することができます。
クラスタリングした結果をTableauで可視化してみますと、cluster_1のようなacousitcnessの高くenergyの低い曲が良く再生されいるようでした。落ち着いた曲が好まれるのかもしれません。
個人的にはdanceabilityの高いcluster_0がストリーミング数が高いと予想していたので意外でした。
また今回は感性にまつわる特徴量でクラスタリングしましたが、他にもキーの高さやコード進行(マイナーかメジャーか)やShazam,AppleMusic,Deezer,Spotifyのチャートランキングのカラムもあるので違う特徴量でクラスタリングをしてみると、新たな知見が得られるのかもしれません。