見出し画像

Spotify APIを使ったヒット予測2.過去データのランキングをもとにざっくり予測

日付ごとのランキングデータを元に、Spotifyのデータだけを使ってランキング予測をしていきます。

今回はまず取り掛かりの第一回目として、
1.トラックごとのランキング推移をSpotifyの全期間取得
2.sklearnを使って簡易予測データ(学習データと検証データ)を作成
3.グラフで予測データを可視化
を行っていきます。

1.トラックごとのランキング推移をSpotifyの全期間取得

Spotifyは2017年からのデータをcsvでダウンロードできますので、そのデータを使っていきます。
2017年1月1日からのデータを一つのcsvにまとめます。

作成したファイル一覧がこちら

画像1

これで日付が入った3年半のデータが取れました。
このcsvを元にまずはとある楽曲1曲を選び、ランキングがどう変化したのかグラフを作っていきます。

前回同様jupyter Notebookを使って作業していきます。
細かい詳細は省きますが、

画像2

今回はTones And Iの「Dance Monkey」のランキング推移を使い、matplotで可視化しました。初めてランキングにインしたのが2019年7月31日で、そこからどう推移しているかというと・・・
2019年7月31日に最初にランクインし、2020年1月に山を迎え、4月末〜降下しているのがグラフから見てとれます。

2.sklearnを使って簡易予測データ(学習データと検証データ)を作成

ここからが今回の本番。今後の予測を作っていきます。
が、本来ならSpotifyだけでは予測は難しいため、今回はかなりざっくりとした予測になります。
早速やってみましょー!

今回は統計学の中でも簡易的な株価予測にも用いられる「線形回帰(Linear regression)」という手法を使って機械学習させていきたいと思います。

まずはpandasでデータを整形し、「predict」という列を作り、順位の5日前までのデータを格納します。

画像3

学習データと検証データを8:2で分け、データの確認

画像4

やはり5日分だと精度としては少し低いですね。。
色々と試した結果、30日程度のバッファを持つと良さげな感じです。
上記スクリーンショットの「label」列のNaN部分のデータの予測がこちら。

画像5

なんとなくいいような・・グラフにしてみます。

3.グラフで予測データを可視化

画像6

なるほど、、
他要因がない限り、かなり急激に再生回数が落ちる予測になりました。。
おそらくこのままの予測どおりではなく、別要因も作用してくるはずなので一概にこの予測どおりにいくかは不明ですが、
Spotifyのデータだけでもある程度予測できるのが分かってもらえたかと思います。
次回はより高度にランキングデータを取り、ランキング予測をしたいと思います。
ではまた!

いいなと思ったら応援しよう!