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


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

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

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


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


今回はTones And Iの「Dance Monkey」

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


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

ここからが今回の本番。今後の予測を作っていきます。 が、本来ならspotifyだけでは予測は難しいため、今回はかなりざっくりとした予測になります。 早速やってみましょー!
今回は統計学の中でも簡易的な株価予測にも用いられる「線形回帰(Linear regression)」という手法を使って機械学習させていきたいと思います。
まずはpandasでデータを整形し、「predict」という列を作り、順位の5日前までのデータを格納します。


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


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



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


なるほど、、 他要因がない限り、かなり急激に再生回数が落ちる予測になりました。。
おそらくこのままの予測どおりではなく、別要因も作用してくるはずなので一概にこの予測どおりにいくかは不明ですが、 spotifyのデータだけでもある程度予測できるのが分かってもらえたかと思います。
次回は他データのAPIも使って同じようにプロットしていきたいと思います。

次回はより高度にランキングデータを取り、ランキング予測をしたいと思います。 ではまた!

コメント

このアクティビティは気に入りましたか?