diff --git a/clustering.ipynb b/clustering.ipynb
index 18c49a3..c78dfc2 100644
--- a/clustering.ipynb
+++ b/clustering.ipynb
@@ -14,7 +14,7 @@
},
"orig_nbformat": 2,
"kernelspec": {
- "name": "python_defaultSpec_1597369656347",
+ "name": "python_defaultSpec_1597905222045",
"display_name": "Python 3.7.7 64-bit ('base': conda)"
}
},
@@ -23,7 +23,7 @@
"cells": [
{
"cell_type": "code",
- "execution_count": 116,
+ "execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
@@ -40,7 +40,7 @@
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
@@ -50,7 +50,7 @@
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 5,
"metadata": {},
"outputs": [
{
@@ -60,7 +60,7 @@
"text/html": "
\n\n
\n \n \n | \n Lyrical/Misc | \n Bragging/Combative | \n Money/Party | \n Romance/Sex | \n words_per_line | \n unique_words | \n unique_word_rate | \n syllables_per_line | \n syllables_per_word | \n
\n \n artist | \n | \n | \n | \n | \n | \n | \n | \n | \n | \n
\n \n \n \n 03 Greedo | \n 0.012388 | \n 0.040464 | \n 0.021360 | \n 0.011842 | \n 35.125816 | \n 185.375000 | \n 0.070810 | \n 9.211347 | \n 0.261876 | \n
\n \n 070 Shake | \n 0.015179 | \n 0.001804 | \n 0.021861 | \n 0.036665 | \n 30.507007 | \n 137.470588 | \n 0.071274 | \n 8.091570 | \n 0.264949 | \n
\n \n 2 Chainz | \n 0.018329 | \n 0.023071 | \n 0.021967 | \n 0.006407 | \n 32.916186 | \n 194.111111 | \n 0.090778 | \n 8.641371 | \n 0.262462 | \n
\n \n 2 Pistols | \n 0.013755 | \n 0.030431 | \n 0.018532 | \n 0.021855 | \n 28.376804 | \n 178.272727 | \n 0.085574 | \n 7.243027 | \n 0.255224 | \n
\n \n 21 Savage | \n 0.007464 | \n 0.046448 | \n 0.046098 | \n 0.008801 | \n 33.424155 | \n 189.095238 | \n 0.070440 | \n 8.484020 | \n 0.253769 | \n
\n \n ... | \n ... | \n ... | \n ... | \n ... | \n ... | \n ... | \n ... | \n ... | \n ... | \n
\n \n Zebra Katz | \n 0.025077 | \n 0.012421 | \n 0.018921 | \n 0.016527 | \n 25.122420 | \n 132.944444 | \n 0.087163 | \n 6.521429 | \n 0.259716 | \n
\n \n Zelooperz | \n 0.018682 | \n 0.037817 | \n 0.003213 | \n 0.006282 | \n 29.884914 | \n 151.060606 | \n 0.095839 | \n 7.746176 | \n 0.258715 | \n
\n \n Zion I | \n 0.031290 | \n 0.000425 | \n 0.003131 | \n 0.006091 | \n 34.300381 | \n 210.200000 | \n 0.104322 | \n 8.986945 | \n 0.262015 | \n
\n \n bbno$ | \n 0.009183 | \n 0.010923 | \n 0.004047 | \n 0.009563 | \n 31.152735 | \n 92.333333 | \n 0.055000 | \n 8.575163 | \n 0.275106 | \n
\n \n will.i.am | \n 0.004096 | \n 0.019755 | \n 0.047252 | \n 0.040928 | \n 33.323155 | \n 163.733333 | \n 0.067369 | \n 8.664136 | \n 0.259974 | \n
\n \n
\n
1260 rows × 9 columns
\n
"
},
"metadata": {},
- "execution_count": 3
+ "execution_count": 5
}
],
"source": [
@@ -71,7 +71,28 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 23,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "web_X = X.copy()\n",
+ "web_X['cluster'] = X_labeled['cluster']\n",
+ "web_X['cluster'] = web_X['cluster'].map({0:'Club/Trap', 1:'Lyrical: Dense', 2: 'Archetypal', 3: 'Lyrical: Diverse', 4:'R&B'})"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "with open('web_features.pkl', 'wb') as f:\n",
+ " pkl.dump(web_X, f)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
@@ -81,7 +102,7 @@
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": 17,
"metadata": {},
"outputs": [
{
@@ -91,7 +112,7 @@
"text/html": "\n\n
\n \n \n | \n Lyrical/Misc | \n Bragging/Combative | \n Money/Party | \n Romance/Sex | \n words_per_line | \n unique_words | \n unique_word_rate | \n syllables_per_line | \n syllables_per_word | \n
\n \n artist | \n | \n | \n | \n | \n | \n | \n | \n | \n | \n
\n \n \n \n 03 Greedo | \n -1.108094 | \n 1.115106 | \n 0.780540 | \n -0.227123 | \n 0.514503 | \n -0.344285 | \n -1.123740 | \n 0.482583 | \n -0.244783 | \n
\n \n 070 Shake | \n -0.834664 | \n -1.035582 | \n 0.819309 | \n 1.803736 | \n -0.442401 | \n -1.017869 | \n -1.090486 | \n -0.394098 | \n 0.285492 | \n
\n \n 2 Chainz | \n -0.526146 | \n 0.147511 | \n 0.827469 | \n -0.671790 | \n 0.056722 | \n -0.221446 | \n 0.307881 | \n 0.036345 | \n -0.143757 | \n
\n \n 2 Pistols | \n -0.974242 | \n 0.556940 | \n 0.561764 | \n 0.592036 | \n -0.883727 | \n -0.444150 | \n -0.065240 | \n -1.058428 | \n -1.392879 | \n
\n \n 21 Savage | \n -1.590426 | \n 1.447984 | \n 2.694137 | \n -0.475869 | \n 0.161960 | \n -0.291975 | \n -1.150268 | \n -0.086846 | \n -1.644092 | \n
\n \n ... | \n ... | \n ... | \n ... | \n ... | \n ... | \n ... | \n ... | \n ... | \n ... | \n
\n \n Zebra Katz | \n 0.134856 | \n -0.444954 | \n 0.591835 | \n 0.156195 | \n -1.557956 | \n -1.081511 | \n 0.048671 | \n -1.623372 | \n -0.617658 | \n
\n \n Zelooperz | \n -0.491603 | \n 0.967847 | \n -0.623256 | \n -0.681979 | \n -0.571284 | \n -0.826780 | \n 0.670745 | \n -0.664509 | \n -0.790359 | \n
\n \n Zion I | \n 0.743504 | \n -1.112303 | \n -0.629578 | \n -0.697615 | \n 0.343493 | \n 0.004780 | \n 1.278952 | \n 0.306897 | \n -0.220902 | \n
\n \n bbno$ | \n -1.422031 | \n -0.528276 | \n -0.558746 | \n -0.413536 | \n -0.308622 | \n -1.652544 | \n -2.257284 | \n -0.015490 | \n 2.038551 | \n
\n \n will.i.am | \n -1.920378 | \n -0.036947 | \n 2.783435 | \n 2.152477 | \n 0.141036 | \n -0.648589 | \n -1.370463 | \n 0.054167 | \n -0.573045 | \n
\n \n
\n
1260 rows × 9 columns
\n
"
},
"metadata": {},
- "execution_count": 10
+ "execution_count": 17
}
],
"source": [
@@ -100,7 +121,7 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 18,
"metadata": {},
"outputs": [
{
@@ -109,7 +130,7 @@
"text/plain": "KMeans(n_clusters=5, n_init=3, random_state=77)"
},
"metadata": {},
- "execution_count": 11
+ "execution_count": 18
}
],
"source": [
@@ -120,7 +141,7 @@
},
{
"cell_type": "code",
- "execution_count": 16,
+ "execution_count": 19,
"metadata": {},
"outputs": [
{
@@ -130,7 +151,7 @@
"text/html": "\n\n
\n \n \n | \n Lyrical/Misc | \n Bragging/Combative | \n Money/Party | \n Romance/Sex | \n words_per_line | \n unique_words | \n unique_word_rate | \n syllables_per_line | \n syllables_per_word | \n cluster | \n
\n \n artist | \n | \n | \n | \n | \n | \n | \n | \n | \n | \n | \n
\n \n \n \n 03 Greedo | \n 0.012388 | \n 0.040464 | \n 0.021360 | \n 0.011842 | \n 35.125816 | \n 185.375000 | \n 0.070810 | \n 9.211347 | \n 0.261876 | \n 2 | \n
\n \n 070 Shake | \n 0.015179 | \n 0.001804 | \n 0.021861 | \n 0.036665 | \n 30.507007 | \n 137.470588 | \n 0.071274 | \n 8.091570 | \n 0.264949 | \n 4 | \n
\n \n 2 Chainz | \n 0.018329 | \n 0.023071 | \n 0.021967 | \n 0.006407 | \n 32.916186 | \n 194.111111 | \n 0.090778 | \n 8.641371 | \n 0.262462 | \n 2 | \n
\n \n 2 Pistols | \n 0.013755 | \n 0.030431 | \n 0.018532 | \n 0.021855 | \n 28.376804 | \n 178.272727 | \n 0.085574 | \n 7.243027 | \n 0.255224 | \n 2 | \n
\n \n 21 Savage | \n 0.007464 | \n 0.046448 | \n 0.046098 | \n 0.008801 | \n 33.424155 | \n 189.095238 | \n 0.070440 | \n 8.484020 | \n 0.253769 | \n 0 | \n
\n \n ... | \n ... | \n ... | \n ... | \n ... | \n ... | \n ... | \n ... | \n ... | \n ... | \n ... | \n
\n \n Zebra Katz | \n 0.025077 | \n 0.012421 | \n 0.018921 | \n 0.016527 | \n 25.122420 | \n 132.944444 | \n 0.087163 | \n 6.521429 | \n 0.259716 | \n 4 | \n
\n \n Zelooperz | \n 0.018682 | \n 0.037817 | \n 0.003213 | \n 0.006282 | \n 29.884914 | \n 151.060606 | \n 0.095839 | \n 7.746176 | \n 0.258715 | \n 2 | \n
\n \n Zion I | \n 0.031290 | \n 0.000425 | \n 0.003131 | \n 0.006091 | \n 34.300381 | \n 210.200000 | \n 0.104322 | \n 8.986945 | \n 0.262015 | \n 3 | \n
\n \n bbno$ | \n 0.009183 | \n 0.010923 | \n 0.004047 | \n 0.009563 | \n 31.152735 | \n 92.333333 | \n 0.055000 | \n 8.575163 | \n 0.275106 | \n 4 | \n
\n \n will.i.am | \n 0.004096 | \n 0.019755 | \n 0.047252 | \n 0.040928 | \n 33.323155 | \n 163.733333 | \n 0.067369 | \n 8.664136 | \n 0.259974 | \n 0 | \n
\n \n
\n
1260 rows × 10 columns
\n
"
},
"metadata": {},
- "execution_count": 16
+ "execution_count": 19
}
],
"source": [
@@ -203,13 +224,20 @@
"* 0: Hard to interpret. Chiefly generic money/party semantic content, most simplistic word usage. Seems to house most of the trap/'vibe'/mumble rappers. Some artists don't seem very accurately placed (e.g. Cardi/Nicki/Megan). \n",
"* 1: Clearly home to most 'lyrical' rappers. Dominant cluster in terms of vocabulary and syllable density.\n",
"* 2: Very non-descript, middle of the pack by every metric. Seems to house a lot of older, 'standard' flow rappers.\n",
- "* 3: Seems to capture most 'musically' oriented rappers -- lyrical diversity but not massive density, widest variety of topics.\n",
- "* 4: Effectively captures most R&B artists. Romance/Sex oriented lyrics with minimal lyrical diversity."
+ "* 3: Seems to capture most 'melodically' oriented rappers -- lyrical diversity but not massive density, widest variety of topics.\n",
+ "* 4: Effectively captures most R&B artists. Romance/Sex oriented lyrics with minimal lyrical diversity.\n",
+ "\n",
+ "Names: \n",
+ "* 0: Club/Trap\n",
+ "* 1: Lyrical: Dense\n",
+ "* 2: Archetypal\n",
+ "* 3: Lyrical: Diverse\n",
+ "* 4: R&B"
]
},
{
"cell_type": "code",
- "execution_count": 112,
+ "execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
@@ -240,7 +268,7 @@
},
{
"cell_type": "code",
- "execution_count": 113,
+ "execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
@@ -249,7 +277,7 @@
},
{
"cell_type": "code",
- "execution_count": 114,
+ "execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
@@ -259,7 +287,7 @@
},
{
"cell_type": "code",
- "execution_count": 115,
+ "execution_count": 7,
"metadata": {},
"outputs": [
{
@@ -268,7 +296,7 @@
"text/plain": "cluster\n0 122\n1 217\n2 277\n3 401\n4 243\nName: Lyrical/Misc, dtype: int64"
},
"metadata": {},
- "execution_count": 115
+ "execution_count": 7
}
],
"source": [
@@ -277,7 +305,7 @@
},
{
"cell_type": "code",
- "execution_count": 84,
+ "execution_count": 8,
"metadata": {
"tags": []
},
@@ -288,7 +316,7 @@
"text/plain": "6217.407430933533"
},
"metadata": {},
- "execution_count": 84
+ "execution_count": 8
}
],
"source": [
@@ -297,7 +325,7 @@
},
{
"cell_type": "code",
- "execution_count": 134,
+ "execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
@@ -318,7 +346,85 @@
},
{
"cell_type": "code",
- "execution_count": 139,
+ "execution_count": 9,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "output_type": "error",
+ "ename": "NameError",
+ "evalue": "name 'kmeans_scree_plot' is not defined",
+ "traceback": [
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
+ "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mkmeans_scree_plot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mStandardScaler\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m30\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m30\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
+ "\u001b[0;31mNameError\u001b[0m: name 'kmeans_scree_plot' is not defined"
+ ]
+ }
+ ],
+ "source": [
+ "kmeans_scree_plot(X, StandardScaler, 1, 30, 30)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sklearn.metrics import silhouette_score"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": "0.15726646311836764"
+ },
+ "metadata": {},
+ "execution_count": 14
+ }
+ ],
+ "source": [
+ "silhouette_score(test.data.drop(columns=['cluster']), test.data['cluster'], metric='euclidean')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": " Lyrical/Misc Bragging/Combative Money/Party Romance/Sex \\\nartist \n03 Greedo -1.108094 1.115106 0.780540 -0.227123 \n070 Shake -0.834664 -1.035582 0.819309 1.803736 \n2 Chainz -0.526146 0.147511 0.827469 -0.671790 \n2 Pistols -0.974242 0.556940 0.561764 0.592036 \n21 Savage -1.590426 1.447984 2.694137 -0.475869 \n... ... ... ... ... \nZebra Katz 0.134856 -0.444954 0.591835 0.156195 \nZelooperz -0.491603 0.967847 -0.623256 -0.681979 \nZion I 0.743504 -1.112303 -0.629578 -0.697615 \nbbno$ -1.422031 -0.528276 -0.558746 -0.413536 \nwill.i.am -1.920378 -0.036947 2.783435 2.152477 \n\n words_per_line unique_words unique_word_rate \\\nartist \n03 Greedo 0.514503 -0.344285 -1.123740 \n070 Shake -0.442401 -1.017869 -1.090486 \n2 Chainz 0.056722 -0.221446 0.307881 \n2 Pistols -0.883727 -0.444150 -0.065240 \n21 Savage 0.161960 -0.291975 -1.150268 \n... ... ... ... \nZebra Katz -1.557956 -1.081511 0.048671 \nZelooperz -0.571284 -0.826780 0.670745 \nZion I 0.343493 0.004780 1.278952 \nbbno$ -0.308622 -1.652544 -2.257284 \nwill.i.am 0.141036 -0.648589 -1.370463 \n\n syllables_per_line syllables_per_word cluster \nartist \n03 Greedo 0.482583 -0.244783 2 \n070 Shake -0.394098 0.285492 4 \n2 Chainz 0.036345 -0.143757 2 \n2 Pistols -1.058428 -1.392879 2 \n21 Savage -0.086846 -1.644092 0 \n... ... ... ... \nZebra Katz -1.623372 -0.617658 4 \nZelooperz -0.664509 -0.790359 2 \nZion I 0.306897 -0.220902 3 \nbbno$ -0.015490 2.038551 4 \nwill.i.am 0.054167 -0.573045 0 \n\n[1260 rows x 10 columns]",
+ "text/html": "\n\n
\n \n \n | \n Lyrical/Misc | \n Bragging/Combative | \n Money/Party | \n Romance/Sex | \n words_per_line | \n unique_words | \n unique_word_rate | \n syllables_per_line | \n syllables_per_word | \n cluster | \n
\n \n artist | \n | \n | \n | \n | \n | \n | \n | \n | \n | \n | \n
\n \n \n \n 03 Greedo | \n -1.108094 | \n 1.115106 | \n 0.780540 | \n -0.227123 | \n 0.514503 | \n -0.344285 | \n -1.123740 | \n 0.482583 | \n -0.244783 | \n 2 | \n
\n \n 070 Shake | \n -0.834664 | \n -1.035582 | \n 0.819309 | \n 1.803736 | \n -0.442401 | \n -1.017869 | \n -1.090486 | \n -0.394098 | \n 0.285492 | \n 4 | \n
\n \n 2 Chainz | \n -0.526146 | \n 0.147511 | \n 0.827469 | \n -0.671790 | \n 0.056722 | \n -0.221446 | \n 0.307881 | \n 0.036345 | \n -0.143757 | \n 2 | \n
\n \n 2 Pistols | \n -0.974242 | \n 0.556940 | \n 0.561764 | \n 0.592036 | \n -0.883727 | \n -0.444150 | \n -0.065240 | \n -1.058428 | \n -1.392879 | \n 2 | \n
\n \n 21 Savage | \n -1.590426 | \n 1.447984 | \n 2.694137 | \n -0.475869 | \n 0.161960 | \n -0.291975 | \n -1.150268 | \n -0.086846 | \n -1.644092 | \n 0 | \n
\n \n ... | \n ... | \n ... | \n ... | \n ... | \n ... | \n ... | \n ... | \n ... | \n ... | \n ... | \n
\n \n Zebra Katz | \n 0.134856 | \n -0.444954 | \n 0.591835 | \n 0.156195 | \n -1.557956 | \n -1.081511 | \n 0.048671 | \n -1.623372 | \n -0.617658 | \n 4 | \n
\n \n Zelooperz | \n -0.491603 | \n 0.967847 | \n -0.623256 | \n -0.681979 | \n -0.571284 | \n -0.826780 | \n 0.670745 | \n -0.664509 | \n -0.790359 | \n 2 | \n
\n \n Zion I | \n 0.743504 | \n -1.112303 | \n -0.629578 | \n -0.697615 | \n 0.343493 | \n 0.004780 | \n 1.278952 | \n 0.306897 | \n -0.220902 | \n 3 | \n
\n \n bbno$ | \n -1.422031 | \n -0.528276 | \n -0.558746 | \n -0.413536 | \n -0.308622 | \n -1.652544 | \n -2.257284 | \n -0.015490 | \n 2.038551 | \n 4 | \n
\n \n will.i.am | \n -1.920378 | \n -0.036947 | \n 2.783435 | \n 2.152477 | \n 0.141036 | \n -0.648589 | \n -1.370463 | \n 0.054167 | \n -0.573045 | \n 0 | \n
\n \n
\n
1260 rows × 10 columns
\n
"
+ },
+ "metadata": {},
+ "execution_count": 12
+ }
+ ],
+ "source": [
+ "test.data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sklearn.manifold import TSNE"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 151,
"metadata": {
"tags": []
},
@@ -326,14 +432,53 @@
{
"output_type": "stream",
"name": "stdout",
- "text": "[(1, 11339.999999999995), (2, 8614.935817990692), (3, 7331.596649107567), (4, 6706.899426784931), (5, 6214.874937951342), (6, 5840.953491987842), (7, 5559.502866760166), (8, 5320.678783523608), (9, 5101.243093356314), (10, 4933.883314182881), (11, 4774.095989141835), (12, 4631.5356525948055), (13, 4483.546130619044), (14, 4386.907144179993), (15, 4274.258909785878), (16, 4172.932674590118), (17, 4079.41095828764), (18, 3993.685470226637), (19, 3928.460942792269), (20, 3853.8055212686886), (21, 3794.5422758937784), (22, 3743.1758529489825), (23, 3682.636851107108), (24, 3634.5868625389016), (25, 3569.9979365253616), (26, 3525.3481391385885), (27, 3488.460420697032), (28, 3441.828583305377), (29, 3411.523404539594), (30, 3356.094963840744)]\n"
+ "text": "[t-SNE] Computing 121 nearest neighbors...\n[t-SNE] Indexed 1260 samples in 0.001s...\n[t-SNE] Computed neighbors for 1260 samples in 0.059s...\n[t-SNE] Computed conditional probabilities for sample 1000 / 1260\n[t-SNE] Computed conditional probabilities for sample 1260 / 1260\n[t-SNE] Mean sigma: 0.811085\n[t-SNE] KL divergence after 250 iterations with early exaggeration: 66.902618\n[t-SNE] KL divergence after 300 iterations: 1.349206\n"
+ }
+ ],
+ "source": [
+ "tsne = TSNE(n_components=2, verbose=1, perplexity=40, n_iter=300)\n",
+ "tsne_results = tsne.fit_transform(X_scaled)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 152,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "xs = X_scaled.copy()\n",
+ "xs['tsne-2d-one'] = tsne_results[:,0]\n",
+ "xs['tsne-2d-two'] = tsne_results[:,1]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import seaborn as sns"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 153,
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": ""
+ },
+ "metadata": {},
+ "execution_count": 153
},
{
"output_type": "display_data",
"data": {
- "text/plain": "