diff --git a/Solution_8.06_unsupervised_learning_kmeans.ipynb b/Solution_8.06_unsupervised_learning_kmeans.ipynb
new file mode 100644
index 0000000..f38a5e9
--- /dev/null
+++ b/Solution_8.06_unsupervised_learning_kmeans.ipynb
@@ -0,0 +1,1705 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### Instructions\n",
+ "\n",
+ "It's the moment to perform clustering on the songs you collected. Remember that the ultimate goal of this little project is to improve the recommendations of artists. Clustering the songs will allow the recommendation system to limit the scope of the recommendations to only songs that belong to the same cluster - songs with similar audio features.\n",
+ "\n",
+ "The experiments you did with the Spotify API and the Billboard web scraping will allow you to create a pipeline such that when the user enters a song, you:\n",
+ "\n",
+ "1) Check whether or not the song is in the Billboard Hot 200.\n",
+ "\n",
+ "2) Collect the audio features from the Spotify API.\n",
+ "\n",
+ "3) After that, you want to send the Spotify audio features of the submitted song to the clustering model, which should return a cluster number.\n",
+ "\n",
+ "4) We want to have as many songs as possible to create the clustering model, so we will add the songs you collected to a bigger dataset available on Kaggle containing 160 thousand songs.\n",
+ "\n",
+ "-- Think 4) will be the next lab? Is this right or is it part of this lab? "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 1) Billboard Hot 200 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 60,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from bs4 import BeautifulSoup\n",
+ "import requests\n",
+ "import pandas as pd\n",
+ "import numpy as np"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "url = \"https://www.billboard.com/charts/billboard-global-200\""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Billboard: 200\n"
+ ]
+ }
+ ],
+ "source": [
+ "billboard = requests.get(url)\n",
+ "print(\"Billboard:\", billboard.status_code)\n",
+ "\n",
+ "# 200 status code means OK!"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "soup = BeautifulSoup(billboard.content, 'html.parser')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# song titles\n",
+ "song_titles = soup.find_all(\"span\", class_=\"chart-element__information__song text--truncate color--primary\")\n",
+ "\n",
+ "# artists\n",
+ "song_artists = soup.find_all(\"span\", class_=\"chart-element__information__artist text--truncate color--secondary\")\n",
+ "\n",
+ "# last week\n",
+ "song_last_week = soup.find_all(\"span\", class_= \"chart-element__meta text--center color--secondary text--last\")\n",
+ "\n",
+ "# peak rank\n",
+ "song_peak = soup.find_all(\"span\", class_= \"chart-element__meta text--center color--secondary text--peak\")\n",
+ "\n",
+ "# weeks on chart\n",
+ "song_total_weeks = soup.find_all(\"span\", class_= \"chart-element__meta text--center color--secondary text--week\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def scraper_text(html, text_list): \n",
+ " for i in html:\n",
+ " text_list.append(i.get_text())\n",
+ " print(len(text_list))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "200\n"
+ ]
+ }
+ ],
+ "source": [
+ "song_titles_text = []\n",
+ "scraper_text(song_titles, song_titles_text)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "200\n"
+ ]
+ }
+ ],
+ "source": [
+ "song_artists_text = []\n",
+ "scraper_text(song_artists, song_artists_text)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "200\n"
+ ]
+ }
+ ],
+ "source": [
+ "song_last_week_text = []\n",
+ "scraper_text(song_last_week, song_last_week_text)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "200\n"
+ ]
+ }
+ ],
+ "source": [
+ "song_peak_text = []\n",
+ "scraper_text(song_peak, song_peak_text)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "200\n"
+ ]
+ }
+ ],
+ "source": [
+ "song_total_weeks_text = []\n",
+ "scraper_text(song_total_weeks, song_total_weeks_text)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "url = \"https://www.billboard.com/charts/billboard-global-200\"\n",
+ "first_attribute = \"span\"\n",
+ "list_class = [\"chart-element__information__song text--truncate color--primary\", ]\n",
+ "\n",
+ "def function_web_scraping(url, list_list_names, first_attribute):\n",
+ " re = requests.get(url)\n",
+ " print(\"Status Code:\", re.status_code)\n",
+ " soup = BeautifulSoup(re.content, 'html.parser')\n",
+ " for i in list_list_names: \n",
+ " i = soup.find_all(x, )\n",
+ " song_titles = soup.find_all(first_attribute, class_=list_class)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "top_200 = pd.DataFrame(\n",
+ " {\"title\": song_titles_text,\n",
+ " \"artist\": song_artists_text,\n",
+ " \"last_week_rank\": song_last_week_text,\n",
+ " \"peak_position\": song_peak_text,\n",
+ " \"weeks_on_chart\": song_total_weeks_text}\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " title | \n",
+ " artist | \n",
+ " last_week_rank | \n",
+ " peak_position | \n",
+ " weeks_on_chart | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " Stay | \n",
+ " The Kid LAROI & Justin Bieber | \n",
+ " 2 | \n",
+ " 1 | \n",
+ " 13 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " Love Nwantiti (Ah Ah Ah) | \n",
+ " CKay | \n",
+ " 4 | \n",
+ " 2 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " Industry Baby | \n",
+ " Lil Nas X & Jack Harlow | \n",
+ " 3 | \n",
+ " 2 | \n",
+ " 11 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " Bad Habits | \n",
+ " Ed Sheeran | \n",
+ " 5 | \n",
+ " 1 | \n",
+ " 15 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " My Universe | \n",
+ " Coldplay x BTS | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " title artist last_week_rank \\\n",
+ "0 Stay The Kid LAROI & Justin Bieber 2 \n",
+ "1 Love Nwantiti (Ah Ah Ah) CKay 4 \n",
+ "2 Industry Baby Lil Nas X & Jack Harlow 3 \n",
+ "3 Bad Habits Ed Sheeran 5 \n",
+ "4 My Universe Coldplay x BTS 1 \n",
+ "\n",
+ " peak_position weeks_on_chart \n",
+ "0 1 13 \n",
+ "1 2 4 \n",
+ "2 2 11 \n",
+ "3 1 15 \n",
+ "4 1 2 "
+ ]
+ },
+ "execution_count": 18,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "top_200.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def song_in_top200(): \n",
+ " song = input(\"What song do you want to check? \")\n",
+ " if song in song_titles_text: \n",
+ " print('Yes, song is in top 200')\n",
+ " else: \n",
+ " print('Not a hit. Try an other song')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "What song do you want to check? Bad Habits\n",
+ "Yes, song is in top 200\n"
+ ]
+ }
+ ],
+ "source": [
+ "song_in_top200()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 2) Spotify features"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Was already part of the lab before: "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " danceability | \n",
+ " energy | \n",
+ " loudness | \n",
+ " speechiness | \n",
+ " acousticness | \n",
+ " instrumentalness | \n",
+ " liveness | \n",
+ " valence | \n",
+ " tempo | \n",
+ " duration_ms | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 0.865 | \n",
+ " 0.694 | \n",
+ " -6.358 | \n",
+ " 0.0431 | \n",
+ " 0.25200 | \n",
+ " 0.000842 | \n",
+ " 0.1100 | \n",
+ " 0.661 | \n",
+ " 103.988 | \n",
+ " 3.565633 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 0.449 | \n",
+ " 0.541 | \n",
+ " -10.299 | \n",
+ " 0.0417 | \n",
+ " 0.08730 | \n",
+ " 0.000000 | \n",
+ " 0.1700 | \n",
+ " 0.276 | \n",
+ " 125.156 | \n",
+ " 2.984933 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 0.512 | \n",
+ " 0.550 | \n",
+ " -8.264 | \n",
+ " 0.0272 | \n",
+ " 0.00688 | \n",
+ " 0.000839 | \n",
+ " 0.1060 | \n",
+ " 0.480 | \n",
+ " 99.905 | \n",
+ " 3.643217 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 0.830 | \n",
+ " 0.631 | \n",
+ " -5.238 | \n",
+ " 0.0313 | \n",
+ " 0.00220 | \n",
+ " 0.035900 | \n",
+ " 0.0539 | \n",
+ " 0.877 | \n",
+ " 128.013 | \n",
+ " 3.713117 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 0.403 | \n",
+ " 0.732 | \n",
+ " -7.386 | \n",
+ " 0.0452 | \n",
+ " 0.74800 | \n",
+ " 0.379000 | \n",
+ " 0.1140 | \n",
+ " 0.195 | \n",
+ " 162.576 | \n",
+ " 4.186217 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " danceability energy loudness speechiness acousticness \\\n",
+ "0 0.865 0.694 -6.358 0.0431 0.25200 \n",
+ "1 0.449 0.541 -10.299 0.0417 0.08730 \n",
+ "2 0.512 0.550 -8.264 0.0272 0.00688 \n",
+ "3 0.830 0.631 -5.238 0.0313 0.00220 \n",
+ "4 0.403 0.732 -7.386 0.0452 0.74800 \n",
+ "\n",
+ " instrumentalness liveness valence tempo duration_ms \n",
+ "0 0.000842 0.1100 0.661 103.988 3.565633 \n",
+ "1 0.000000 0.1700 0.276 125.156 2.984933 \n",
+ "2 0.000839 0.1060 0.480 99.905 3.643217 \n",
+ "3 0.035900 0.0539 0.877 128.013 3.713117 \n",
+ "4 0.379000 0.1140 0.195 162.576 4.186217 "
+ ]
+ },
+ "execution_count": 35,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "feautres = pd.read_csv('music_feature.csv')\n",
+ "feautres.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(96, 10)"
+ ]
+ },
+ "execution_count": 36,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "feautres.shape"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " id | \n",
+ " album | \n",
+ " name | \n",
+ " artist | \n",
+ " explicit | \n",
+ " popularity | \n",
+ " danceability | \n",
+ " energy | \n",
+ " key | \n",
+ " loudness | \n",
+ " ... | \n",
+ " instrumentalness | \n",
+ " liveness | \n",
+ " valence | \n",
+ " tempo | \n",
+ " type | \n",
+ " uri | \n",
+ " track_href | \n",
+ " analysis_url | \n",
+ " duration_ms | \n",
+ " time_signature | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 1YLUxdSfbsXYktpkp1aUvd | \n",
+ " Pelicans We | \n",
+ " The Fly | \n",
+ " Cosmo Sheldrake | \n",
+ " False | \n",
+ " 0 | \n",
+ " 0.865 | \n",
+ " 0.694 | \n",
+ " 10 | \n",
+ " -6.358 | \n",
+ " ... | \n",
+ " 0.000842 | \n",
+ " 0.1100 | \n",
+ " 0.661 | \n",
+ " 103.988 | \n",
+ " audio_features | \n",
+ " spotify:track:1YLUxdSfbsXYktpkp1aUvd | \n",
+ " https://api.spotify.com/v1/tracks/1YLUxdSfbsXY... | \n",
+ " https://api.spotify.com/v1/audio-analysis/1YLU... | \n",
+ " 3.565633 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 57HwKH3pHLeelTkckr94qf | \n",
+ " Beware of the Maniacs | \n",
+ " Horny Hippies | \n",
+ " The Dodos | \n",
+ " False | \n",
+ " 47 | \n",
+ " 0.449 | \n",
+ " 0.541 | \n",
+ " 11 | \n",
+ " -10.299 | \n",
+ " ... | \n",
+ " 0.000000 | \n",
+ " 0.1700 | \n",
+ " 0.276 | \n",
+ " 125.156 | \n",
+ " audio_features | \n",
+ " spotify:track:57HwKH3pHLeelTkckr94qf | \n",
+ " https://api.spotify.com/v1/tracks/57HwKH3pHLee... | \n",
+ " https://api.spotify.com/v1/audio-analysis/57Hw... | \n",
+ " 2.984933 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 4Dy9SM605DwtyqEHGUj1ZD | \n",
+ " Husbands | \n",
+ " You, Me, Cellphones | \n",
+ " Husbands | \n",
+ " False | \n",
+ " 0 | \n",
+ " 0.512 | \n",
+ " 0.550 | \n",
+ " 0 | \n",
+ " -8.264 | \n",
+ " ... | \n",
+ " 0.000839 | \n",
+ " 0.1060 | \n",
+ " 0.480 | \n",
+ " 99.905 | \n",
+ " audio_features | \n",
+ " spotify:track:4Dy9SM605DwtyqEHGUj1ZD | \n",
+ " https://api.spotify.com/v1/tracks/4Dy9SM605Dwt... | \n",
+ " https://api.spotify.com/v1/audio-analysis/4Dy9... | \n",
+ " 3.643217 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 290xSzR8Ee9fm82poMg4od | \n",
+ " Quiet Ferocity | \n",
+ " Used to Be in Love | \n",
+ " The Jungle Giants | \n",
+ " False | \n",
+ " 62 | \n",
+ " 0.830 | \n",
+ " 0.631 | \n",
+ " 11 | \n",
+ " -5.238 | \n",
+ " ... | \n",
+ " 0.035900 | \n",
+ " 0.0539 | \n",
+ " 0.877 | \n",
+ " 128.013 | \n",
+ " audio_features | \n",
+ " spotify:track:290xSzR8Ee9fm82poMg4od | \n",
+ " https://api.spotify.com/v1/tracks/290xSzR8Ee9f... | \n",
+ " https://api.spotify.com/v1/audio-analysis/290x... | \n",
+ " 3.713117 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 5ySZ6gVWw9XQf1Dxg4gj2M | \n",
+ " Time Capsules II | \n",
+ " Heart | \n",
+ " Oberhofer | \n",
+ " False | \n",
+ " 22 | \n",
+ " 0.403 | \n",
+ " 0.732 | \n",
+ " 9 | \n",
+ " -7.386 | \n",
+ " ... | \n",
+ " 0.379000 | \n",
+ " 0.1140 | \n",
+ " 0.195 | \n",
+ " 162.576 | \n",
+ " audio_features | \n",
+ " spotify:track:5ySZ6gVWw9XQf1Dxg4gj2M | \n",
+ " https://api.spotify.com/v1/tracks/5ySZ6gVWw9XQ... | \n",
+ " https://api.spotify.com/v1/audio-analysis/5ySZ... | \n",
+ " 4.186217 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
5 rows × 23 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " id album name \\\n",
+ "0 1YLUxdSfbsXYktpkp1aUvd Pelicans We The Fly \n",
+ "1 57HwKH3pHLeelTkckr94qf Beware of the Maniacs Horny Hippies \n",
+ "2 4Dy9SM605DwtyqEHGUj1ZD Husbands You, Me, Cellphones \n",
+ "3 290xSzR8Ee9fm82poMg4od Quiet Ferocity Used to Be in Love \n",
+ "4 5ySZ6gVWw9XQf1Dxg4gj2M Time Capsules II Heart \n",
+ "\n",
+ " artist explicit popularity danceability energy key \\\n",
+ "0 Cosmo Sheldrake False 0 0.865 0.694 10 \n",
+ "1 The Dodos False 47 0.449 0.541 11 \n",
+ "2 Husbands False 0 0.512 0.550 0 \n",
+ "3 The Jungle Giants False 62 0.830 0.631 11 \n",
+ "4 Oberhofer False 22 0.403 0.732 9 \n",
+ "\n",
+ " loudness ... instrumentalness liveness valence tempo \\\n",
+ "0 -6.358 ... 0.000842 0.1100 0.661 103.988 \n",
+ "1 -10.299 ... 0.000000 0.1700 0.276 125.156 \n",
+ "2 -8.264 ... 0.000839 0.1060 0.480 99.905 \n",
+ "3 -5.238 ... 0.035900 0.0539 0.877 128.013 \n",
+ "4 -7.386 ... 0.379000 0.1140 0.195 162.576 \n",
+ "\n",
+ " type uri \\\n",
+ "0 audio_features spotify:track:1YLUxdSfbsXYktpkp1aUvd \n",
+ "1 audio_features spotify:track:57HwKH3pHLeelTkckr94qf \n",
+ "2 audio_features spotify:track:4Dy9SM605DwtyqEHGUj1ZD \n",
+ "3 audio_features spotify:track:290xSzR8Ee9fm82poMg4od \n",
+ "4 audio_features spotify:track:5ySZ6gVWw9XQf1Dxg4gj2M \n",
+ "\n",
+ " track_href \\\n",
+ "0 https://api.spotify.com/v1/tracks/1YLUxdSfbsXY... \n",
+ "1 https://api.spotify.com/v1/tracks/57HwKH3pHLee... \n",
+ "2 https://api.spotify.com/v1/tracks/4Dy9SM605Dwt... \n",
+ "3 https://api.spotify.com/v1/tracks/290xSzR8Ee9f... \n",
+ "4 https://api.spotify.com/v1/tracks/5ySZ6gVWw9XQ... \n",
+ "\n",
+ " analysis_url duration_ms \\\n",
+ "0 https://api.spotify.com/v1/audio-analysis/1YLU... 3.565633 \n",
+ "1 https://api.spotify.com/v1/audio-analysis/57Hw... 2.984933 \n",
+ "2 https://api.spotify.com/v1/audio-analysis/4Dy9... 3.643217 \n",
+ "3 https://api.spotify.com/v1/audio-analysis/290x... 3.713117 \n",
+ "4 https://api.spotify.com/v1/audio-analysis/5ySZ... 4.186217 \n",
+ "\n",
+ " time_signature \n",
+ "0 4 \n",
+ "1 4 \n",
+ "2 4 \n",
+ "3 4 \n",
+ "4 4 \n",
+ "\n",
+ "[5 rows x 23 columns]"
+ ]
+ },
+ "execution_count": 37,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "playlist = pd.read_csv('playlist_kai_jan20_sep21.csv')\n",
+ "playlist.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(96, 23)"
+ ]
+ },
+ "execution_count": 38,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "playlist.shape"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### KMEANS"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 43,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " danceability | \n",
+ " energy | \n",
+ " loudness | \n",
+ " speechiness | \n",
+ " acousticness | \n",
+ " instrumentalness | \n",
+ " liveness | \n",
+ " valence | \n",
+ " tempo | \n",
+ " duration_ms | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 0.865 | \n",
+ " 0.694 | \n",
+ " -6.358 | \n",
+ " 0.0431 | \n",
+ " 0.25200 | \n",
+ " 0.000842 | \n",
+ " 0.1100 | \n",
+ " 0.661 | \n",
+ " 103.988 | \n",
+ " 3.565633 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 0.449 | \n",
+ " 0.541 | \n",
+ " -10.299 | \n",
+ " 0.0417 | \n",
+ " 0.08730 | \n",
+ " 0.000000 | \n",
+ " 0.1700 | \n",
+ " 0.276 | \n",
+ " 125.156 | \n",
+ " 2.984933 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 0.512 | \n",
+ " 0.550 | \n",
+ " -8.264 | \n",
+ " 0.0272 | \n",
+ " 0.00688 | \n",
+ " 0.000839 | \n",
+ " 0.1060 | \n",
+ " 0.480 | \n",
+ " 99.905 | \n",
+ " 3.643217 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 0.830 | \n",
+ " 0.631 | \n",
+ " -5.238 | \n",
+ " 0.0313 | \n",
+ " 0.00220 | \n",
+ " 0.035900 | \n",
+ " 0.0539 | \n",
+ " 0.877 | \n",
+ " 128.013 | \n",
+ " 3.713117 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 0.403 | \n",
+ " 0.732 | \n",
+ " -7.386 | \n",
+ " 0.0452 | \n",
+ " 0.74800 | \n",
+ " 0.379000 | \n",
+ " 0.1140 | \n",
+ " 0.195 | \n",
+ " 162.576 | \n",
+ " 4.186217 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " danceability energy loudness speechiness acousticness \\\n",
+ "0 0.865 0.694 -6.358 0.0431 0.25200 \n",
+ "1 0.449 0.541 -10.299 0.0417 0.08730 \n",
+ "2 0.512 0.550 -8.264 0.0272 0.00688 \n",
+ "3 0.830 0.631 -5.238 0.0313 0.00220 \n",
+ "4 0.403 0.732 -7.386 0.0452 0.74800 \n",
+ "\n",
+ " instrumentalness liveness valence tempo duration_ms \n",
+ "0 0.000842 0.1100 0.661 103.988 3.565633 \n",
+ "1 0.000000 0.1700 0.276 125.156 2.984933 \n",
+ "2 0.000839 0.1060 0.480 99.905 3.643217 \n",
+ "3 0.035900 0.0539 0.877 128.013 3.713117 \n",
+ "4 0.379000 0.1140 0.195 162.576 4.186217 "
+ ]
+ },
+ "execution_count": 43,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "X = feautres\n",
+ "\n",
+ "X.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 44,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "96"
+ ]
+ },
+ "execution_count": 44,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "len(X)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 45,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 6 | \n",
+ " 7 | \n",
+ " 8 | \n",
+ " 9 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 1.853471 | \n",
+ " 0.737705 | \n",
+ " 0.974841 | \n",
+ " -0.130016 | \n",
+ " -0.359601 | \n",
+ " -0.772344 | \n",
+ " -0.419225 | \n",
+ " 0.565800 | \n",
+ " -0.535314 | \n",
+ " -0.510808 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " -1.106982 | \n",
+ " -0.039378 | \n",
+ " -0.199228 | \n",
+ " -0.167442 | \n",
+ " -0.879237 | \n",
+ " -0.775059 | \n",
+ " 0.021380 | \n",
+ " -1.064241 | \n",
+ " 0.324005 | \n",
+ " -0.957877 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " -0.658644 | \n",
+ " 0.006333 | \n",
+ " 0.407021 | \n",
+ " -0.555068 | \n",
+ " -1.132965 | \n",
+ " -0.772353 | \n",
+ " -0.448599 | \n",
+ " -0.200531 | \n",
+ " -0.701064 | \n",
+ " -0.451079 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 1.604394 | \n",
+ " 0.417729 | \n",
+ " 1.308501 | \n",
+ " -0.445464 | \n",
+ " -1.147731 | \n",
+ " -0.659295 | \n",
+ " -0.831191 | \n",
+ " 1.480317 | \n",
+ " 0.439985 | \n",
+ " -0.397264 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " -1.434340 | \n",
+ " 0.930706 | \n",
+ " 0.668588 | \n",
+ " -0.073877 | \n",
+ " 1.205301 | \n",
+ " 0.447077 | \n",
+ " -0.389851 | \n",
+ " -1.407185 | \n",
+ " 1.843075 | \n",
+ " -0.033034 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " 0 1 2 3 4 5 6 \\\n",
+ "0 1.853471 0.737705 0.974841 -0.130016 -0.359601 -0.772344 -0.419225 \n",
+ "1 -1.106982 -0.039378 -0.199228 -0.167442 -0.879237 -0.775059 0.021380 \n",
+ "2 -0.658644 0.006333 0.407021 -0.555068 -1.132965 -0.772353 -0.448599 \n",
+ "3 1.604394 0.417729 1.308501 -0.445464 -1.147731 -0.659295 -0.831191 \n",
+ "4 -1.434340 0.930706 0.668588 -0.073877 1.205301 0.447077 -0.389851 \n",
+ "\n",
+ " 7 8 9 \n",
+ "0 0.565800 -0.535314 -0.510808 \n",
+ "1 -1.064241 0.324005 -0.957877 \n",
+ "2 -0.200531 -0.701064 -0.451079 \n",
+ "3 1.480317 0.439985 -0.397264 \n",
+ "4 -1.407185 1.843075 -0.033034 "
+ ]
+ },
+ "execution_count": 45,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# K-Means is a distance based algorithm: we need to scale / normalize:\n",
+ "from sklearn.preprocessing import StandardScaler\n",
+ "X_prep = StandardScaler().fit_transform(X)\n",
+ "\n",
+ "pd.DataFrame(X_prep).head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### Clustering:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 46,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "KMeans(n_clusters=3, random_state=42)"
+ ]
+ },
+ "execution_count": 46,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from sklearn.cluster import KMeans\n",
+ "\n",
+ "kmeans = KMeans(n_clusters=3, random_state=42)\n",
+ "kmeans.fit(X_prep)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 47,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([1, 1, 1, 1, 2, 0, 2, 1, 1, 2, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 2, 2,\n",
+ " 0, 0, 1, 1, 1, 0, 0, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 0,\n",
+ " 1, 0, 2, 1, 0, 0, 0, 2, 0, 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 0, 1, 1,\n",
+ " 1, 1, 2, 2, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 2, 2, 1, 0,\n",
+ " 2, 1, 1, 1, 0, 0, 0, 0])"
+ ]
+ },
+ "execution_count": 47,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Predicting / assigning the clusters:\n",
+ "clusters = kmeans.predict(X_prep)\n",
+ "clusters"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 48,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0 25\n",
+ "1 47\n",
+ "2 24\n",
+ "dtype: int64"
+ ]
+ },
+ "execution_count": 48,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Check the size of the clusters\n",
+ "pd.Series(clusters).value_counts().sort_index()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 49,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " danceability | \n",
+ " energy | \n",
+ " loudness | \n",
+ " speechiness | \n",
+ " acousticness | \n",
+ " instrumentalness | \n",
+ " liveness | \n",
+ " valence | \n",
+ " tempo | \n",
+ " duration_ms | \n",
+ " cluster | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 0.865 | \n",
+ " 0.694 | \n",
+ " -6.358 | \n",
+ " 0.0431 | \n",
+ " 0.25200 | \n",
+ " 0.000842 | \n",
+ " 0.1100 | \n",
+ " 0.6610 | \n",
+ " 103.988 | \n",
+ " 3.565633 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 0.449 | \n",
+ " 0.541 | \n",
+ " -10.299 | \n",
+ " 0.0417 | \n",
+ " 0.08730 | \n",
+ " 0.000000 | \n",
+ " 0.1700 | \n",
+ " 0.2760 | \n",
+ " 125.156 | \n",
+ " 2.984933 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 0.512 | \n",
+ " 0.550 | \n",
+ " -8.264 | \n",
+ " 0.0272 | \n",
+ " 0.00688 | \n",
+ " 0.000839 | \n",
+ " 0.1060 | \n",
+ " 0.4800 | \n",
+ " 99.905 | \n",
+ " 3.643217 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 0.830 | \n",
+ " 0.631 | \n",
+ " -5.238 | \n",
+ " 0.0313 | \n",
+ " 0.00220 | \n",
+ " 0.035900 | \n",
+ " 0.0539 | \n",
+ " 0.8770 | \n",
+ " 128.013 | \n",
+ " 3.713117 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 0.403 | \n",
+ " 0.732 | \n",
+ " -7.386 | \n",
+ " 0.0452 | \n",
+ " 0.74800 | \n",
+ " 0.379000 | \n",
+ " 0.1140 | \n",
+ " 0.1950 | \n",
+ " 162.576 | \n",
+ " 4.186217 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " | 91 | \n",
+ " 0.864 | \n",
+ " 0.385 | \n",
+ " -11.553 | \n",
+ " 0.0454 | \n",
+ " 0.10200 | \n",
+ " 0.053900 | \n",
+ " 0.1430 | \n",
+ " 0.6650 | \n",
+ " 113.014 | \n",
+ " 3.428000 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " | 92 | \n",
+ " 0.659 | \n",
+ " 0.387 | \n",
+ " -13.172 | \n",
+ " 0.0335 | \n",
+ " 0.46700 | \n",
+ " 0.692000 | \n",
+ " 0.0839 | \n",
+ " 0.0779 | \n",
+ " 114.989 | \n",
+ " 4.659550 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " | 93 | \n",
+ " 0.566 | \n",
+ " 0.757 | \n",
+ " -8.370 | \n",
+ " 0.0355 | \n",
+ " 0.32800 | \n",
+ " 0.840000 | \n",
+ " 0.3960 | \n",
+ " 0.4030 | \n",
+ " 102.016 | \n",
+ " 4.453350 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " | 94 | \n",
+ " 0.663 | \n",
+ " 0.502 | \n",
+ " -11.988 | \n",
+ " 0.0399 | \n",
+ " 0.24600 | \n",
+ " 0.772000 | \n",
+ " 0.0711 | \n",
+ " 0.1180 | \n",
+ " 100.008 | \n",
+ " 4.455067 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " | 95 | \n",
+ " 0.598 | \n",
+ " 0.630 | \n",
+ " -10.492 | \n",
+ " 0.0250 | \n",
+ " 0.56600 | \n",
+ " 0.338000 | \n",
+ " 0.1790 | \n",
+ " 0.6970 | \n",
+ " 108.947 | \n",
+ " 7.277567 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
96 rows × 11 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " danceability energy loudness speechiness acousticness \\\n",
+ "0 0.865 0.694 -6.358 0.0431 0.25200 \n",
+ "1 0.449 0.541 -10.299 0.0417 0.08730 \n",
+ "2 0.512 0.550 -8.264 0.0272 0.00688 \n",
+ "3 0.830 0.631 -5.238 0.0313 0.00220 \n",
+ "4 0.403 0.732 -7.386 0.0452 0.74800 \n",
+ ".. ... ... ... ... ... \n",
+ "91 0.864 0.385 -11.553 0.0454 0.10200 \n",
+ "92 0.659 0.387 -13.172 0.0335 0.46700 \n",
+ "93 0.566 0.757 -8.370 0.0355 0.32800 \n",
+ "94 0.663 0.502 -11.988 0.0399 0.24600 \n",
+ "95 0.598 0.630 -10.492 0.0250 0.56600 \n",
+ "\n",
+ " instrumentalness liveness valence tempo duration_ms cluster \n",
+ "0 0.000842 0.1100 0.6610 103.988 3.565633 0 \n",
+ "1 0.000000 0.1700 0.2760 125.156 2.984933 0 \n",
+ "2 0.000839 0.1060 0.4800 99.905 3.643217 0 \n",
+ "3 0.035900 0.0539 0.8770 128.013 3.713117 0 \n",
+ "4 0.379000 0.1140 0.1950 162.576 4.186217 1 \n",
+ ".. ... ... ... ... ... ... \n",
+ "91 0.053900 0.1430 0.6650 113.014 3.428000 0 \n",
+ "92 0.692000 0.0839 0.0779 114.989 4.659550 2 \n",
+ "93 0.840000 0.3960 0.4030 102.016 4.453350 2 \n",
+ "94 0.772000 0.0711 0.1180 100.008 4.455067 2 \n",
+ "95 0.338000 0.1790 0.6970 108.947 7.277567 2 \n",
+ "\n",
+ "[96 rows x 11 columns]"
+ ]
+ },
+ "execution_count": 49,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Explore the cluster assignment in the original dataset\n",
+ "X_df = pd.DataFrame(X)\n",
+ "X_df[\"cluster\"] = clusters\n",
+ "X_df.head()\n",
+ "\n",
+ "X_df['cluster'] = X_df['cluster'].apply(lambda x: 0 if x == 1 else 1 if x == 2 else 2)\n",
+ "X_df"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 50,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "687.5298714303228"
+ ]
+ },
+ "execution_count": 50,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# \"performance metric\"\n",
+ "kmeans.inertia_"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Choosing the best K\n",
+ "#### Inertia"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 53,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Initialization complete\n",
+ "Iteration 0, inertia 1018.1884994635325\n",
+ "Iteration 1, inertia 747.574687983598\n",
+ "Iteration 2, inertia 723.627909097223\n",
+ "Iteration 3, inertia 703.7890348466105\n",
+ "Iteration 4, inertia 697.0806368012246\n",
+ "Iteration 5, inertia 690.2030159903524\n",
+ "Iteration 6, inertia 688.4015885695474\n",
+ "Iteration 7, inertia 687.8507962862802\n",
+ "Iteration 8, inertia 687.2733470163898\n",
+ "Converged at iteration 8: strict convergence.\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "687.2733470163898"
+ ]
+ },
+ "execution_count": 53,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "kmeans = KMeans(n_clusters=3, random_state=1234, verbose=1, n_init=1)\n",
+ "kmeans.fit(X_prep)\n",
+ "kmeans.inertia_"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 61,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "C:\\Users\\charlotte.stiller\\Anaconda3\\lib\\site-packages\\sklearn\\cluster\\_kmeans.py:881: UserWarning: KMeans is known to have a memory leak on Windows with MKL, when there are less chunks than available threads. You can avoid it by setting the environment variable OMP_NUM_THREADS=1.\n",
+ " warnings.warn(\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "K = range(1, 20,2)\n",
+ "\n",
+ "inertia = []\n",
+ "\n",
+ "for k in K:\n",
+ " kmeans = KMeans(n_clusters=k, random_state=1234)\n",
+ " kmeans.fit(X_prep)\n",
+ " inertia.append(kmeans.inertia_)\n",
+ " \n",
+ "plt.figure(figsize=(16,8))\n",
+ "plt.plot(K, inertia, 'bx-')\n",
+ "plt.xlabel('k')\n",
+ "plt.ylabel('inertia')\n",
+ "plt.xticks(np.arange(min(K), max(K)+1, 1.0))\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### k = 9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 62,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "KMeans(n_clusters=9, random_state=42)"
+ ]
+ },
+ "execution_count": 62,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "kmeans = KMeans(n_clusters=9, random_state=42)\n",
+ "kmeans.fit(X_prep)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 63,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([1, 2, 2, 1, 7, 0, 7, 2, 1, 8, 1, 1, 1, 0, 4, 0, 4, 1, 1, 1, 5, 5,\n",
+ " 2, 4, 7, 1, 7, 4, 4, 3, 2, 3, 2, 8, 1, 1, 1, 1, 3, 3, 5, 5, 1, 2,\n",
+ " 7, 0, 5, 1, 0, 0, 2, 5, 2, 8, 6, 7, 1, 6, 3, 3, 3, 2, 5, 2, 1, 1,\n",
+ " 2, 7, 5, 5, 7, 1, 0, 1, 2, 1, 1, 4, 1, 1, 0, 4, 1, 1, 5, 5, 7, 2,\n",
+ " 0, 4, 4, 1, 0, 0, 0, 4])"
+ ]
+ },
+ "execution_count": 63,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "clusters = kmeans.predict(X_prep)\n",
+ "clusters"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 65,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0 12\n",
+ "1 28\n",
+ "2 14\n",
+ "3 7\n",
+ "4 10\n",
+ "5 11\n",
+ "6 2\n",
+ "7 9\n",
+ "8 3\n",
+ "dtype: int64"
+ ]
+ },
+ "execution_count": 65,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "pd.Series(clusters).value_counts().sort_index()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 64,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "434.7201987449001"
+ ]
+ },
+ "execution_count": 64,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "kmeans.inertia_\n",
+ "# k 3 = inertia 687.5298714303228"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### Silhouette Score"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 66,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from sklearn.metrics import silhouette_score\n",
+ "K = range(2, 20)\n",
+ "\n",
+ "silhouette = []\n",
+ "\n",
+ "for k in K:\n",
+ " kmeans = KMeans(n_clusters=k, random_state=42)\n",
+ " kmeans.fit(X_prep)\n",
+ " silhouette.append(silhouette_score(X_prep, kmeans.predict(X_prep)))\n",
+ "\n",
+ "\n",
+ "plt.figure(figsize=(16,8))\n",
+ "plt.plot(K, silhouette, 'bx-')\n",
+ "plt.xlabel('k')\n",
+ "plt.ylabel('silhouette score')\n",
+ "plt.xticks(np.arange(min(K), max(K)+1, 1.0))\n",
+ "plt.show()"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.8.8"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/music_feature.csv b/music_feature.csv
new file mode 100644
index 0000000..de532f5
--- /dev/null
+++ b/music_feature.csv
@@ -0,0 +1,97 @@
+danceability,energy,loudness,speechiness,acousticness,instrumentalness,liveness,valence,tempo,duration_ms
+0.865,0.694,-6.358,0.0431,0.252,0.000842,0.11,0.661,103.988,3.5656333333333334
+0.449,0.541,-10.299,0.0417,0.0873,0.0,0.17,0.276,125.156,2.984933333333333
+0.512,0.55,-8.264,0.0272,0.00688,0.000839,0.106,0.48,99.905,3.6432166666666665
+0.83,0.631,-5.238,0.0313,0.0022,0.0359,0.0539,0.877,128.013,3.7131166666666666
+0.403,0.732,-7.386,0.0452,0.748,0.379,0.114,0.195,162.576,4.186216666666667
+0.601,0.478,-14.561,0.0295,0.372,0.867,0.326,0.486,111.028,5.479716666666667
+0.393,0.385,-10.985,0.0396,0.547,0.0,0.545,0.777,177.956,3.2348833333333333
+0.579,0.477,-8.539,0.0367,0.127,0.0,0.0974,0.537,89.724,4.668216666666667
+0.809,0.434,-10.688,0.0363,0.579,0.47,0.0827,0.788,120.034,3.832666666666667
+0.783,0.579,-11.799,0.281,0.944,0.147,0.12,0.37,155.79,3.2123166666666667
+0.756,0.672,-6.847,0.0454,0.198,0.387,0.0859,0.642,97.987,3.6456166666666667
+0.715,0.464,-7.807,0.0416,0.0757,0.000588,0.221,0.411,108.995,3.1633833333333334
+0.823,0.551,-11.649,0.0372,0.112,0.412,0.092,0.962,100.987,3.06345
+0.694,0.648,-7.954,0.0377,0.139,0.85,0.0628,0.0913,115.005,4.43055
+0.714,0.759,-12.869,0.0389,0.0116,0.248,0.0998,0.849,119.994,6.922883333333333
+0.488,0.663,-12.098,0.0325,0.591,0.908,0.118,0.246,97.021,3.6679
+0.563,0.872,-6.548,0.053,0.117,0.00108,0.103,0.886,124.2,5.883933333333333
+0.881,0.546,-9.357,0.0407,0.0532,0.000149,0.0497,0.852,102.814,5.340216666666667
+0.593,0.791,-8.698,0.068,0.175,0.0,0.0976,0.63,112.295,3.1466666666666665
+0.759,0.508,-8.185,0.0269,0.218,0.261,0.121,0.525,117.778,3.9791166666666666
+0.565,0.52,-10.681,0.0333,0.556,0.137,0.0748,0.378,103.515,4.2282166666666665
+0.575,0.305,-11.09,0.0507,0.879,0.000136,0.104,0.277,117.091,3.0653333333333332
+0.263,0.503,-6.948,0.0386,0.0148,0.0171,0.11,0.255,112.019,5.978
+0.607,0.672,-10.022,0.0283,0.000331,0.649,0.109,0.407,144.049,5.825116666666666
+0.299,0.839,-6.238,0.035,0.0471,0.00064,0.383,0.587,149.171,3.6066666666666665
+0.662,0.574,-8.696,0.0261,0.298,0.00902,0.115,0.948,109.085,3.99675
+0.43,0.971,-3.845,0.0524,0.0271,2.16e-05,0.185,0.764,151.219,3.533333333333333
+0.706,0.531,-12.357,0.0463,0.0592,0.266,0.11,0.0787,118.981,8.63865
+0.542,0.795,-6.818,0.032,0.0119,0.608,0.237,0.34,116.991,6.439683333333333
+0.73,0.205,-15.489,0.0957,0.872,0.0593,0.095,0.206,124.989,3.3230833333333334
+0.497,0.388,-10.696,0.0364,0.469,0.0809,0.121,0.529,125.127,4.614883333333333
+0.297,0.365,-8.348,0.0325,0.933,0.0274,0.0769,0.261,176.672,5.261783333333334
+0.529,0.581,-9.311,0.0287,0.259,0.122,0.106,0.583,93.259,3.6097333333333332
+0.53,0.822,-6.789,0.17,0.00071,0.686,0.0705,0.814,124.051,3.67725
+0.531,0.594,-7.656,0.032,0.0042,0.386,0.199,0.75,104.677,3.0166666666666666
+0.561,0.896,-4.903,0.0528,0.765,0.685,0.124,0.629,86.808,3.5631
+0.61,0.802,-4.582,0.0281,0.509,0.0149,0.104,0.756,122.071,4.0696666666666665
+0.782,0.71,-4.394,0.0382,0.0447,0.0,0.095,0.762,115.995,4.815333333333333
+0.583,0.241,-19.484,0.0361,0.766,0.381,0.0959,0.4,174.075,4.5366
+0.567,0.159,-13.648,0.0331,0.914,0.0,0.111,0.436,146.913,2.63155
+0.457,0.129,-11.435,0.0324,0.715,2.25e-05,0.159,0.234,111.031,5.226933333333333
+0.493,0.211,-12.622,0.0655,0.754,1.09e-05,0.116,0.236,58.574,3.9635666666666665
+0.647,0.335,-10.251,0.033,0.29,0.000109,0.0967,0.746,138.062,2.37445
+0.412,0.599,-7.083,0.0377,0.0356,0.00012,0.336,0.268,105.693,5.042883333333333
+0.483,0.687,-9.066,0.0306,0.0731,0.000275,0.373,0.698,129.991,3.05555
+0.414,0.429,-9.469,0.028,0.525,0.81,0.111,0.135,79.227,6.96155
+0.728,0.249,-15.429,0.0328,0.327,0.216,0.0875,0.452,93.683,3.263333333333333
+0.742,0.603,-8.571,0.0805,0.0622,0.0,0.101,0.625,92.03,3.691116666666667
+0.706,0.315,-11.846,0.0339,0.364,0.821,0.11,0.647,76.908,4.15165
+0.462,0.443,-14.335,0.045,0.853,0.491,0.11,0.567,119.756,6.651383333333333
+0.442,0.591,-9.595,0.0279,0.0707,0.391,0.133,0.419,89.607,3.806216666666667
+0.847,0.6,-9.092,0.0351,0.825,0.00231,0.0922,0.212,121.999,3.3937166666666667
+0.567,0.666,-9.647,0.0298,0.0244,0.251,0.107,0.251,106.001,5.091483333333334
+0.691,0.754,-6.185,0.191,0.0396,0.0,0.326,0.723,90.842,3.60475
+0.693,0.839,-3.325,0.172,0.0653,0.0,0.776,0.773,93.049,4.267333333333333
+0.497,0.561,-10.938,0.0607,0.393,0.00279,0.137,0.566,163.981,2.56645
+0.648,0.556,-6.492,0.0335,0.226,0.0,0.176,0.592,80.225,3.342633333333333
+0.884,0.653,-7.653,0.0586,0.371,0.00135,0.812,0.766,108.548,2.90355
+0.658,0.0742,-17.711,0.0961,0.979,0.000736,0.13,0.362,161.312,2.711116666666667
+0.277,0.162,-13.733,0.0376,0.983,0.117,0.112,0.257,173.284,4.226666666666667
+0.591,0.371,-18.5,0.12,0.874,0.17,0.0905,0.158,119.869,4.637783333333333
+0.63,0.569,-7.495,0.031,0.0726,0.000136,0.272,0.523,84.982,3.9473333333333334
+0.549,0.524,-9.319,0.0522,0.597,0.0154,0.0996,0.329,129.773,3.7241833333333334
+0.324,0.588,-8.32,0.0328,0.433,0.0492,0.184,0.316,92.016,8.609116666666667
+0.564,0.76,-7.243,0.0451,0.273,0.0,0.124,0.6,117.932,3.4962833333333334
+0.73,0.669,-7.934,0.0565,0.58,0.0036,0.103,0.848,118.209,4.778883333333333
+0.454,0.691,-6.173,0.0344,0.193,1.33e-06,0.105,0.405,78.539,3.16025
+0.362,0.872,-2.769,0.0502,0.0588,8.64e-06,0.123,0.617,164.865,3.61215
+0.631,0.0341,-11.791,0.0514,0.93,0.926,0.101,0.291,78.997,2.142516666666667
+0.542,0.347,-14.011,0.0268,0.783,0.0,0.144,0.596,103.709,2.354
+0.565,0.755,-7.402,0.0406,0.258,0.00976,0.219,0.499,172.01,3.2347166666666665
+0.693,0.572,-10.491,0.041,0.308,0.000405,0.0736,0.867,109.816,3.4849833333333335
+0.459,0.5,-11.337,0.0367,0.827,0.908,0.356,0.276,149.861,7.2307
+0.811,0.553,-9.257,0.0447,0.625,0.159,0.202,0.765,100.547,4.366933333333333
+0.525,0.717,-6.06,0.0339,0.0716,0.575,0.121,0.211,130.898,4.717116666666667
+0.665,0.797,-9.172,0.0419,0.124,0.0173,0.0958,0.717,143.176,3.38485
+0.7,0.515,-5.546,0.0299,0.44,0.0,0.126,0.771,92.524,2.6238333333333332
+0.647,0.414,-13.219,0.0985,0.0309,0.85,0.183,0.967,101.301,4.972216666666666
+0.675,0.57,-9.402,0.0348,0.811,9.31e-05,0.0788,0.575,101.981,4.588
+0.757,0.588,-8.083,0.0322,0.693,0.777,0.471,0.96,112.567,3.472
+0.638,0.473,-13.058,0.0382,0.19,0.423,0.374,0.454,129.954,4.75
+0.704,0.603,-10.501,0.0334,0.00256,0.196,0.0656,0.668,111.98,6.5
+0.708,0.802,-4.49,0.03,0.00376,0.219,0.11,0.741,117.021,3.8984666666666667
+0.651,0.465,-7.538,0.0328,0.503,0.0455,0.495,0.585,107.75,3.284
+0.562,0.212,-16.682,0.0363,0.645,0.722,0.152,0.31,115.926,3.5903833333333335
+0.63,0.377,-13.728,0.0307,0.709,0.0821,0.0994,0.216,93.978,3.3162166666666666
+0.53,0.633,-7.078,0.0283,0.391,0.0152,0.142,0.605,140.186,3.4407666666666668
+0.537,0.414,-7.952,0.0404,0.218,2.1e-06,0.103,0.459,117.101,6.2442166666666665
+0.641,0.269,-15.927,0.0392,0.986,0.96,0.141,0.578,129.766,3.7708833333333334
+0.723,0.703,-9.495,0.0318,0.0272,0.313,0.0979,0.767,129.725,5.153116666666667
+0.665,0.758,-6.354,0.028,0.00451,0.739,0.312,0.761,131.025,4.7442166666666665
+0.864,0.385,-11.553,0.0454,0.102,0.0539,0.143,0.665,113.014,3.428
+0.659,0.387,-13.172,0.0335,0.467,0.692,0.0839,0.0779,114.989,4.65955
+0.566,0.757,-8.37,0.0355,0.328,0.84,0.396,0.403,102.016,4.45335
+0.663,0.502,-11.988,0.0399,0.246,0.772,0.0711,0.118,100.008,4.455066666666666
+0.598,0.63,-10.492,0.025,0.566,0.338,0.179,0.697,108.947,7.277566666666667
diff --git a/playlist_kai_jan20_sep21.csv b/playlist_kai_jan20_sep21.csv
new file mode 100644
index 0000000..21898bb
--- /dev/null
+++ b/playlist_kai_jan20_sep21.csv
@@ -0,0 +1,97 @@
+id,album,name,artist,explicit,popularity,danceability,energy,key,loudness,mode,speechiness,acousticness,instrumentalness,liveness,valence,tempo,type,uri,track_href,analysis_url,duration_ms,time_signature
+1YLUxdSfbsXYktpkp1aUvd,Pelicans We,The Fly,Cosmo Sheldrake,False,0,0.865,0.694,10,-6.358,0,0.0431,0.252,0.000842,0.11,0.661,103.988,audio_features,spotify:track:1YLUxdSfbsXYktpkp1aUvd,https://api.spotify.com/v1/tracks/1YLUxdSfbsXYktpkp1aUvd,https://api.spotify.com/v1/audio-analysis/1YLUxdSfbsXYktpkp1aUvd,3.5656333333333334,4
+57HwKH3pHLeelTkckr94qf,Beware of the Maniacs,Horny Hippies,The Dodos,False,47,0.449,0.541,11,-10.299,0,0.0417,0.0873,0.0,0.17,0.276,125.156,audio_features,spotify:track:57HwKH3pHLeelTkckr94qf,https://api.spotify.com/v1/tracks/57HwKH3pHLeelTkckr94qf,https://api.spotify.com/v1/audio-analysis/57HwKH3pHLeelTkckr94qf,2.984933333333333,4
+4Dy9SM605DwtyqEHGUj1ZD,Husbands,"You, Me, Cellphones",Husbands,False,0,0.512,0.55,0,-8.264,1,0.0272,0.00688,0.000839,0.106,0.48,99.905,audio_features,spotify:track:4Dy9SM605DwtyqEHGUj1ZD,https://api.spotify.com/v1/tracks/4Dy9SM605DwtyqEHGUj1ZD,https://api.spotify.com/v1/audio-analysis/4Dy9SM605DwtyqEHGUj1ZD,3.6432166666666665,4
+290xSzR8Ee9fm82poMg4od,Quiet Ferocity,Used to Be in Love,The Jungle Giants,False,62,0.83,0.631,11,-5.238,0,0.0313,0.0022,0.0359,0.0539,0.877,128.013,audio_features,spotify:track:290xSzR8Ee9fm82poMg4od,https://api.spotify.com/v1/tracks/290xSzR8Ee9fm82poMg4od,https://api.spotify.com/v1/audio-analysis/290xSzR8Ee9fm82poMg4od,3.7131166666666666,4
+5ySZ6gVWw9XQf1Dxg4gj2M,Time Capsules II,Heart,Oberhofer,False,22,0.403,0.732,9,-7.386,0,0.0452,0.748,0.379,0.114,0.195,162.576,audio_features,spotify:track:5ySZ6gVWw9XQf1Dxg4gj2M,https://api.spotify.com/v1/tracks/5ySZ6gVWw9XQf1Dxg4gj2M,https://api.spotify.com/v1/audio-analysis/5ySZ6gVWw9XQf1Dxg4gj2M,4.186216666666667,4
+5x2iDSe6UhPogU7tdOsI9L,The Hustle Unlimited,The Hustle Unlimited,Lambchop,False,39,0.601,0.478,6,-14.561,1,0.0295,0.372,0.867,0.326,0.486,111.028,audio_features,spotify:track:5x2iDSe6UhPogU7tdOsI9L,https://api.spotify.com/v1/tracks/5x2iDSe6UhPogU7tdOsI9L,https://api.spotify.com/v1/audio-analysis/5x2iDSe6UhPogU7tdOsI9L,5.479716666666667,4
+7bzfyzaZjqai1wTEJsxTOF,Sinatra And Swingin' Brass,I Get A Kick Out Of You,Frank Sinatra,False,0,0.393,0.385,5,-10.985,0,0.0396,0.547,0.0,0.545,0.777,177.956,audio_features,spotify:track:7bzfyzaZjqai1wTEJsxTOF,https://api.spotify.com/v1/tracks/7bzfyzaZjqai1wTEJsxTOF,https://api.spotify.com/v1/audio-analysis/7bzfyzaZjqai1wTEJsxTOF,3.2348833333333333,4
+6UaocmOO1bO7YwfHv9Kqcy,The Way We Were: The Best Of Gladys Knight & The Pips,Midnight Train to Georgia,Gladys Knight & The Pips,False,60,0.579,0.477,10,-8.539,0,0.0367,0.127,0.0,0.0974,0.537,89.724,audio_features,spotify:track:6UaocmOO1bO7YwfHv9Kqcy,https://api.spotify.com/v1/tracks/6UaocmOO1bO7YwfHv9Kqcy,https://api.spotify.com/v1/audio-analysis/6UaocmOO1bO7YwfHv9Kqcy,4.668216666666667,4
+6rJGYKNLvDeXl021XUT8SK,About Face,Camberwell,#1 Dads,False,0,0.809,0.434,5,-10.688,1,0.0363,0.579,0.47,0.0827,0.788,120.034,audio_features,spotify:track:6rJGYKNLvDeXl021XUT8SK,https://api.spotify.com/v1/tracks/6rJGYKNLvDeXl021XUT8SK,https://api.spotify.com/v1/audio-analysis/6rJGYKNLvDeXl021XUT8SK,3.832666666666667,4
+6w6bztcdjdwRtHkrVBexGE,The Pleasant Trees (Volume 3),Miffed,Tom Rosenthal,False,41,0.783,0.579,5,-11.799,0,0.281,0.944,0.147,0.12,0.37,155.79,audio_features,spotify:track:6w6bztcdjdwRtHkrVBexGE,https://api.spotify.com/v1/tracks/6w6bztcdjdwRtHkrVBexGE,https://api.spotify.com/v1/audio-analysis/6w6bztcdjdwRtHkrVBexGE,3.2123166666666667,3
+67dDXJ2BkhEdCaM4cvTOw6,Hide & Seek,Common World,Yes I'm Very Tired Now,False,27,0.756,0.672,0,-6.847,0,0.0454,0.198,0.387,0.0859,0.642,97.987,audio_features,spotify:track:67dDXJ2BkhEdCaM4cvTOw6,https://api.spotify.com/v1/tracks/67dDXJ2BkhEdCaM4cvTOw6,https://api.spotify.com/v1/audio-analysis/67dDXJ2BkhEdCaM4cvTOw6,3.6456166666666667,4
+42IE9djoOoTpW5BGxKlPA1,Hearts,Hearts,CHILDREN,False,4,0.715,0.464,2,-7.807,0,0.0416,0.0757,0.000588,0.221,0.411,108.995,audio_features,spotify:track:42IE9djoOoTpW5BGxKlPA1,https://api.spotify.com/v1/tracks/42IE9djoOoTpW5BGxKlPA1,https://api.spotify.com/v1/audio-analysis/42IE9djoOoTpW5BGxKlPA1,3.1633833333333334,4
+4S61nFbE4MU8I0SeiI2Ebw,Beat Tape,Disco,Benny Sings,False,0,0.823,0.551,6,-11.649,1,0.0372,0.112,0.412,0.092,0.962,100.987,audio_features,spotify:track:4S61nFbE4MU8I0SeiI2Ebw,https://api.spotify.com/v1/tracks/4S61nFbE4MU8I0SeiI2Ebw,https://api.spotify.com/v1/audio-analysis/4S61nFbE4MU8I0SeiI2Ebw,3.06345,4
+4nZNT7iFMpKBz90niaVh6O,Cupa Cupa (Little People Remix),Cupa Cupa - Little People Remix,"Parra for Cuva, Little People",False,0,0.694,0.648,10,-7.954,1,0.0377,0.139,0.85,0.0628,0.0913,115.005,audio_features,spotify:track:4nZNT7iFMpKBz90niaVh6O,https://api.spotify.com/v1/tracks/4nZNT7iFMpKBz90niaVh6O,https://api.spotify.com/v1/audio-analysis/4nZNT7iFMpKBz90niaVh6O,4.43055,4
+6SeMUbVazXNQ1ofAaZIMOj,DJ-Kicks (DJ Koze) [DJ Mix],Surrender (Kosi Edit) - mixed,"Portable, L_cio",False,0,0.714,0.759,7,-12.869,1,0.0389,0.0116,0.248,0.0998,0.849,119.994,audio_features,spotify:track:6SeMUbVazXNQ1ofAaZIMOj,https://api.spotify.com/v1/tracks/6SeMUbVazXNQ1ofAaZIMOj,https://api.spotify.com/v1/audio-analysis/6SeMUbVazXNQ1ofAaZIMOj,6.922883333333333,4
+3TxH9hjKCNlHTUQsPiUaLK,Bloodflow,Bloodflow - Edit,Grandbrothers,False,48,0.488,0.663,3,-12.098,0,0.0325,0.591,0.908,0.118,0.246,97.021,audio_features,spotify:track:3TxH9hjKCNlHTUQsPiUaLK,https://api.spotify.com/v1/tracks/3TxH9hjKCNlHTUQsPiUaLK,https://api.spotify.com/v1/audio-analysis/3TxH9hjKCNlHTUQsPiUaLK,3.6679,4
+73rarLN1ixtnfgjtAZpOIN,Plump (Chapters 1 & 2),Every Soul,Twiddle,False,37,0.563,0.872,11,-6.548,0,0.053,0.117,0.00108,0.103,0.886,124.2,audio_features,spotify:track:73rarLN1ixtnfgjtAZpOIN,https://api.spotify.com/v1/tracks/73rarLN1ixtnfgjtAZpOIN,https://api.spotify.com/v1/audio-analysis/73rarLN1ixtnfgjtAZpOIN,5.883933333333333,4
+1eamsmwcYYhJwTgMFdQ6YN,Rip It Up,Rip It Up,Orange Juice,False,55,0.881,0.546,7,-9.357,1,0.0407,0.0532,0.000149,0.0497,0.852,102.814,audio_features,spotify:track:1eamsmwcYYhJwTgMFdQ6YN,https://api.spotify.com/v1/tracks/1eamsmwcYYhJwTgMFdQ6YN,https://api.spotify.com/v1/audio-analysis/1eamsmwcYYhJwTgMFdQ6YN,5.340216666666667,4
+2vLaES21zwbX1Rnmj56Bbb,Spinners,I'll Be Around,The Spinners,False,63,0.593,0.791,8,-8.698,0,0.068,0.175,0.0,0.0976,0.63,112.295,audio_features,spotify:track:2vLaES21zwbX1Rnmj56Bbb,https://api.spotify.com/v1/tracks/2vLaES21zwbX1Rnmj56Bbb,https://api.spotify.com/v1/audio-analysis/2vLaES21zwbX1Rnmj56Bbb,3.1466666666666665,4
+55VEFo10oIYim0iVJHTQ6Y,Pocket Revolution,The Real Sugar,dEUS,False,25,0.759,0.508,2,-8.185,0,0.0269,0.218,0.261,0.121,0.525,117.778,audio_features,spotify:track:55VEFo10oIYim0iVJHTQ6Y,https://api.spotify.com/v1/tracks/55VEFo10oIYim0iVJHTQ6Y,https://api.spotify.com/v1/audio-analysis/55VEFo10oIYim0iVJHTQ6Y,3.9791166666666666,4
+3i18lq8Td6XWWqbD1vYX6D,Peter Doherty & The Puta Madres,All At Sea,"Peter Doherty, The Puta Madres",False,31,0.565,0.52,4,-10.681,1,0.0333,0.556,0.137,0.0748,0.378,103.515,audio_features,spotify:track:3i18lq8Td6XWWqbD1vYX6D,https://api.spotify.com/v1/tracks/3i18lq8Td6XWWqbD1vYX6D,https://api.spotify.com/v1/audio-analysis/3i18lq8Td6XWWqbD1vYX6D,4.2282166666666665,4
+366ZWAQxSeFY4HTXUJ1Kix,Soliloquy,It's you,"Lou Doillon, Cat Power",False,38,0.575,0.305,11,-11.09,1,0.0507,0.879,0.000136,0.104,0.277,117.091,audio_features,spotify:track:366ZWAQxSeFY4HTXUJ1Kix,https://api.spotify.com/v1/tracks/366ZWAQxSeFY4HTXUJ1Kix,https://api.spotify.com/v1/audio-analysis/366ZWAQxSeFY4HTXUJ1Kix,3.0653333333333332,4
+7DhuDQVyfsRjl0czAsadlB,Eraserland,Weird Ways,Strand of Oaks,False,24,0.263,0.503,6,-6.948,0,0.0386,0.0148,0.0171,0.11,0.255,112.019,audio_features,spotify:track:7DhuDQVyfsRjl0czAsadlB,https://api.spotify.com/v1/tracks/7DhuDQVyfsRjl0czAsadlB,https://api.spotify.com/v1/audio-analysis/7DhuDQVyfsRjl0czAsadlB,5.978,4
+2AjzK5A4Cce7bB9pk2ivjz,Best Of,I Love My Man,Bent,False,29,0.607,0.672,6,-10.022,1,0.0283,0.000331,0.649,0.109,0.407,144.049,audio_features,spotify:track:2AjzK5A4Cce7bB9pk2ivjz,https://api.spotify.com/v1/tracks/2AjzK5A4Cce7bB9pk2ivjz,https://api.spotify.com/v1/audio-analysis/2AjzK5A4Cce7bB9pk2ivjz,5.825116666666666,4
+4m22yZEx9BhuQOfAzdOO0Y,Forever Breathes the Lonely Word: Remastered Edition,Down but Not yet Out - 2018 Remaster,Felt,False,0,0.299,0.839,0,-6.238,1,0.035,0.0471,0.00064,0.383,0.587,149.171,audio_features,spotify:track:4m22yZEx9BhuQOfAzdOO0Y,https://api.spotify.com/v1/tracks/4m22yZEx9BhuQOfAzdOO0Y,https://api.spotify.com/v1/audio-analysis/4m22yZEx9BhuQOfAzdOO0Y,3.6066666666666665,4
+4KhBvLbRr58rHPF24bdL9Q,Officer of Love,Officer of Love,Caamp,False,62,0.662,0.574,4,-8.696,1,0.0261,0.298,0.00902,0.115,0.948,109.085,audio_features,spotify:track:4KhBvLbRr58rHPF24bdL9Q,https://api.spotify.com/v1/tracks/4KhBvLbRr58rHPF24bdL9Q,https://api.spotify.com/v1/audio-analysis/4KhBvLbRr58rHPF24bdL9Q,3.99675,4
+76GlO5H5RT6g7y0gev86Nk,"Kiss Me, Kiss Me, Kiss Me",Just like Heaven,The Cure,False,66,0.43,0.971,9,-3.845,1,0.0524,0.0271,2.16e-05,0.185,0.764,151.219,audio_features,spotify:track:76GlO5H5RT6g7y0gev86Nk,https://api.spotify.com/v1/tracks/76GlO5H5RT6g7y0gev86Nk,https://api.spotify.com/v1/audio-analysis/76GlO5H5RT6g7y0gev86Nk,3.533333333333333,4
+3qBL3kCKXpuJ7hwzNdLM5Z,Anything Else,Anything Else,Himbrecht,False,10,0.706,0.531,2,-12.357,1,0.0463,0.0592,0.266,0.11,0.0787,118.981,audio_features,spotify:track:3qBL3kCKXpuJ7hwzNdLM5Z,https://api.spotify.com/v1/tracks/3qBL3kCKXpuJ7hwzNdLM5Z,https://api.spotify.com/v1/audio-analysis/3qBL3kCKXpuJ7hwzNdLM5Z,8.63865,4
+3dwrdMzRoFTRYj44n2WwN8,We Are Together,We Are Together - Original Mix,Planet Of Sound,False,31,0.542,0.795,8,-6.818,1,0.032,0.0119,0.608,0.237,0.34,116.991,audio_features,spotify:track:3dwrdMzRoFTRYj44n2WwN8,https://api.spotify.com/v1/tracks/3dwrdMzRoFTRYj44n2WwN8,https://api.spotify.com/v1/audio-analysis/3dwrdMzRoFTRYj44n2WwN8,6.439683333333333,4
+0FSOenCj42lbikl1vd5ah9,Cool Girl,Cool Girl,dodie,False,56,0.73,0.205,2,-15.489,1,0.0957,0.872,0.0593,0.095,0.206,124.989,audio_features,spotify:track:0FSOenCj42lbikl1vd5ah9,https://api.spotify.com/v1/tracks/0FSOenCj42lbikl1vd5ah9,https://api.spotify.com/v1/audio-analysis/0FSOenCj42lbikl1vd5ah9,3.3230833333333334,4
+1ZBJc7LVVfnf6phmhiBejS,Hard Nose the Highway,Snow In San Anselmo,Van Morrison,False,35,0.497,0.388,9,-10.696,0,0.0364,0.469,0.0809,0.121,0.529,125.127,audio_features,spotify:track:1ZBJc7LVVfnf6phmhiBejS,https://api.spotify.com/v1/tracks/1ZBJc7LVVfnf6phmhiBejS,https://api.spotify.com/v1/audio-analysis/1ZBJc7LVVfnf6phmhiBejS,4.614883333333333,4
+2SU21YLdwyTnqJpS7Jc3lD,Native Dancer,Ponta de Areia,Wayne Shorter,False,44,0.297,0.365,5,-8.348,1,0.0325,0.933,0.0274,0.0769,0.261,176.672,audio_features,spotify:track:2SU21YLdwyTnqJpS7Jc3lD,https://api.spotify.com/v1/tracks/2SU21YLdwyTnqJpS7Jc3lD,https://api.spotify.com/v1/audio-analysis/2SU21YLdwyTnqJpS7Jc3lD,5.261783333333334,4
+3TVW2JepPAdMWNUQod7pvT,Miracle of Life,Miracle of Life,Bright Eyes,False,26,0.529,0.581,8,-9.311,1,0.0287,0.259,0.122,0.106,0.583,93.259,audio_features,spotify:track:3TVW2JepPAdMWNUQod7pvT,https://api.spotify.com/v1/tracks/3TVW2JepPAdMWNUQod7pvT,https://api.spotify.com/v1/audio-analysis/3TVW2JepPAdMWNUQod7pvT,3.6097333333333332,4
+3JNqdKkwDVXOwrnd4NZNMa,The Hearse,Das Modell - Kraftwerk Cover,Wampire,False,13,0.53,0.822,4,-6.789,0,0.17,0.00071,0.686,0.0705,0.814,124.051,audio_features,spotify:track:3JNqdKkwDVXOwrnd4NZNMa,https://api.spotify.com/v1/tracks/3JNqdKkwDVXOwrnd4NZNMa,https://api.spotify.com/v1/audio-analysis/3JNqdKkwDVXOwrnd4NZNMa,3.67725,4
+6pE2pIbpq1FHxvCwIOmqkS,Curiosity,Orchards,Wampire,False,15,0.531,0.594,1,-7.656,1,0.032,0.0042,0.386,0.199,0.75,104.677,audio_features,spotify:track:6pE2pIbpq1FHxvCwIOmqkS,https://api.spotify.com/v1/tracks/6pE2pIbpq1FHxvCwIOmqkS,https://api.spotify.com/v1/audio-analysis/6pE2pIbpq1FHxvCwIOmqkS,3.0166666666666666,4
+0fDFzVTG8c2fW9EM5f1RHM,Quantum Leap,Indian Food,Dumbo Gets Mad,False,51,0.561,0.896,2,-4.903,1,0.0528,0.765,0.685,0.124,0.629,86.808,audio_features,spotify:track:0fDFzVTG8c2fW9EM5f1RHM,https://api.spotify.com/v1/tracks/0fDFzVTG8c2fW9EM5f1RHM,https://api.spotify.com/v1/audio-analysis/0fDFzVTG8c2fW9EM5f1RHM,3.5631,4
+58uDCyprC3aa3x70fUv8dk,Monotonia,Monotonia,The Growlers,False,53,0.61,0.802,2,-4.582,0,0.0281,0.509,0.0149,0.104,0.756,122.071,audio_features,spotify:track:58uDCyprC3aa3x70fUv8dk,https://api.spotify.com/v1/tracks/58uDCyprC3aa3x70fUv8dk,https://api.spotify.com/v1/audio-analysis/58uDCyprC3aa3x70fUv8dk,4.0696666666666665,4
+5OWUKkLu9nesbbD0bLwcRL,Hard Candy,Miles Away,Madonna,False,47,0.782,0.71,0,-4.394,1,0.0382,0.0447,0.0,0.095,0.762,115.995,audio_features,spotify:track:5OWUKkLu9nesbbD0bLwcRL,https://api.spotify.com/v1/tracks/5OWUKkLu9nesbbD0bLwcRL,https://api.spotify.com/v1/audio-analysis/5OWUKkLu9nesbbD0bLwcRL,4.815333333333333,4
+2iG6tIT3Q7VuZJKnzAeLab,Highway Dancer,Wildflower,Calvin Love,False,0,0.583,0.241,9,-19.484,1,0.0361,0.766,0.381,0.0959,0.4,174.075,audio_features,spotify:track:2iG6tIT3Q7VuZJKnzAeLab,https://api.spotify.com/v1/tracks/2iG6tIT3Q7VuZJKnzAeLab,https://api.spotify.com/v1/audio-analysis/2iG6tIT3Q7VuZJKnzAeLab,4.5366,4
+1UKobFsdqNXQb8OthimCKe,"Crosby, Stills & Nash",Helplessly Hoping - 2005 Remaster,"Crosby, Stills & Nash",False,66,0.567,0.159,7,-13.648,1,0.0331,0.914,0.0,0.111,0.436,146.913,audio_features,spotify:track:1UKobFsdqNXQb8OthimCKe,https://api.spotify.com/v1/tracks/1UKobFsdqNXQb8OthimCKe,https://api.spotify.com/v1/audio-analysis/1UKobFsdqNXQb8OthimCKe,2.63155,4
+4VnrZj5hxHkKvY60VbpDLS,Where is the Heart of My Country,Where is the Heart of My Country,Caitlin Canty,False,36,0.457,0.129,3,-11.435,1,0.0324,0.715,2.25e-05,0.159,0.234,111.031,audio_features,spotify:track:4VnrZj5hxHkKvY60VbpDLS,https://api.spotify.com/v1/tracks/4VnrZj5hxHkKvY60VbpDLS,https://api.spotify.com/v1/audio-analysis/4VnrZj5hxHkKvY60VbpDLS,5.226933333333333,4
+62x3LXgPj4ZmxKH4qHiUFF,Heterogaster,Easy,Mesadorm,False,28,0.493,0.211,11,-12.622,1,0.0655,0.754,1.09e-05,0.116,0.236,58.574,audio_features,spotify:track:62x3LXgPj4ZmxKH4qHiUFF,https://api.spotify.com/v1/tracks/62x3LXgPj4ZmxKH4qHiUFF,https://api.spotify.com/v1/audio-analysis/62x3LXgPj4ZmxKH4qHiUFF,3.9635666666666665,4
+570uIR76noCLdDRXB0J5KK,Oh No! Oh My!,Walk In The Park,OH NO OH MY,False,26,0.647,0.335,3,-10.251,1,0.033,0.29,0.000109,0.0967,0.746,138.062,audio_features,spotify:track:570uIR76noCLdDRXB0J5KK,https://api.spotify.com/v1/tracks/570uIR76noCLdDRXB0J5KK,https://api.spotify.com/v1/audio-analysis/570uIR76noCLdDRXB0J5KK,2.37445,4
+5qjhTlvBhulflfQD18xBIr,Night Falls Over Kortedala,Your Arms Around Me,Jens Lekman,False,32,0.412,0.599,9,-7.083,1,0.0377,0.0356,0.00012,0.336,0.268,105.693,audio_features,spotify:track:5qjhTlvBhulflfQD18xBIr,https://api.spotify.com/v1/tracks/5qjhTlvBhulflfQD18xBIr,https://api.spotify.com/v1/audio-analysis/5qjhTlvBhulflfQD18xBIr,5.042883333333333,4
+2mNQhoBHL4NdcPyC0AuVXn,Oh No! Oh My!,I Have No Sister,OH NO OH MY,False,14,0.483,0.687,2,-9.066,1,0.0306,0.0731,0.000275,0.373,0.698,129.991,audio_features,spotify:track:2mNQhoBHL4NdcPyC0AuVXn,https://api.spotify.com/v1/tracks/2mNQhoBHL4NdcPyC0AuVXn,https://api.spotify.com/v1/audio-analysis/2mNQhoBHL4NdcPyC0AuVXn,3.05555,4
+3UOrKWXdwUVtDglahh3OQj,The Best of Dire Straits & Mark Knopfler - Private Investigations (Limited Edition),Brothers In Arms,Dire Straits,False,0,0.414,0.429,8,-9.469,0,0.028,0.525,0.81,0.111,0.135,79.227,audio_features,spotify:track:3UOrKWXdwUVtDglahh3OQj,https://api.spotify.com/v1/tracks/3UOrKWXdwUVtDglahh3OQj,https://api.spotify.com/v1/audio-analysis/3UOrKWXdwUVtDglahh3OQj,6.96155,4
+33PYfsUghmJi6rcKCfJ7my,The Essential Bruce Springsteen,Streets of Philadelphia,Bruce Springsteen,False,0,0.728,0.249,5,-15.429,1,0.0328,0.327,0.216,0.0875,0.452,93.683,audio_features,spotify:track:33PYfsUghmJi6rcKCfJ7my,https://api.spotify.com/v1/tracks/33PYfsUghmJi6rcKCfJ7my,https://api.spotify.com/v1/audio-analysis/33PYfsUghmJi6rcKCfJ7my,3.263333333333333,4
+0aDU64XfEFCGSb96TVciFt,33 ans,25 ans,Ben Mazué,False,51,0.742,0.603,7,-8.571,1,0.0805,0.0622,0.0,0.101,0.625,92.03,audio_features,spotify:track:0aDU64XfEFCGSb96TVciFt,https://api.spotify.com/v1/tracks/0aDU64XfEFCGSb96TVciFt,https://api.spotify.com/v1/audio-analysis/0aDU64XfEFCGSb96TVciFt,3.691116666666667,4
+6QgOkkoIDcycUFmfUXaFil,Wriggle Out the Restless,Earthquake,This Is The Kit,False,43,0.706,0.315,7,-11.846,1,0.0339,0.364,0.821,0.11,0.647,76.908,audio_features,spotify:track:6QgOkkoIDcycUFmfUXaFil,https://api.spotify.com/v1/tracks/6QgOkkoIDcycUFmfUXaFil,https://api.spotify.com/v1/audio-analysis/6QgOkkoIDcycUFmfUXaFil,4.15165,4
+4aHc7hnqkSzc1KLU9LnL26,Off Off On,Keep Going,This Is The Kit,False,0,0.462,0.443,4,-14.335,1,0.045,0.853,0.491,0.11,0.567,119.756,audio_features,spotify:track:4aHc7hnqkSzc1KLU9LnL26,https://api.spotify.com/v1/tracks/4aHc7hnqkSzc1KLU9LnL26,https://api.spotify.com/v1/audio-analysis/4aHc7hnqkSzc1KLU9LnL26,6.651383333333333,4
+0sX4OzAtIubFc4s9y5KrB7,All Things Must Pass (Remastered 2014),Ballad Of Sir Frankie Crisp (Let It Roll) - Remastered 2014,George Harrison,False,48,0.442,0.591,11,-9.595,0,0.0279,0.0707,0.391,0.133,0.419,89.607,audio_features,spotify:track:0sX4OzAtIubFc4s9y5KrB7,https://api.spotify.com/v1/tracks/0sX4OzAtIubFc4s9y5KrB7,https://api.spotify.com/v1/audio-analysis/0sX4OzAtIubFc4s9y5KrB7,3.806216666666667,4
+2laOtOChpl0XEsLJXwiSQT,Colors,Colors,From Kid,False,19,0.847,0.6,7,-9.092,1,0.0351,0.825,0.00231,0.0922,0.212,121.999,audio_features,spotify:track:2laOtOChpl0XEsLJXwiSQT,https://api.spotify.com/v1/tracks/2laOtOChpl0XEsLJXwiSQT,https://api.spotify.com/v1/audio-analysis/2laOtOChpl0XEsLJXwiSQT,3.3937166666666667,4
+4vFVZyn6RdvrXpeEqsTas6,In Dream (Deluxe Version),Ocean of Night,Editors,False,53,0.567,0.666,0,-9.647,1,0.0298,0.0244,0.251,0.107,0.251,106.001,audio_features,spotify:track:4vFVZyn6RdvrXpeEqsTas6,https://api.spotify.com/v1/tracks/4vFVZyn6RdvrXpeEqsTas6,https://api.spotify.com/v1/audio-analysis/4vFVZyn6RdvrXpeEqsTas6,5.091483333333334,4
+0fNOmlu1YroQQYrBVtLDpb,Brighter Days,Brighter Days,Collie Buddz,False,46,0.691,0.754,0,-6.185,0,0.191,0.0396,0.0,0.326,0.723,90.842,audio_features,spotify:track:0fNOmlu1YroQQYrBVtLDpb,https://api.spotify.com/v1/tracks/0fNOmlu1YroQQYrBVtLDpb,https://api.spotify.com/v1/audio-analysis/0fNOmlu1YroQQYrBVtLDpb,3.60475,4
+2foHseBT7vyTHqM7N8fBJe,Greater Than Great,My Sound,Skarra Mucci,False,49,0.693,0.839,11,-3.325,1,0.172,0.0653,0.0,0.776,0.773,93.049,audio_features,spotify:track:2foHseBT7vyTHqM7N8fBJe,https://api.spotify.com/v1/tracks/2foHseBT7vyTHqM7N8fBJe,https://api.spotify.com/v1/audio-analysis/2foHseBT7vyTHqM7N8fBJe,4.267333333333333,4
+7fXqIUhVMoJ9Q5LMZR4DsB,Don't Die Curious,Don't Die Curious,Tom Rosenthal,False,27,0.497,0.561,8,-10.938,1,0.0607,0.393,0.00279,0.137,0.566,163.981,audio_features,spotify:track:7fXqIUhVMoJ9Q5LMZR4DsB,https://api.spotify.com/v1/tracks/7fXqIUhVMoJ9Q5LMZR4DsB,https://api.spotify.com/v1/audio-analysis/7fXqIUhVMoJ9Q5LMZR4DsB,2.56645,4
+4ngMatPdF3yQ51G4UKwx9M,Albert Camus,Albert Camus,Tom Rosenthal,False,50,0.648,0.556,9,-6.492,1,0.0335,0.226,0.0,0.176,0.592,80.225,audio_features,spotify:track:4ngMatPdF3yQ51G4UKwx9M,https://api.spotify.com/v1/tracks/4ngMatPdF3yQ51G4UKwx9M,https://api.spotify.com/v1/audio-analysis/4ngMatPdF3yQ51G4UKwx9M,3.342633333333333,4
+2IFFKj9orAsQOOS0JRhHAW,JEWELZ,JEWELZ,Anderson .Paak,True,66,0.884,0.653,11,-7.653,0,0.0586,0.371,0.00135,0.812,0.766,108.548,audio_features,spotify:track:2IFFKj9orAsQOOS0JRhHAW,https://api.spotify.com/v1/tracks/2IFFKj9orAsQOOS0JRhHAW,https://api.spotify.com/v1/audio-analysis/2IFFKj9orAsQOOS0JRhHAW,2.90355,4
+76ta9aJq4kwhngTjpdsaU2,Kinda Kinks,I Go to Sleep - Demo Version,The Kinks,False,41,0.658,0.0742,4,-17.711,0,0.0961,0.979,0.000736,0.13,0.362,161.312,audio_features,spotify:track:76ta9aJq4kwhngTjpdsaU2,https://api.spotify.com/v1/tracks/76ta9aJq4kwhngTjpdsaU2,https://api.spotify.com/v1/audio-analysis/76ta9aJq4kwhngTjpdsaU2,2.711116666666667,3
+1bkmxox97PzwqGCEaFuFLD,Wave,Here Comes The River,Patrick Watson,False,44,0.277,0.162,9,-13.733,1,0.0376,0.983,0.117,0.112,0.257,173.284,audio_features,spotify:track:1bkmxox97PzwqGCEaFuFLD,https://api.spotify.com/v1/tracks/1bkmxox97PzwqGCEaFuFLD,https://api.spotify.com/v1/audio-analysis/1bkmxox97PzwqGCEaFuFLD,4.226666666666667,3
+6su0nbgReI6lhNT0wZLk78,Woozy With Cider,Woozy With Cider - Jon Hopkins remix,"James Yorkston, Jon Hopkins",False,34,0.591,0.371,1,-18.5,0,0.12,0.874,0.17,0.0905,0.158,119.869,audio_features,spotify:track:6su0nbgReI6lhNT0wZLk78,https://api.spotify.com/v1/tracks/6su0nbgReI6lhNT0wZLk78,https://api.spotify.com/v1/audio-analysis/6su0nbgReI6lhNT0wZLk78,4.637783333333333,4
+5N0hrACgK70wIy6SB4pgMH,The Things We Do,It's Been Done,Angela McCluskey,False,43,0.63,0.569,2,-7.495,1,0.031,0.0726,0.000136,0.272,0.523,84.982,audio_features,spotify:track:5N0hrACgK70wIy6SB4pgMH,https://api.spotify.com/v1/tracks/5N0hrACgK70wIy6SB4pgMH,https://api.spotify.com/v1/audio-analysis/5N0hrACgK70wIy6SB4pgMH,3.9473333333333334,4
+1PpzobfPFNCiySKDHQSM8h,Orange Nights,Elevator,Platon Karataev,False,33,0.549,0.524,8,-9.319,0,0.0522,0.597,0.0154,0.0996,0.329,129.773,audio_features,spotify:track:1PpzobfPFNCiySKDHQSM8h,https://api.spotify.com/v1/tracks/1PpzobfPFNCiySKDHQSM8h,https://api.spotify.com/v1/audio-analysis/1PpzobfPFNCiySKDHQSM8h,3.7241833333333334,4
+6HXavJEHsyKz55NnntgF16,Chaos Theories,Well Runs Dry,The Souljazz Orchestra,False,1,0.324,0.588,0,-8.32,1,0.0328,0.433,0.0492,0.184,0.316,92.016,audio_features,spotify:track:6HXavJEHsyKz55NnntgF16,https://api.spotify.com/v1/tracks/6HXavJEHsyKz55NnntgF16,https://api.spotify.com/v1/audio-analysis/6HXavJEHsyKz55NnntgF16,8.609116666666667,4
+6ZfPfKByjheaAohji2LfaS,A Very Merry Christmas with Ivan & Alyosha,Being Home for Christmas,Ivan & Alyosha,False,7,0.564,0.76,8,-7.243,1,0.0451,0.273,0.0,0.124,0.6,117.932,audio_features,spotify:track:6ZfPfKByjheaAohji2LfaS,https://api.spotify.com/v1/tracks/6ZfPfKByjheaAohji2LfaS,https://api.spotify.com/v1/audio-analysis/6ZfPfKByjheaAohji2LfaS,3.4962833333333334,4
+06mESgotL8dujZGuOxtjFl,Ma Ya,Wassiye,"Habib Koité, Kélétigui Diabaté",False,33,0.73,0.669,2,-7.934,0,0.0565,0.58,0.0036,0.103,0.848,118.209,audio_features,spotify:track:06mESgotL8dujZGuOxtjFl,https://api.spotify.com/v1/tracks/06mESgotL8dujZGuOxtjFl,https://api.spotify.com/v1/audio-analysis/06mESgotL8dujZGuOxtjFl,4.778883333333333,4
+1Ptl8RBClJP2cj4QLfv09J,Cold Mine,Cold Mine,FIL BO RIVA,False,50,0.454,0.691,9,-6.173,0,0.0344,0.193,1.33e-06,0.105,0.405,78.539,audio_features,spotify:track:1Ptl8RBClJP2cj4QLfv09J,https://api.spotify.com/v1/tracks/1Ptl8RBClJP2cj4QLfv09J,https://api.spotify.com/v1/audio-analysis/1Ptl8RBClJP2cj4QLfv09J,3.16025,4
+4bWM3dt5UIBNeFj71zYF8O,Alles leuchtet ein,Alles leuchtet ein,Betterov,False,26,0.362,0.872,7,-2.769,1,0.0502,0.0588,8.64e-06,0.123,0.617,164.865,audio_features,spotify:track:4bWM3dt5UIBNeFj71zYF8O,https://api.spotify.com/v1/tracks/4bWM3dt5UIBNeFj71zYF8O,https://api.spotify.com/v1/audio-analysis/4bWM3dt5UIBNeFj71zYF8O,3.61215,4
+03pd9j9czxa7ydTLcnteP7,Summer Breeze,Sleep by the Waves,Leavv,False,45,0.631,0.0341,9,-11.791,1,0.0514,0.93,0.926,0.101,0.291,78.997,audio_features,spotify:track:03pd9j9czxa7ydTLcnteP7,https://api.spotify.com/v1/tracks/03pd9j9czxa7ydTLcnteP7,https://api.spotify.com/v1/audio-analysis/03pd9j9czxa7ydTLcnteP7,2.142516666666667,3
+72nqbbrKjhXmDdRXQGq115,Fabulous Fifties Nostalgia Vol 5,All I Have to Do Is Dream,The Everly Brothers,False,0,0.542,0.347,4,-14.011,1,0.0268,0.783,0.0,0.144,0.596,103.709,audio_features,spotify:track:72nqbbrKjhXmDdRXQGq115,https://api.spotify.com/v1/tracks/72nqbbrKjhXmDdRXQGq115,https://api.spotify.com/v1/audio-analysis/72nqbbrKjhXmDdRXQGq115,2.354,4
+2I4AhSWdVku2SQsJXiIci6,Origami,Hanoï café,Bleu Toucan,False,59,0.565,0.755,2,-7.402,0,0.0406,0.258,0.00976,0.219,0.499,172.01,audio_features,spotify:track:2I4AhSWdVku2SQsJXiIci6,https://api.spotify.com/v1/tracks/2I4AhSWdVku2SQsJXiIci6,https://api.spotify.com/v1/audio-analysis/2I4AhSWdVku2SQsJXiIci6,3.2347166666666665,4
+7E7D6Db8wfIEeNryNiDXtr,Somethinggreater,Somethinggreater - Single Version,Parcels,False,61,0.693,0.572,1,-10.491,0,0.041,0.308,0.000405,0.0736,0.867,109.816,audio_features,spotify:track:7E7D6Db8wfIEeNryNiDXtr,https://api.spotify.com/v1/tracks/7E7D6Db8wfIEeNryNiDXtr,https://api.spotify.com/v1/audio-analysis/7E7D6Db8wfIEeNryNiDXtr,3.4849833333333335,4
+3u7bbColqgRndsd6RTeIim,Conchiglie,Conchiglie,Andrea Laszlo De Simone,False,44,0.459,0.5,3,-11.337,1,0.0367,0.827,0.908,0.356,0.276,149.861,audio_features,spotify:track:3u7bbColqgRndsd6RTeIim,https://api.spotify.com/v1/tracks/3u7bbColqgRndsd6RTeIim,https://api.spotify.com/v1/audio-analysis/3u7bbColqgRndsd6RTeIim,7.2307,4
+08edmNLQhAqaKkNeiRgBQM,Other Here Comes The Cowboy Demos,Out Of My Head,Mac DeMarco,False,47,0.811,0.553,3,-9.257,0,0.0447,0.625,0.159,0.202,0.765,100.547,audio_features,spotify:track:08edmNLQhAqaKkNeiRgBQM,https://api.spotify.com/v1/tracks/08edmNLQhAqaKkNeiRgBQM,https://api.spotify.com/v1/audio-analysis/08edmNLQhAqaKkNeiRgBQM,4.366933333333333,4
+50wiHcvfcpQSo5P5rbyozc,In Mind,Saturday,Real Estate,False,46,0.525,0.717,0,-6.06,1,0.0339,0.0716,0.575,0.121,0.211,130.898,audio_features,spotify:track:50wiHcvfcpQSo5P5rbyozc,https://api.spotify.com/v1/tracks/50wiHcvfcpQSo5P5rbyozc,https://api.spotify.com/v1/audio-analysis/50wiHcvfcpQSo5P5rbyozc,4.717116666666667,4
+5l1AMUJEA43GYqxpfTyhoT,Winter Wheat,Postdoc Blues,John K. Samson,False,32,0.665,0.797,10,-9.172,1,0.0419,0.124,0.0173,0.0958,0.717,143.176,audio_features,spotify:track:5l1AMUJEA43GYqxpfTyhoT,https://api.spotify.com/v1/tracks/5l1AMUJEA43GYqxpfTyhoT,https://api.spotify.com/v1/audio-analysis/5l1AMUJEA43GYqxpfTyhoT,3.38485,4
+2Jp04uMkpnoik9GYfJboa5,Ottakring,Eh ok,Granada,False,45,0.7,0.515,2,-5.546,1,0.0299,0.44,0.0,0.126,0.771,92.524,audio_features,spotify:track:2Jp04uMkpnoik9GYfJboa5,https://api.spotify.com/v1/tracks/2Jp04uMkpnoik9GYfJboa5,https://api.spotify.com/v1/audio-analysis/2Jp04uMkpnoik9GYfJboa5,2.6238333333333332,4
+6dw8ETrtlFSrkzw6W8cWxN,Mordechai,So We Won't Forget,Khruangbin,False,46,0.647,0.414,2,-13.219,1,0.0985,0.0309,0.85,0.183,0.967,101.301,audio_features,spotify:track:6dw8ETrtlFSrkzw6W8cWxN,https://api.spotify.com/v1/tracks/6dw8ETrtlFSrkzw6W8cWxN,https://api.spotify.com/v1/audio-analysis/6dw8ETrtlFSrkzw6W8cWxN,4.972216666666666,4
+2ksgMG1hHFHV979phZ2lkd,Begin Again - EP,Begin Again,Nick Mulvey,False,60,0.675,0.57,7,-9.402,1,0.0348,0.811,9.31e-05,0.0788,0.575,101.981,audio_features,spotify:track:2ksgMG1hHFHV979phZ2lkd,https://api.spotify.com/v1/tracks/2ksgMG1hHFHV979phZ2lkd,https://api.spotify.com/v1/audio-analysis/2ksgMG1hHFHV979phZ2lkd,4.588,4
+540Fod5DwxX7JvGN04yRp7,Greatest Hits Collection,Ice Cream,Chris Barber,False,12,0.757,0.588,7,-8.083,1,0.0322,0.693,0.777,0.471,0.96,112.567,audio_features,spotify:track:540Fod5DwxX7JvGN04yRp7,https://api.spotify.com/v1/tracks/540Fod5DwxX7JvGN04yRp7,https://api.spotify.com/v1/audio-analysis/540Fod5DwxX7JvGN04yRp7,3.472,4
+0oYUVzPVS2M6olUBytFIMv,Over Here,Over Here,Mostly Sonny,False,33,0.638,0.473,7,-13.058,1,0.0382,0.19,0.423,0.374,0.454,129.954,audio_features,spotify:track:0oYUVzPVS2M6olUBytFIMv,https://api.spotify.com/v1/tracks/0oYUVzPVS2M6olUBytFIMv,https://api.spotify.com/v1/audio-analysis/0oYUVzPVS2M6olUBytFIMv,4.75,4
+4p4kNjeFfBZ7OExxY7SX1V,MADLO: Influences,Running Up That Hill,Car Seat Headrest,False,44,0.704,0.603,9,-10.501,0,0.0334,0.00256,0.196,0.0656,0.668,111.98,audio_features,spotify:track:4p4kNjeFfBZ7OExxY7SX1V,https://api.spotify.com/v1/tracks/4p4kNjeFfBZ7OExxY7SX1V,https://api.spotify.com/v1/audio-analysis/4p4kNjeFfBZ7OExxY7SX1V,6.5,4
+4fF2nOsPektn8js9fG5Cdr,Breeze,Breeze,Jermango Dreaming,False,49,0.708,0.802,9,-4.49,0,0.03,0.00376,0.219,0.11,0.741,117.021,audio_features,spotify:track:4fF2nOsPektn8js9fG5Cdr,https://api.spotify.com/v1/tracks/4fF2nOsPektn8js9fG5Cdr,https://api.spotify.com/v1/audio-analysis/4fF2nOsPektn8js9fG5Cdr,3.8984666666666667,4
+77iRifbhkJGvGBBRNykUwN,The End Of Comedy,Suddenly,"Drugdealer, Weyes Blood",False,57,0.651,0.465,4,-7.538,1,0.0328,0.503,0.0455,0.495,0.585,107.75,audio_features,spotify:track:77iRifbhkJGvGBBRNykUwN,https://api.spotify.com/v1/tracks/77iRifbhkJGvGBBRNykUwN,https://api.spotify.com/v1/audio-analysis/77iRifbhkJGvGBBRNykUwN,3.284,4
+7JSvpJTo8hal8fXXhP5L3R,Lavender,Heart of Mine,Calvin Love,False,33,0.562,0.212,5,-16.682,1,0.0363,0.645,0.722,0.152,0.31,115.926,audio_features,spotify:track:7JSvpJTo8hal8fXXhP5L3R,https://api.spotify.com/v1/tracks/7JSvpJTo8hal8fXXhP5L3R,https://api.spotify.com/v1/audio-analysis/7JSvpJTo8hal8fXXhP5L3R,3.5903833333333335,4
+6jwh6mczhdbnmATZ2bH2QK,Basic Instinct,Blue Orange Green,"Jimmy Whoo, Chilly Gonzales",False,40,0.63,0.377,0,-13.728,1,0.0307,0.709,0.0821,0.0994,0.216,93.978,audio_features,spotify:track:6jwh6mczhdbnmATZ2bH2QK,https://api.spotify.com/v1/tracks/6jwh6mczhdbnmATZ2bH2QK,https://api.spotify.com/v1/audio-analysis/6jwh6mczhdbnmATZ2bH2QK,3.3162166666666666,4
+5xxHfQuaXGEBHtsGbSXwI7,White Roses,White Roses,"Flyte, The Staves",False,51,0.53,0.633,10,-7.078,1,0.0283,0.391,0.0152,0.142,0.605,140.186,audio_features,spotify:track:5xxHfQuaXGEBHtsGbSXwI7,https://api.spotify.com/v1/tracks/5xxHfQuaXGEBHtsGbSXwI7,https://api.spotify.com/v1/audio-analysis/5xxHfQuaXGEBHtsGbSXwI7,3.4407666666666668,4
+75hwtYcghca6YKW4i6C6fP,Teens Of Denial,Drunk Drivers/Killer Whales,Car Seat Headrest,True,61,0.537,0.414,2,-7.952,1,0.0404,0.218,2.1e-06,0.103,0.459,117.101,audio_features,spotify:track:75hwtYcghca6YKW4i6C6fP,https://api.spotify.com/v1/tracks/75hwtYcghca6YKW4i6C6fP,https://api.spotify.com/v1/audio-analysis/75hwtYcghca6YKW4i6C6fP,6.2442166666666665,4
+0wij9AygVTMxnBSrjH6ID1,"Clarinet & Piano: Selected Works, Vol. 1",A Little Lost,Group Listening,False,31,0.641,0.269,0,-15.927,1,0.0392,0.986,0.96,0.141,0.578,129.766,audio_features,spotify:track:0wij9AygVTMxnBSrjH6ID1,https://api.spotify.com/v1/tracks/0wij9AygVTMxnBSrjH6ID1,https://api.spotify.com/v1/audio-analysis/0wij9AygVTMxnBSrjH6ID1,3.7708833333333334,4
+03gKdAQAswBo7v4p8F1An4,You Forgot It In People,Pacific Theme,Broken Social Scene,False,51,0.723,0.703,0,-9.495,1,0.0318,0.0272,0.313,0.0979,0.767,129.725,audio_features,spotify:track:03gKdAQAswBo7v4p8F1An4,https://api.spotify.com/v1/tracks/03gKdAQAswBo7v4p8F1An4,https://api.spotify.com/v1/audio-analysis/03gKdAQAswBo7v4p8F1An4,5.153116666666667,4
+3YnfOmxe8JaWmowxmgTzms,"Future Perfect, Present Tense",Isn't Ever A Day,Ten Fé,False,48,0.665,0.758,6,-6.354,0,0.028,0.00451,0.739,0.312,0.761,131.025,audio_features,spotify:track:3YnfOmxe8JaWmowxmgTzms,https://api.spotify.com/v1/tracks/3YnfOmxe8JaWmowxmgTzms,https://api.spotify.com/v1/audio-analysis/3YnfOmxe8JaWmowxmgTzms,4.7442166666666665,4
+6otUjBoNrp27EubqsoYGQx,Sand,Losers,Balthazar,False,59,0.864,0.385,5,-11.553,0,0.0454,0.102,0.0539,0.143,0.665,113.014,audio_features,spotify:track:6otUjBoNrp27EubqsoYGQx,https://api.spotify.com/v1/tracks/6otUjBoNrp27EubqsoYGQx,https://api.spotify.com/v1/audio-analysis/6otUjBoNrp27EubqsoYGQx,3.428,4
+2eVofaQRJvddSUBfcub7Gz,Oceans,Oceans,"RY X, Ólafur Arnalds",False,61,0.659,0.387,6,-13.172,0,0.0335,0.467,0.692,0.0839,0.0779,114.989,audio_features,spotify:track:2eVofaQRJvddSUBfcub7Gz,https://api.spotify.com/v1/tracks/2eVofaQRJvddSUBfcub7Gz,https://api.spotify.com/v1/audio-analysis/2eVofaQRJvddSUBfcub7Gz,4.65955,4
+3PURbsY67tLMyausOABtit,Kingdoms In Colour,Feel Good (feat. Khruangbin),"Maribou State, Khruangbin",False,58,0.566,0.757,4,-8.37,0,0.0355,0.328,0.84,0.396,0.403,102.016,audio_features,spotify:track:3PURbsY67tLMyausOABtit,https://api.spotify.com/v1/tracks/3PURbsY67tLMyausOABtit,https://api.spotify.com/v1/audio-analysis/3PURbsY67tLMyausOABtit,4.45335,4
+0lK64KWzyyvplNW5dQkmXY,Värmdö,Värmdö,LEOI,False,8,0.663,0.502,4,-11.988,0,0.0399,0.246,0.772,0.0711,0.118,100.008,audio_features,spotify:track:0lK64KWzyyvplNW5dQkmXY,https://api.spotify.com/v1/tracks/0lK64KWzyyvplNW5dQkmXY,https://api.spotify.com/v1/audio-analysis/0lK64KWzyyvplNW5dQkmXY,4.455066666666666,4
+6buFkhiPTQ03okWeIZvR6E,Strange to Explain,Weekend Wind,Woods,False,47,0.598,0.63,1,-10.492,0,0.025,0.566,0.338,0.179,0.697,108.947,audio_features,spotify:track:6buFkhiPTQ03okWeIZvR6E,https://api.spotify.com/v1/tracks/6buFkhiPTQ03okWeIZvR6E,https://api.spotify.com/v1/audio-analysis/6buFkhiPTQ03okWeIZvR6E,7.277566666666667,4