DataikuでKaggleのSpotifyのデータを分析してみた

(この記事は2023年10月に執筆されました)

1.はじめに

今回はDataikuを使ってKaggleのデータセットであるSpotifyのデータをクラスタリングして簡単にTableauで分析してみようとおもいます。

今回使用したデータセット

Most Streamed Spotify Songs 2023

https://www.kaggle.com/datasets/nelgiriyewithana/top-spotify-songs-2023/data

2.データの説明

今回使用したデータの中身は以下のようになります(簡単な訳も隣に載せいています)

  • track_nameName of the song(曲名)
  • artist(s)_nameName of the artist(s) of the song(アーティスト名)
  • artist_countNumber of artists contributing to the song(アーティストの数)
  • released_yearYear when the song was released(リリースされた年)
  • released_monthMonth when the song was released(リリースされた月)
  • released_dayDay of the month when the song was released(リリースされた日)
  • in_spotify_playlistsNumber of Spotify playlists the song is included in(spotifyでプレイリストに入れられた数)
  • in_spotify_chartsPresence and rank of the song on Spotify charts(spotifyでのランキング)
  • streamsTotal number of streams on Spotify(spotifyでのストリーミング回数)
  • in_apple_playlistsNumber of Apple Music playlists the song is included in(Apple Musicのプレイリストに入れらた数)
  • in_apple_chartsPresence and rank of the song on Apple Music charts(Apple Musicでのランキング)
  • in_deezer_playlistsNumber of Deezer playlists the song is included in(Deezerのプレイリストに入れらた数)
  • in_deezer_chartsPresence and rank of the song on Deezer charts(Deezerでのランキング)
  • in_shazam_chartsPresence and rank of the song on Shazam charts(Shazamでのランキング)
  • bpmBeats per minute, a measure of song tempo(曲のテンポ)
  • keyKey of the song(曲の音程の高さ)
  • modeMode 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 SwiftEd Sheeranがトップを占めているようです。

トップ2をクラスターを踏まえて掘り下げてみます。

二人ともcluster_0,1,2の曲がよく再生されているようです。

 

5.おわりに

このような形でDataikuでコードを書くことなく誰でもサクッとクラスタリングして、クラスタリングしたデータをもとにTableauと連携して簡単に可視化することができます。

クラスタリングした結果をTableauで可視化してみますと、cluster_1のようなacousitcnessの高くenergyの低い曲が良く再生されいるようでした。落ち着いた曲が好まれるのかもしれません。

個人的にはdanceabilityの高いcluster_0がストリーミング数が高いと予想していたので意外でした。

また今回は感性にまつわる特徴量でクラスタリングしましたが、他にもキーの高さやコード進行(マイナーかメジャーか)やShazam,AppleMusic,Deezer,Spotifyのチャートランキングのカラムもあるので違う特徴量でクラスタリングをしてみると、新たな知見が得られるのかもしれません。

ShtockData

お問い合わせフォーム

お問い合わせ項目を選択してください