Skip to content

Instantly share code, notes, and snippets.

@galekseev
Last active June 24, 2022 13:46
Show Gist options
  • Save galekseev/fee6769856c5536aa2b59b3a4e777b53 to your computer and use it in GitHub Desktop.
Save galekseev/fee6769856c5536aa2b59b3a4e777b53 to your computer and use it in GitHub Desktop.
Clustering trades distribution by volume
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"language_info": {
"codemirror_mode": {
"name": "python",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8"
},
"kernelspec": {
"name": "python",
"display_name": "Pyolite",
"language": "python"
}
},
"nbformat_minor": 4,
"nbformat": 4,
"cells": [
{
"cell_type": "markdown",
"source": "# KMeans",
"metadata": {
"tags": []
}
},
{
"cell_type": "code",
"source": "import numpy as np\nfrom sklearn.datasets import make_blobs\nfrom sklearn.cluster import KMeans, DBSCAN\nfrom matplotlib import pyplot as plt\n%matplotlib inline",
"metadata": {
"trusted": true
},
"execution_count": 1,
"outputs": []
},
{
"cell_type": "code",
"source": "X = np.array([\n [1,28420,12933],\n [2,37115,4337],\n [3,73034,2117],\n [4,66312,1237],\n [5,57588,824],\n [6,40921,554],\n [7,71473,405],\n [8,76176,302],\n [9,81459,246],\n [10,134959,206],\n [11,64296,143],\n [12,92849,142],\n [13,47792,119],\n [14,79778,92],\n [15,37317,82],\n [16,40159,80],\n [17,98439,68],\n [18,82166,56],\n [19,122956,62],\n [20,152432,48],\n [21,23065,42],\n [22,151729,40],\n [23,34411,31],\n [24,88691,27],\n [25,52182,38],\n [26,24426,21],\n [27,229377,26],\n [28,52653,27],\n [29,21624,15],\n [30,125891,21],\n [31,29909,17],\n [32,27274,15],\n [33,36825,17],\n [34,24187,13],\n [35,106833,20],\n [36,32056,14],\n [37,55311,14],\n [38,12084,15],\n [39,61255,15],\n [40,26611,13],\n [41,26205,7],\n [42,47636,13],\n [43,34461,9],\n [44,231967,6],\n [45,12792,10],\n [46,36625,12],\n [47,32448,5],\n [48,164310,6],\n [49,11163,14],\n [50,35901,8],\n [51,26561,6],\n [52,244498,5],\n [53,46569,6],\n [54,13317,6],\n [55,194705,7],\n [56,774867,3],\n [57,75548,2],\n [58,36319,5],\n [59,52573,3],\n [60,22226,5],\n [61,6260,3],\n [62,45211,5],\n [63,24452,6],\n [64,3983,2],\n [65,8719,2],\n [66,14787,3],\n [67,47861,5],\n [68,36344,4],\n [69,36754,3],\n [70,77066,4],\n [71,14588,3],\n [72,40470,5],\n [73,49647,1],\n [74,5789,5],\n [75,3323,3],\n [76,44209,4],\n [77,80032,1],\n [78,3485,2],\n [79,18856,5],\n [80,77093,3],\n [81,11727,3],\n [82,8700,1],\n [83,96871,2],\n [85,15152,7],\n [86,49910,4],\n [87,40255,4],\n [88,5418,1],\n [89,83640,2],\n [90,35147,1],\n [91,36137,2],\n [92,31028,1],\n [93,31194,1],\n [94,501,1],\n [96,45913,2],\n [97,91487,3],\n [98,9914,2],\n [99,29524,4],\n [102,52602,3],\n [103,198663,1],\n [104,34073,4],\n [105,20317,1],\n [106,6123,4],\n [108,5161,1],\n [109,155390,5],\n [110,2354,4],\n [111,101305,2],\n [112,6811,2],\n [113,12300,2],\n [114,10851,3],\n [115,2998020,1],\n [117,43701,1],\n [118,22719,2],\n [119,1722,2],\n [120,26141,2],\n [121,4951,2],\n [126,11540,2],\n [127,19719,1],\n [128,29576,4],\n [129,66197,1],\n [130,590,1],\n [132,25623,2],\n [134,10652,1],\n [138,3999,1],\n [143,17729,1],\n [145,5002,4],\n [146,29525,1],\n [147,18681,2],\n [149,1928,1],\n [151,10677,2],\n [153,885,1],\n [154,20665,1],\n [155,30754,2],\n [157,29824,1],\n [159,88541,1],\n [162,3063,1],\n [166,1391,1],\n [167,155,1],\n [172,13436,1],\n [177,22260,2],\n [178,5195,1],\n [179,19389,1],\n [181,6993,1],\n [182,93005,1],\n [184,30929,2],\n [185,18104,1],\n [186,28368,1],\n [188,4622,1],\n [191,31159,1],\n [192,349,1],\n [196,3698,1],\n [198,35196,1],\n [199,3294,1],\n [203,234775,2],\n [205,3212,1],\n [206,4753,1],\n [209,44056,1],\n [213,3777,1],\n [214,18566,1],\n [217,15501,2],\n [218,18888,1],\n [219,1395,1],\n [225,291,1],\n [226,8268,2],\n [230,70777,1],\n [242,119492,1],\n [250,2889,1],\n [251,10530,1],\n [254,14289,1],\n [256,12731,1],\n [258,14922,1],\n [262,7114,2],\n [270,11802,1],\n [280,1200,1],\n [281,53982,2],\n [287,10197,1],\n [291,40912,1],\n [294,59619,1],\n [295,2553,1],\n [296,4311,1],\n [302,15513,1],\n [305,8192,1],\n [310,359,1],\n [313,97953,1],\n [318,116607,1],\n [324,35942,1],\n [329,11635,2],\n [330,50611,1],\n [343,7190,1],\n [347,8650,1],\n [351,59036,1],\n [365,1272,1],\n [369,11694,1],\n [381,43851,1],\n [384,14236,1],\n [385,83152,1],\n [416,4373,1],\n [419,14972,1],\n [422,30014,1],\n [424,5541,1],\n [438,116017,1],\n [446,31430,1],\n [454,4923,1],\n [477,53212,1],\n [506,4971,1],\n [543,43319,1],\n [547,12225,1],\n [564,8665,1],\n [611,47594,1],\n [633,8571,1],\n [647,13805,1],\n [688,29276,1],\n [741,24503,1],\n [817,60450,1],\n [822,6955,1],\n [831,14666,1],\n [883,16546,1],\n [921,52771,1],\n [927,12476,1],\n [1058,2430,1],\n [1170,2651,1],\n [1213,4786,1],\n [1252,15079,1],\n [1263,17029,1],\n [1454,5470,1],\n [2231,17926,1],\n [2726,4446,1],\n [3358,78665,1],\n [4071,3512,1]\n])",
"metadata": {
"trusted": true
},
"execution_count": 2,
"outputs": []
},
{
"cell_type": "code",
"source": "X = np.log(X)",
"metadata": {
"trusted": true
},
"execution_count": 3,
"outputs": []
},
{
"cell_type": "code",
"source": "plt.scatter(\n X[:,0], X[:,1],\n c='white',\n edgecolor='black'\n)\n#plt.gca().set_yscale('log')\n#plt.gca().set_xscale('log')",
"metadata": {
"tags": [],
"trusted": true
},
"execution_count": 4,
"outputs": [
{
"execution_count": 4,
"output_type": "execute_result",
"data": {
"text/plain": "<matplotlib.collections.PathCollection at 0x4a80e88>"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 432x288 with 1 Axes>",
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "markdown",
"source": "#### KMeans model initialization",
"metadata": {}
},
{
"cell_type": "code",
"source": "kmeans = KMeans(\n n_clusters=4\n)",
"metadata": {
"trusted": true
},
"execution_count": 5,
"outputs": []
},
{
"cell_type": "markdown",
"source": "#### Model Training and Prediction",
"metadata": {}
},
{
"cell_type": "code",
"source": "y_km = kmeans.fit_predict(X)",
"metadata": {
"trusted": true
},
"execution_count": 6,
"outputs": []
},
{
"cell_type": "code",
"source": "y_km",
"metadata": {
"trusted": true
},
"execution_count": 7,
"outputs": [
{
"execution_count": 7,
"output_type": "execute_result",
"data": {
"text/plain": "array([2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 3, 3, 0,\n 0, 0, 0, 0, 0, 0, 1, 3, 3, 0, 1, 3, 0, 0, 0, 3, 0, 0, 0, 0, 3, 1,\n 1, 1, 1, 1, 3, 1, 0, 3, 0, 0, 1, 0, 1, 3, 3, 0, 3, 1, 3, 1, 3, 1,\n 1, 1, 3, 1, 3, 3, 1, 0, 1, 3, 1, 3, 3, 1, 3, 1, 1, 3, 3, 3, 1, 1,\n 1, 1, 3, 3, 3, 1, 1, 3, 1, 3, 1, 1, 1, 1, 3, 1, 3, 3, 1, 3, 1, 3,\n 3, 1, 3, 1, 1, 1, 3, 3, 3, 1, 1, 3, 3, 1, 1, 1, 3, 1, 3, 1, 3, 1,\n 1, 3, 3, 1, 3, 3, 1, 1, 1, 1, 1, 3, 3, 1, 3, 1, 1, 1, 1, 3, 1, 1,\n 3, 1, 1, 3, 1, 3, 1, 1, 3, 1, 3, 1, 1, 1, 1, 3, 1, 1, 1, 1, 3, 3,\n 3, 1, 1, 3, 1, 3, 1, 3])"
},
"metadata": {}
}
]
},
{
"cell_type": "markdown",
"source": "#### Plot the final cluster",
"metadata": {}
},
{
"cell_type": "code",
"source": "# plot the 3 clusters\nplt.scatter(\n X[y_km == 0, 0], X[y_km == 0, 1],\n s=50, c='lightgreen',\n marker='o', edgecolor='black',\n label='cluster 1'\n)\n\nplt.scatter(\n X[y_km == 1, 0], X[y_km == 1, 1],\n s=50, c='orange',\n marker='o', edgecolor='black',\n label='cluster 2'\n)\n\nplt.scatter(\n X[y_km == 2, 0], X[y_km == 2, 1],\n s=50, c='lightblue',\n marker='o', edgecolor='black',\n label='cluster 3'\n)\n\nplt.scatter(\n X[y_km == 3, 0], X[y_km == 3, 1],\n s=50, c='blue',\n marker='o', edgecolor='black',\n label='cluster 4'\n)\n\nplt.scatter(\n X[y_km == 4, 0], X[y_km == 4, 1],\n s=50, c='yellow',\n marker='o', edgecolor='black',\n label='cluster 5'\n)\n\nplt.scatter(\n X[y_km == 5, 0], X[y_km == 5, 1],\n s=50, c='cyan',\n marker='o', edgecolor='black',\n label='cluster 6'\n)\n\n# plot the centroids\nplt.scatter(\n kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1],\n s=250, marker='*',\n c='red', edgecolor='black',\n label='centroids'\n)\n#plt.legend(scatterpoints=1)\n#plt.gca().set_yscale('log')\n#plt.gca().set_xscale('log')",
"metadata": {
"trusted": true
},
"execution_count": 8,
"outputs": [
{
"execution_count": 8,
"output_type": "execute_result",
"data": {
"text/plain": "<matplotlib.collections.PathCollection at 0x4ac0358>"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 432x288 with 1 Axes>",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXAAAAD4CAYAAAD1jb0+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABMcklEQVR4nO2deVxU9frH3wdlh9tqqbiMgOJOKqkZplaaooViQWVpV1u1Tbs/t/YyW25dW8w2tLLMplxSEy29akqp5UauqCC4oGVZ1xFBFL6/P4aBWc4wMzAso8/79ZqXcs6Zc75zlM955vN9nuerKaUQBEEQfA+/2h6AIAiCUDlEwAVBEHwUEXBBEAQfRQRcEATBRxEBFwRB8FHq1+TFLr/8cmUwGGrykoIgCD7P5s2b/1BKNbDfXqMCbjAY2LRpU01eUhAEwefRNC1Xb7tYKIIgCD6KCLggCIKPIgIuCILgo4iAC4Ig+Cg1OokpCBcKJpMJo9FIdtY+IqNakpKSQnh4eG0PSzjPkAhcELxMeno6UYYI0mY+TmjWa6TNfJwoQwTp6em1PTThPEMicEHwIiaTiaTEBObcb6JvB8vWfFZsh6TEBLJz8wgLC6vNIQrnERKBC4IXMRqNxLcqsRJvM307QHyrEoxGY+0MTDgvEQEXBC+SnbWPLk3zdfd1bpJPdtb+Gh6RcD4jAi4IXiQyqiWbD4Xq7ttyOJTIqOgaHpFwPiMCLgheJCUlhfS9fqzYbrt9xXZI3+tHSkpK7QxMOC+RSUxB8CLh4eEsWJRGUmIC8a1K6Nwkny2HQ0nf68eCRWkygSl4FRFwQfAy8fHxZOfmleaB72dg/2hmp6SIeAteRwRcEKqBsLAwRo0aVdvDEM5zxAMXBEHwUUTABUEQfBQRcEEQBB9FBFwQBMFHEQEXBEHwUUTABUEQfBQRcEEQBB9FBFwQBMFHEQEXBEHwUVwKuKZpszRN+13TtB06+57QNE1pmnZ59QxPEARBcIY7EfgnQH/7jZqmNQX6AQe9PCZBEATBDVwKuFJqLXBCZ9c0YDygvD0oQRAEwTWV8sA1TUsEjiilMrw8HkEQBMFNPO5GqGlaCDAZs33izvH3A/cDNGvWzNPLCYIgCE6oTAQeBbQAMjRNywGaAFs0TWuod7BS6kOlVJxSKq5BgwaVH6kgCIJgg8cRuFJqO3CF5edSEY9TSv3hxXEJgiAILnAnjXAusB6I0TTtsKZp0qVeEAShDuAyAldK3eFiv8FroxGEasZkMmE0GtmftZ/oqGhSUlIIDw+v7WEJQqWQSkzhgiE9PR1DlIH3Fr3H9nrbeW/RexiiDKSnp9f20AShUsiamMIFgclkIjEpkZT3U4jpE1O2PXN1JolJieRm58qiw4LPIRG4cEFgNBoxdDPYiDdATJ8YDN0MGI3GWhqZIFQeEXDhgmB/1n4axupmutKwY0OysrJqeESCUHVEwIULguioaI5lHNPdd+zXY0RFRdXwiASh6oiACxcEKSkp5GzMIXN1ps32zNWZ5GzMISUlpZZGJgiVRyYxhQuC8PBwFi1YRGJSIoZuBhp2bMixX4+RszGHRQsWyQSm4JOIgAsXDPHx8eRm52I0GsnKyiJpcBIpc1NEvAWfRQRcuKAICwtj1CgpJhbOD8QDFwRB8FFEwAVBEHwUEXBBEAQfRQRcEATBRxEBFwRB8FFEwAVBEHwUEXBBEAQfRQRcEATBRxEBFwRB8FFEwAVBEHwUEXBBEAQfRQRcEATBRxEBFwRB8FGkG6Fw3mMymTAajezP2k90VDQpKSmEh4fX9rAEocqIgAvnDXpCnZGRUb6IQ2xDVixawYTJE1i0YBHx8fG1PWSPsHy+7Kx9REa1lAeRgKaUqrGLxcXFqU2bNtXY9QTfwBsRcnp6uo1QH8s4xoH1ByhWxQz7aJjNavSZqzMxPmgkNzvXZxZzSE9PJykxgfhWJXRpms/mQ6Gk7/VjwaI0n3sQCZ6jadpmpVScw3YRcKE20RNeyzJn7gqTyWTCEGUg5f0UG6Fe+ORCju05xkPzH3J4z+zhsxk9eLRPLO5gMpmIMkQw534TfTuUb1+xHYZ9GE52bp7PPIiEyuFMwMVCEWoNk8lEYlKig/Bmrs4kMSnR7QjZaDRi6GawOQeAf5A/UT30V5tv2LEhWVlZVfsANYTRaCS+VYmNeAP07QDxrUowGo0+8SASvI9koQi1hjPhjekTg6GbAaPR6NZ59mftp2FsQ4ftlzW/jJxfcsp+LjQVsn72er598Vt2fLuDiIiIKo3fGpPJRGpqKpMnTSA1NRWTyeS1c2dn7aNL03zdfZ2b5JOdtd9r1xJ8CxFwodZwJrzgWYQcHRXNsYxjDts7DelE1o9ZZK7OJHtDNlO6TGH3yt0EhAQQfFkwTz/3NOnp6VX6DGC2gaIMEaTNfJzQrNdIm/k4UYYIr5wbIDKqJZsPheru23I4lMioaK9cR/A9xEIRao3oqGhWLFqhu+/Yr8dIGpzk1nlSUlKYMHkCmaszbaL53E25BPgHMPe+uRScKWDk7JHl+5/w3KrRw2QykZSYYOdP57NiOyQlJnjFn05JSWHyhHGs2I6DB56+14/ZKSlVOr/gu4iAC7WGM+HNXJ1JzsYcUua6J0zh4eEsWrCofDK0Y0OObDnCvvR9JA1Oori4mJ0ndlZo1VTWQ64Jfzo8PJwFi9LKslA6N8lny+HyLBSZwLxwcSngmqbNAgYBvyul2pdu+zdwM1AEZAH/VEr9XY3jFM5D9IT32K/lWSieCFN8fDy52bkYjUbWrFnD2g1rad27NSean2DLV1vonNxZ931VncysKX86Pj6e7Ny80jzw/QzsH83slBQR7wscdyLwT4DpwGyrbSuASUqpc5qmvQpMAiZ4f3iCr2LJ7c7KyiqbLDx85LBDnre18GZlZZE0OImUuZUTprCwMJKTkxk/aTx3z7y7LOIObxDOzuU7dd/jiVWjR2RUS9LWhAKOIr4xJ5D+vZtU+tz2hIWFSbaJYIPLSUyl1FrghN2275VS50p/3AB473+p4POkp6fTIjKSj79eSG6hIvXLefzfxAn8kPcD7y16D0OUwWaCzyJMU6dOZdSoUVWKKvUyWzoN6UTOphwyV2faHFtm1VTBQ05JSSF9rx8rtttuX7EdVu0867WJUkHQwxse+EjAvXwvodaxjoyjoqK8Xo5tMpkYPGQIY159h9hre5k3PvgYGT/+wLTxD/LU1snk/JJT5clDZ+hltgSFBzFy9kg+vP1DortH0yyuWaWtGnvK/ekBdGpyip6tYOOhANbt1bh3/gOcLThbbZ9VEKqURqhp2pPAOWBOBcfcr2naJk3TNh0/frwqlxOqiH1k/PHXC2kRGenVCNFoNBLTuWu5eJcSe20vWnfuytaFWz3O8/YEZymFkd0jiekRQ5dGXYhVsYwePJrc7FyvlKHHx8fzzPMvs4dmrG16A2F3JjE54wXzNavxswpCpSNwTdPuwTy5eYOqoB5fKfUh8CGYS+krez2hauhGxkDGjz8weMgQcg4c8EqEuHv3bpq37aC7L7ptJ/7I2QpUPHlYld4oFWW2HNp8iPTs9GqJhA8fOUz7m9vT74l+Dvt8qepT8C0qJeCapvUHxgO9lFKnvTskoTqoKDKO6dzVK+lu6enpfPDhh7Tq1FV3//5dW4kadBngfPLQvjeKp90DvZnZ4gneymmvDO52KfS0m6F0P6z7uLRQNE2bC6wHYjRNO6xp2ijMWSnhwApN07ZpmvZ+NY9TqCJZWVlOI+PmbdpXOUK0RPgPv/I2WTszyPjxB5v9GT/+wJ4tP9NpSCenk4fWvVGGzx5Ovyf6MXz2cFLeTyExKZFTp065NRZLZsvowaO9bpc4IyUlhZyN1TNRWhHuVoF6Wi1a3dWlgndwGYErpe7Q2TyzGsYiVCNRUVGs/Xqh7r7c3Tu4IblqEaIlwu96Y3/CL7mE1x65lzZduhLZtgN7tvzCrk0b6HRrLMbRRqfRcEW9UZp2acqYMWNo1LiRW7ZKTafc1Ubk724VqKfVojVRXSp4B+mFcoGQkpJC5pafdSPjzC0/VzlCtI7w23TpxowVG+jc6wbOFBbiHxBIr57X0adJnwqjYWe9UbI3ZJP5UyZbjm1he73tuqmIdQFL5D+y/0jUVkXDkit4/pnniY2NrZbruVMF6slxnp5XqH2klP4CITw8nG8WLmTwkCHEdO5K8zbtyd29g8wtP/PNwoVV6gViNBrJyMjgzzPnyrYHh4Zy4613AvDGo/eSnJzkMiLW85ELTYXMGj6Lf378zyq1nK0q7k6sbtu2jeefmVS28MKqOet44dnJ1bLwgrtVoJ5Wi0r3Q99BIvALiPj4eHIOHGBkchKGkHqMTE4i58CBMmGxtESdNGmSWy1RrdMSQ1vE8OuGn6oU4ev5yFsXbsUQV/WWs1UhPT0dQ5SB9xa95/ANwHLPJk6ayPTp00lKHMCc+00seCSfJwfDgkfymXO/2ZJw18O34KpFrbtdCiOjWvJzTpDucb/kBjl0M5Tuh76DrMgjAGaRKovO23Ygd9f2suhcL3I0mUy0iIy0SUvcvXkjr4z+J1HtY2kb180mwrc+R0XRrE0WSseGbPna3MdELz3v+9e/J1bFMnXq1Gq6K85X+8lcncnnoz6nfv36tOjegoaxDdmxZAetOch3Ok0lkt4JZeC9bzn9FmKf8dGsWTPuuuPWCpdQc3elnry8PKJbRLBonGM3w8T/QHbuURo2bGgzFlkBqG4hK/JcgOTn55N0yy3M/uILlixZ4rT6sjI54vZpiQWnTnEkez/XJ6Wwfvm3XBkWxMjk20iZb7R5r6s0QfveKJdfczk7Mnbofr7qTs+zfE77idVCUyG/7fuNwtP59BjVkwETBxAUHsTZ/DNcd+Sg7nkqsh7s17tc9N8Q/ptx2k5wHScR3e1SmJaWRlx0EMNmFBLfCjobYEsOpO+FuOggli5dSnJyss0D5PO58xhW+gCR7od1FxHw85jly5fz/apVRLdsScdretK8bQfWfr2QiZMm2UTFrnLEP/30UwIDA20eANaTlrs3byzPOmnXkWat2vDjTz/x9FNPOWQ3uLOEmnUGiSUCrmrL2cpgMpmYv2A+J//3N+tnr6fTkE7k7czj02Ef0CPyHM8mlrBhy3pevmoDI+Y8wKWGy9mwPgBzk05bthwOZWB/R+tBL+MjdfVp/Ipxq0WtO10Ks7P2cVO7QtKeAOMGyP4dBnaC2Q/Bm8sK+WHNaiaNH1v2AElbYxbrz+fO49ChQ9L90AW1mS8vAn6eYd3rZM3SpXQGVFQMT7ydWnaMfWRdUY54yD8uZsKkScTaPQBGjRxJ7q4dFJw6xWuP3Mvj/57uMnp3Zwk1e4vB2+l5riYjLfvXrFnD0sXziW9Vwj2RRWyYe5ipzy2EEsW80WetxLWIFdvhtmEf8MSPT/LG8994tPCCXsZH9u/QVX8pT91I3lXKpKVjYlhQPqN62+7bmBtC+p75fDWm0CHaH3bHrWKXuMD+21PamlAmTxhXLZPWeoiAV5Hqbg7lybWbNWvGncOGEdO5K01atWHbjh1sAHru2cHZojP4BwQCjtWXznLEC06dIj1tEePfSXUQ5+n/NwY0P75859+06eJehWdll1DzVstZV/aNZX/TLk3JWreDBY8U2wj1uM9h52H9yLhnK8WuFbsYMecBBg+dzvXt/OlmOOPSetDL+Ii8AtK26X8G60je3civohV91uws5saO9WXB5EpQF/LlJQulCtREcyh3r50692tuTkxkzKvv8MTbqUS160j7+v7EAu3q1+fXn9bZvN+6+tJZjviX7/ybmE5x+o2p4rpz372jWPX1F0S266g7RvsKT2eNpsDsZ0dFOQk7qXrLWVdVnkePHi3b37p/a3q3r+cgakH+cF1r/fN3a1rEnznHOVtwlsDQi+h/zxsUtJzIwHvfIjs3z2k0ppfxkdLd7E/rtahN3+tnbmHrQaWkxSsf9mE4Se+EMmWheVJ12IfhDEkaSpykDFaKupAvLxF4JanMxJ+3onXra1/ZtDm/rPqeeoGBXNmkOQf3ZXJwXyably9h1FmzF5ty6hSzPnibvJzssnOsX76E4tgOZGRk8Msvv9D/ppuYNu5BOnTtYc5C2b2Dbek/kHj/w7pjaN6mPX5+frz66it8tnCx7jH2FZ7eWkKtMriybyZOnFi2f+kLS+jVzNHHjrwCvnGSRPVjdj0y9+5j8+dbWbxwsYNgO4uW9aLj8GCYdLM5Q+SmzqF0sZtEVEp5HPk588q//PJL0mYuQm9BCme+vWCmLuTLi4BXEk+bQ9mn6elNJlbm2nsztjD/zVcJKCwg2c8P/zdeAqC/UgwvPX4EkLd9G2d2ZABwrqQEU3Exy3KyWf7dd7Tvdi3N23agbZduZKxfR1TDyxmZnETBzQOYu2SZ7hgs4pycnMxzzz9Pxo8/ODzIMrf8TMr88ijEm362px0LXdk3+9bso2Ef835nk5Ep3WHs5+haET9l1mPqq+MZMWKEw+dw5ZM6yyT5Zon+JGJqamql1uHU88pra8Hk86FRVkWrMdXUw08EvJJ40hzK3Wjd3Qjd+tqtYjvz2tIfeGXYYLb/foyvz57FXqYuAV47Z66SPArcBkRERXHwxAkefX2Gw5jenfAIM2bMQCnlUpzDwsI8qvD0hp9dmY6FrroFto9uX5au2GlIJ17WmYzcsB+Uvz+3feBH9+ZniY8uKRPbpcv1J63c8Uk9Xe/Sk8ivIqG07LtpwM0kv7uA3u386NLkdLWnDNb2xJ+3qK2HnzUi4JXEk+ZQ7kTrMTExbkfo9te+IqIJL3yzktG9O9O+uITPzhYxQGdcacA9/v6MevRRDC1bMnvBYpffINwRZ0uFp0WUb0hOcsj/tqYqjaby8vIYMGgAd8+626PSelf2zbcZ39I+tn3Z/hFzHuC2YR/QtckZrospX2VnlPEBTp84zdwH59LhhgcY2L9thWLr7qr1ntwTdyO/ioQSsNn3v9YhrNxeTHjLYQy8t0+1pQzWhYk/b+FuHn51IgJeSVJSUpg4aZJb1oGraH3Xrl1MmDjRbT9d79phF1/MbY9P4PM3pjIIOAUEW12nALhF0/h++XKuv/56Jk2a5NY3CHfF2VNRtrdAEhISSEtLq9ASSU9P56YBN9G8e3OPUhHz8/O5dfBgjF8YSbkzhaZdmlLiV8Lxfcc5efQkC+cvpFGjRg72jqFba9b+sId1+xVXtGxIt1GtSZ+RTs7GHJYvW+5WdWl1+KTuRH5moRzAnPtPOQjl4FsG4Kdht+90aaXlYmbMeN/p/E1VLQ9nD7Tu0dDk4jOkpNzGkCFDfcZS8fTbk7cRAa8knjSHchWt+ze83CM/vaJrT33pJT595hmCCwttzhUMtA8Lo169em6NyfobhLdbs9pbIAs/XsjoR0bTrk87GndurGuJWLJIYvrF0KhNI93zOktFtBQ0PTBmDHM/n8vQlKEYuhronNyZYxnHuOOuO8qulZudy6effsrSpUuJ8GvEva/dy9ChQ0lLS2PXrl38cekf9B7emz179hAbG0t4eHiFlk51+KTuRH4TJkygU8Qp3cg/4qIiIi5x30P3puWh90BLz4SkN6FrZBHXhC4nbeY6n7JUarp1sTUi4FXA3ejUVbTefcQIzl6qL0rOFltwdu1J48Zxe1ERCvhU05gSHMxTBQWMUIqh+fnM/+ILevXq5XJMCZ+kkpqa6vX8dvtqzEJTIWs/WMu9c+6t0BKxZJG0vK4lu1futjlnoamQrQu3suXrLVx+zeWYTCabsc6fPZvOgHHWLFb+vJ67ZzraL7cMvoUXnnuBDRs2sHTxfHq38yOu6emyboLPvfgKn3z2iVmkmzZkzaI1TJg8gbmfz+WOu+5wWl26I2NHtfikFUV+JpOJd9+ZxqRBju9Lz4R9R4pIvlr/vHoeuruWhztRuv0DzVRgFu85oytuGyDoIwJeRdx5+rqK1vfs2cOGSiy2YH/tkpISFnz9NQtKShgWHMyvV17Ja2+8wdPjxvH977/zWEEBQ7/+mjffe6/CMb3w/PN06NjRKxkz9tin821duLVs8V9r7C0RSxZJpyGdWDplaZlXnb0hm1nDZ2GIM0fUOzJ2YIgylEXUZ86cYdmKFawBeixfjqFPTNm1LMKf9VMW+QX5vP/N++Ru2GNXwGMWk8SxYxg2617aJ7QvG+P2tO3cfMvNXNb0Ek4cOkGhqZCg8CCb8aelpVWbT+rs/57RaKRVI43NB2y3W8TywRtx2GfB/luBux6+u1G6vf1j3ADxrdxrGyA4IgJeQ1QUrcfGxrrtp1fExo0b+dtk4o6QEG5KTubnd98lJCSE/v3788SYMdz51Vf8dfIkP//8M927d9cdU8InqXTo2LHaFj+2T+f7M/dPmsQ20T3W2hKxZJEEhQcxcvZIZg2fRfO45mT9lFVhr/A1a9bQTtOIBVqVlFD/0hCAMuG3nGPUZ6M4cegELU7to2+HYptx9O0A17XVOPVneTvY7A3ZzHvkc3rHFHFdzG9smLuQl5//hhFzHiCyeyQAl8dczvz587kqtgPPPD8VTdPIO3K4Sj6pO1FudtY+BnUs4v1VtimPxg1wTTQ8PxSixtnuMxXAs/Ph+4wiri8oKPsWU5GH3+7KfBbMn8+unduZlfqBbjm+fRRtb/+c+DvfQbwtSCGRa0TAaxBnEZM7fro7KYZLvvmGwMBA3vj8c4YMGVK2PSQkhPc+/pgFN9/MqLvvZvHChXTv3l13TKmpqdW6+LF9Ot9lzS9zsEQsWHcbtM8ieXrL08wbP48WXVsQ0yeGPw78wY5l5V0LgxsEM2rUKPJycrjttHnd7RFK8fyKXayYtoIV/1lB3G1xnP77NJc0uYTLDJexf91e3QIegPhoxdqc44A5cv902Ad8/cAZ3Z4okzNe4MiOI6TPWMn17fwJzVrGqjWO7WA9xd0oN6JJM6bM8OOLMSXcOR26RUO3KJidDiN6mguFFjxujsbjW8FlYfDleujRCiYNOsuqORPLFqFw5uGnZ8Kb30Hv9qvI/n0Z10S6H0Vb2z8L5s9nw4FVwBmHzyuFRK4RAa8jVBShu1sEdM+oUYx+5BGaNNGPaJOSkujatSunSwVND3fz2ytbVWovxPaWiAX76ky9IqBDmw/RObkzAKf+PMXKl5YSVHiWlPr1iCgpQcucTzOwKWg6+Ndpil5K416l0OZs5MuzxZz2r8epP09xqeFyfvqxPnAOe9L3a1zWswGFpkLmjZ/HNS3O6gpWz1aKn+f+zPcvLeabx0ro28EiTFXzdT3xoi+66CKOnSxhTjoo4MgJWFkIBUXwwx54EoiPgexp8OlamPwVLBir70Fn7Mh08PBNBZD4hvkh0LfDGSYbITRQf9zOomhL4JCcnEyUIYIV2894dY7gQkEEvJTabEplQS9C96Rkv1WrVi6v4UzcLVSUnZK9fRv+TRpy1113sfjbb81l9+06euSR6wlx41aNSR2Was5C6dTYpjpTKUVqampZet6OjB2kpaU59Ao3xBkYt2ESX9zxEdv3/Y6xWNEQWyvkEuA/ACWKo8Cd/n4EXRFOg5iGGOIMhFwcwn/Gn9OdcPxhl+LGP04xpcsUQi8OZnCnEt3P161pEa+//j3XGPQFvrK+rrteNEDa11/TGZifDvMn2Aqv4bFy6yQsCAL9oXcb59Gznoe/YEsAcZFFZe9xt/mWHnUhl9qXkWZW1G5TKle4UwTkTZw1tlryyQds/WktmYeOsnDRYsb+532eeGcmtz74GE+8ncqYV99h8JAhbi0bZknXGz14NLEqlvEjx3PwwEEeHvowsSq2bOFjwGEps/ax7YmJiWHq1KlMnz7dZgm2v4/8zdHfTrK/ySW0q++HfhMAc0FTWz+N4Pt7MXrt/3H418OsmbGG1/u8zpUdmzPknXoMeKMeUxbCzW8HcNsHgdz0dCLf/fs77v7gbrrdfQ3r9un/6mzI9qd5w+ZcF6O7u9K+7p7dO93KJ7dM2s4CijXb5lvhwTD3YRg8DQb82/z5Xl9W32XrWovlMfDetyhoOZFGra+3Oa87zbcqwv78rhqACeVc8BF4ZZpS1SSelOx7Az0/Pnv7Nrb+tJaJ737M8bzDUL9+pTxyV/1LrN/nzuIP1tF849jG7Fu/j5GzRxLTJ4Yf3v+BQZMX6hY03QzUC6iPoWdLQi8J5a7372LmXTNpn9CeRm0aEXRbF36e8zPFTWO4rGcDJg/pxJYFW2h9Q2uOZx/n+ymLqe+n3xNlXabGwFs6sOlANuBoVVXG101PT+eD99+jZ0v9/dbnXLFiBR39/YktKKC9H6zcYV68Acy+9V3vQc9WEFS/mM/X1yfnOGzMCQIKKzyv9bfD1NRU0mauw+KLW3vqcS2gR0s8jqJrM5fal7ngI/CajnA9JSoqitxd23X35e7eUWEL1spiv/hxTJOGxPXsQ+y1vfjt0EG328daU9HCwHo4W8rsxKETBFwcwJgxYzCZTMTHxzP387ns+3EfkdeY0xH/d/R/LH1pKa2C/W3EG8xi3jLYn5ufv5nPHviMWcNnsfaDtUReE0mr61pxOOMwXW/vyt95fxMd34rud3cnMCyQP3P/pEFUA5Y+OY/FT8CyCTBsBiRNgykLod8rMPhNP9oO7cyuv3bx3ZbTlY5IrbF4358/cIZNB8qj3KzfYNoyeHAmfP/rOY4fP860adN4fepUhp48CcAd5+D1RebjXl4E/V+FpDi4KRZevxP2vHYO45hzrMwo9GisKSkppO/1s3lPfAyk3gvr9gfyv+bjJIquIS74CLymI1xP8aRk35tYR0STJk0qKzS6smkztqxdpfseZznr7i6lZo19uqEl7S+yeySdkzuz5ZctGKIMZYU0bQe0pVGbRmRvyOaD5A+4+KIQ7jj2PxTwsQbPB/nzbMFZ/gncceYca3Yd5ektT7N14VZWvrWSrnd0LZtQzd2UW5aqGNk9kiYdm7A9bTun/z5d5hfn/QU3toOfs8xieuYctB54Fbe/eTsAa2asIfGFb3Tbwbpbpm4ymXj44Ye52lBAYhxcFl6eOdIgHD5bAyEK/lm/mN+efRaA7kpxd+l5RwB5WXAwG4oVDFfw9Wo452+OkqOuhMQ487qYye9Cn3b1yjzotZkao+57iGefeYo//vyLBpdfSus27crG5sy3XuakqZdQPVzwAu5JSXlt4EnJfnVhfY+uHZDInGmvePRAqcxSak0imrBsqdnFLjQVMmv4LO7+wLGCcsjQIbTu3ZqW17Vkx/IdrP1gLW36tiF72Q5uKlEkB/mz8YpwbnwxkfGPzGXp6SLGnyth+qJt3PLGbXS/uzsZSzLI+SWHfk/0sxHuHvf0YPvS7ez6fhcPj36YGTPe5trrYMYK+NcX5sm/f/aCH/fCml0Qsqm8Oqb36N4cSD/ARVdeRUHjRtzQuwnXK8W3S79lz549ZZHtlClTeG/6NFo0UFwSfI7lRQFMHD+WF6a8ynNPTyTY7zT39zFPxloyRyzrWvZsB/t+a0Bmfj6zT5/W70JZOtd6FLizHsQ0gTljoXmD8uP6tS2k24BxtG7Tluys/bSKUqTvfZf1377NrwcK6dEKWrWCJeuCbNIWXfUAOR9axtZ16ryAV3d2SG1FuJ7gabc/b2N/j8a/k8prj9xLzFVdiO5wFbm7tpO59RenDxRPl1JLT0/nmeee4XThaTJXZ3Li0Amn1Zr/aPSPsgrNb576hpbxLbms2WXsKTzHbcH+tBjSiUdeu5WAkABO/naSddNW8svfp8k3FXJw80EMVxtoc2Mbvn3xW5sc860Lt7J37V6OZx3n1ZdfZdy4cezevZuV279jYzZ2K8abLYdb3viLk7+d5B9X/gOAiM4RNFaNGZCQ4NArZdz/jaN+yTkKCwsI9oeoBtClBWw+UETOsSL+NXYMc8fAXTPMUb6FsCDK1rUc8k4oEx+ZwuHsbDq9/TazCgqcdqG8y8+Phg3g1xdLqF/Pdr/Z627LqFGjMJlMRBki+GjEKe6bCV8/Zv05C1mxvdAmbdGZb32+tIyt69RpAffmIgjOqAsRrjvU5iSP3j1qc1UXdvz8E60jrmRkylBSFnzl9F656sVtKdaBcrul19hefPfv75g1fBbhV4bT9Y6uDu8tNBWi+Wtkr8+m3xP96DCwA1dEX0HBn6dQQNtHrqfPmD5snreZP3P/pOBkAX/9dZrrH7meH6evYufSXzFcbeCSJpdQfLaYT0d9SnR8NE06NuHwr4fZn76f4JBg7r//fgBmzZpFsyYR9Ouon3bXpy0seX4Jw2YMA+DIliNcfOnF3HRTX64e0Y0BEwcQFB5EoamQlzo8zZ3dzvLpOvjyEdvzjfscdhyGn/aZFzdev19/wnTNzmI+u/NOwsLC6N2vH/1uvBGTUrpdKL9ZtIiRI+5k9S5ThfnWlnTF46bKl7ifTy1j6zp1VsBrMjuktiNcX8DhHt2ZTMqi+W7dI0+WUjMajTTt0pSVb67knln3YLjawLzx88j5JcfmnNkbsvnojo84d/Ycf+b+SebqTKKuiWLXil3c/OzNGHpE8eUjX7Lm3TVEXRuF4WoDh7Ydwt/fn/Uz12PoEcOZM+eYPXw2ORtzeHva2zz17FP8ffBv8k/kc/bUWQLrB7J44eKyz9i4cWMMhuZc2ypX93P2aAkfZ/8OmD3wvasyaNphN5MHFrFhy3qmxq4nbng8R3flEd+yhOzfoVdrR5EM8ofuUfCfZTDpFnj+1nLvu7MBtuTAqp1wy9ChZWPz8/OjQ1gYwSaTzbksXSjdzbe2lM5n/27+RqCHq1RIT3LWhapRZwXc0yXLqoqkMbmmsvfI2VJqB9Yf4L5R9zHlpSllaYX7s/ZT4ldiY5kMenoQr/R4pewBUGgqZOZdM9E0jXs/uxf/YH+bviZ/HfqLmF4x+NX3455Z95Q/NJ4wPzS+fOBLHhzyIEeOHCGiQwTqJsXBQwd54dkX0DSNI0eOlNl19g+oa3v24seM2bqf88d9cKbkHO/d+h656ZksHgd9O5hL89Mzi/hpB9RfvYorzsK1HcwR9jU6qYGRV8Db30GrhuamU08OtvW+B3aCguIAevXuU/ae+V98wdD8/Aq7UL79wQcufWtL6XxC+/xKF+fo9U8xFZjHf+Jvc/+U5ORk8cO9QJ1NI6zr2SGCe5hMJlJTU/l26bc8/8zzjOw/klgVS992fUGDlbtW2qQVqhLF8X3HyxpcZW/I5t+9/k3jdo35+J8f80HyB8x5aA7hV4YTHR9NTJ8YIrtH8vSWp+kwoAPtB7Rn5t0zeSfhHZp30V/4oUV3c2hZXFzM+Mnj+WjpR2yvt52Pv/uYZ55/hoSEhLJVcux5+eWXWbNbv2hlzW6IvCaS45nHubFDgE0FZNKbZqvku4lwV7xZmAd0hLV7HO9ZSnfYexQGdSovkLF43y8lQ7PL4Ke9lE2EWrpQ9i3tQvl68+a89tln/LtZM4YFB9OvdH9JSUnZQ/ilqS/rfkZLimCD8MoX50RGtWTzodCyn9Mzzc2z0raZo3C/46uIMkTUiUI5X8dlBK5p2ixgEPC7Uqp96bZLASNgAHKAZKXUX94cWF3PDhFc47DQwXcryNmYU5b6d/sHt9sI7Pa07bzzwDsUnyvm4OaDDtknZ06dYevCrax5bw2hl4XadDEMDAuk+93d6X53d9KappH1TRaGqw264wq4JIDxk8ZTXFJcVvhjwdXSbI0bN+b1ae+SOHYMvVrDta3MkfSa3TDopVtpENmAzZ//Qvce5U2x7FumpnQ39x8Z0RM2ZTv626mr4VwJbMiybTplsU9W7IAxj40tG5+nXSgrwtpqad3kLLe9Zc5C6dESfskNYn2Wv8viHOuWsd2j9fp9n2HF9jPih3sBdyLwT4D+dtsmAv9VSrUE/lv6s1dxVtJdlh0iTW7qNNa538NnD6ffE/0YPns4Ke+nMGToEIe0wuwN2RgfN2K4xkBsUiyZazJZ9soyGyvFItK9HuxF/ol8Dmcc1r32sR3HuLbHtRzLOOawr9BUyNYFW7n6rquJseoNbsE6tdEZo0ePJjv3KDTuz4uL67Hxz0u55sHr2ffffXw64lPatW1nE1nb+8mWysX7ZkJMI7j1LbjpVXNBUN9X/Hjya5j/GGzLMTegyp5WapucBUMDCAoO46mnnio7n3UXyvc+/piQEHPLXEsXyn9/9hkBgYEsXqgfENljSREcMW46940exxVXjeB/zcdxywPT3SrOsTwEhn0YTq+pAXR10alQqDwuI3Cl1FpN0wx2mxOB3qV//xRYA0zw5sB8JTtE0Kei3G9L6p8FvTzvLkO7kHpXKv2e6Odw7k5DOvHN099w8uhJ3YnRQ5sOsfzX5TaLFFtY9soyDF0N+Af5u9WH3BkNGzZk2bJlnDp1CqPRyJo1a9jy40/0a1+Ps4Wb+WFveWQdeQUs3Wb7fktOd+en61OsSjj2Pz9W7jxH9nGNnjFwfTtzjvmtb5n7mXSLgq05sD47iCVpy2z+/3ujC6U9VZ0TsjwEUlJu45rQ5brHSL/vqlPZScwrlVJHS/9+DLjSS+OxQbJDfJeKcr8btGzAwV8Olv2stypP6+tbk/h8Iju/3+nw/qDwIJp3aM6hXw8xa/gsc5ZJnIGs9VkczTjK0kVLdRcpPvbrMXav3k2fx/sQ3iDcrT7krvq3hIWFkZyczKTxY8sWNJhshEaXmEvt41tBeBAsz3C0Sr7dAoeOn2PxE9C3g7niZrKxmOMms2cc3woe628+7pVdZgvl3vtHExkZyYgRI9i/bw/RLVvz8ssv07hx4wr/PVx1oawOwsLCGDJkqE3fFGuk33fVqfIkplJKYW47rIumafdrmrZJ07RNx48f9/j8lkhg6tSpTieWhLpHdFS0roUB4FfiR87P5V0Ena3Kc/XtV5PzS/lxFjJXZ/LHvj/I3pfNG6++gaG+ATLgkaGPcCT3SNlXfPuuh6MHj+a1V17jWMYxOg3pRPaGbN1z52zMMU/mudm/xT5tLvIK+NNkjrBvaAffbIapyba9U655Bu5+H3q3tRX1xhebF1eYMxo+fdA8Ydk/Fu6/3ux/Hzx0mOgWERzPmE1Ck585njGb6BYRzJgxw/1/nBpEr28KVK4vTHVjmXCfPGkCqampmOxSMusimll/XRxktlC+tZrEzAR6K6WOaprWCFijlHLSQLOcuLg4tWnTpioOWfAFTCYThiiDbv8T44PGsolMQzcDZ0vOcq7oHA989YDDeWYMmkHerjxaxbcqi6ItvcIrU8xlPS5L+qGl30nW+ix+3/47ixcuJjY2tsLxW09yTp40gdCs13hycOk1CswR9JzRkPuHOftiwVg4VWie0Fy5HRZtNvchad+EsvcBTP8OlmyFp4eUT16aKzTNUTzAoicci3oS/wPZuUdp2FD/W09tYl2VaZ9/Hh8fX6mSe2+X6dtXjm4+VPUVlLyJpmmblVJx9tsra6Esxtwr55XSPxdVYWzCeYiz3G9r8c3NzsVoNLJr1y4+nPWhrp/9x74/2Ld7H0uXLiUrK4ukwUmkzK3cepJ64+pxTw/2fL+Hfav38ejDj/LU4qcICwsjNTXV7f4t9suOWbdXvSgY7rnO/N6wIEjuBo9/ZhbgG9o5LoSQ97fZ73bM3IC+L0N9P/0Jwd5tYOLEiXzyySeVui/VSUV9UypTcu/tMn1frhx1GYFrmjYX84Tl5cBvwLPAN8BXQDMgF3Ma4QlXF5MI/MLDMsln3ctG75fBJuXQC5F2Vcc1cdJEttfbbjOJalnFftNXm2h1USuMRmNZ18AoQ4SdAMDizZA8vT43tNdY+sRZwJwi+PpSuDseHr2pPFK3vC91NUz/3mzDLBhrO+Zrn4OEq2wjdgtTFsLyvO4sW/69Q2QKeBSt1lQTKmf3bcV2GPZhuK5wmt/TmDn3n3L7Pa4w9zd/nAWPOPr0Se+EMvDet2q9yK/SEbhS6g4nu26o8qiE8x53sxmsI3JvRNqejsvif+7ctZMTf57g6NGj/Fbvt7L91u1sY/rEcHjzYQxRhrIHjLMy9cVL5nHXHbeyYrt5ibXs36FNY7MlYr+4cGeDubBndx7c1s1xzNFXmoti9PhxLwRfEUaziCu4tmUx10SdZemaEP5v3KP4+Wn0aqNVGK1aRPuHNav5dvECerfzI67p6WprQmVpldvVUOhRyf2UKVPoFHHKq2X6epWjFup6pkydLaUXLjxqq52BJfq/vOXlHNxxkBZdW9D0qqZkvpdJ5upMmsc1d9rO1lL0U5FNYC3uJWfzOX0Gth0sz0qxlMn/dwek76vPfQ88wNq17/Kk3TifHAyxk/QbW/13B9Svv9KmS6Kp4DSGx+DLMfoLFluiVYsl0S2qmHU7Ttt1IPTcSnAVwVuud2lwAXf3cFxAGvSF02Qy8e4705g0SP+6lRVbewvMmrqeKSMCLlwQOEsHtBQcDZk2BOPjRv758T/LRLr19a1JvTOV8CvDada5mUs/3NkDyFrcd+/aycyP3uOZWwrL0gw7G+CXbHOF5TdLltK+fXvazU51WKn9/f9Ch6bYvG9LDqzNBM0P+ra3FXbjBuhVwYLFRqOR5OTkMv839w/wV5XrQGjBlT9t7TdbJnj10BNOo9FIq0Yamw/ov2djTiCDKyG21pWjFXVqrIuIgAvnFXpCnZGR4dCPe8LkCSxasIg9e/Zg6Gbg1B+nHHLRI7tH8uyvzzL16qkYbjXoXk+v6MdZBGoRv8FDkkhKTKB7TDGq5DSfr6/Pkb/r8c2SxYSEhHBVh9Z0aKpx21vYlLH/d0cxkwad5bH+to2trm8Hby/HYXFidzoKWqdATjZ61oHQ/nMmJCS4nAy0vp6pwNxSwFJyb/lMhWdhbabmIJzZWfsY1LGI91fpfwtZu1sxtxJi626nxrqICLjgcziLph16ryxawfiJ4ylWxQz7aJiu/XHP8HtoGNvQaS56YFggER0jyNmYozsW+37m7mRI2Nstg0o/g1LKZlLPknb43x2wapfi+Rdf5sd5zxIWlF+2qAOYhffKi83++ZOUd/7blgv17Co9LPs+X1+fbiF5nDlTWOb/Rl7hfkSs9znHPvYw17fTKozgrf1myxzAza+be7/0am3uzrj5AKiSErZt22bju1usjgWP57vsD+Mp7qwwVBcRARd8Cj2RnjB5QlleuXXetqVEX/PTnNoffxz/g2MnjtHyxpa6lZnZG7LZ/+N+NE1z2c/cWTraok0w4KYbue+Bh2nbtrVDRG4hNTXVpiDI0oFwVG9Ieqc+QUFBZUUx1iJ5sgC2HDD3EZ+WBi8vMYtbXAuYtrw8Wk3PNE+YXhMNd/c4x6a98/naWETPVmbhtzTZcmUlOPucd0w357XrYYng7f3m2GbgXw++erT8mk8CK7afdvDdLVbHQ71t2+vq9YepDL7YUloEXPAZKloc2bI2pmW7JWsk5JIQ4pIdsq8As/1xeeHl5CzLodPt5ZWZ1g+A1DtTGfXZqAqLfiwCY28PGDfA6l2w4Jcgzhb3ZNq0SwgJWcTDD49l6NAh9OlzHQkJCaSlpbFvXzbbt28hrqHzbIi8I4d1v+p//+s54mPO8NANkPwODInT6NtBkdId+nWExDfgqubmyNZ6gtJUkE/zR207IlqyYq6JhqsjYfPhUH60sxKcLdhwQztY8Iv+v50lgk9OTrbxm40bzH1h3PHd9ayO3b+ZrY6Fi+u21VFdiIALPoO7DbKsm2OdOHTCZc8TS2FP41bmnuMturagRdcWbF+8naadmpZdz7JW5p+5f1LwZwEvPveizVd8iz2QngkJrwVRXHINp4u2AF8DfYF0Tp9+C7ieL76IYcGC2dx336MEBfWlsLArgYH+rDgbRL+OhcTb1TVbBFDvq37krp38b+s07ng3iBLVk6829mLpth8Y+9laRvc9w4ieGp+kQ9doraznCpjFs3dbGJdgm8rYPQq++xX+COzOyHvv5TM7K8FZ2l1Kd/jXnIojePusnBN/5zuItwU9391XrY7qQgRc8BncbZBl3Ryr0FTI0ilLK7Q/wsLCynLQd+/ezR9//MHlRZejmim0TlrZeyztbAH8g/w5cuRImR+/b182x44d4/esYF5dojAVLsZc43YxZvE2AUnAnLKfCwvfAhZRWNgXgDNnAFbQ75Vb+P29QsKCzNe1tzDsv+pPnz6dsW8Gca5kcem5If9MLyCR1769DuiFn/YDP+xeR3pm+cPBMslpv9p9YhzENoeSNr11LQVnaXfhwdCxRRDJ70KfdvWcTgZai/CC+fPZcGAVcMbhOs5S+HzR6qguRMAFn6GixZH9SvzI+jmLzNWZNhOSQeFBjJw90sb+OLjpIHlb81i0YFGZqOiJQmpqKu8tek/3esd+PUaHdh2IiIiipCSe/PwuhISc5PTpswTU74NZSCcDXUrfYQTisQis488W+lJQdB3XvbSGpM5FbmdDnCu5zupclofFl2XbStSTFJ1bQcJrt5D3rvnhYD1pab3aPZRWIA7ST8mrKO1uzzF/du/dy9KlSyuMkC33Ozk5mShDhEPKpC+k8NUFRMAFn6GixZEPbT7EfON87rjrDsIahRHW0Gqdx9Il17Yu3Mqa6Wu4qcdNrJ+/vkxUrKPoli0jyyYZra/XPK45Wxdu5Y/sE5w7W0T2T9m8u2YWp05ZImowt9u+g6Jz7S1XBtJK/55NuZjr/WxNTxrG+FPQsoNbFsGhQ3nAdVZbnD8czhb3xLhhBcndoLAIlm3TGPe54vmh5ggaXIuntRfdLaqYeiWn2ZUXyNH/wfyF82jYsKHbEbIvp/DVCZRSNfbq0qWLEoSqsG7dOnVpg0tV50GdVcLkBNV5UGd1aYNL1bp165RSSplMJjV9+nQV+o9Q9dD8h9SbJ94sez00/yF1aYNLlclksjlfeHgDFRo6RMEUFRo6RIWHNyg737p161T4xeHKr16IquffX8EUBf1UQECICgq6RYGye32kYEDp308qaKDg+9LtQ+yOG6LzfqVCQ4eo1NRUl/fi5MmT6qOPPlI33TRABQYOsjrHpNJxWp/3ZOk1e6mLQ/1UQP0gVc+vb+lxfVV9vyB1b2/UkO6hqsGl4WWfvyK+++47FRR0sfL3H1h67warsLDL1Pjx49X48ZPURx99pE6ePOnWv6vJZFKpqalq8qSJKjU11ebfSFAK2KR0NFUEXPA5LL/skyZNcvrL7krolTILYHi4RWCtxe57FR7eQJlMJnXy5EkVFqZ3zO06ImkRyousjl9XKuIJdtutxV3/2hVh++B5WkGY1bnsHw6WMegdW37dgIB/qOnTp7slnvr3bp2CSxX0030YCpXHmYCLhSL4HO5MYrnTHMtoNFJSom81lJTEYzQaS39R9I65AVigc+VwgoI6AsnUq9eH/PzOhIR0p7h4Nddddy3r1iVTr15v8vO7EBTUmsLCxNIslKsJDd2Cn186aWkLKrQOTCYTCQlJmEzl9g30w7zSYRzQFVhR+uqO7eRpaumfjp/Z3/8GgoKC3LItHO+do++enw+wgoSEJPLyssUOqQZEwIXzFldCv29fNvn5+j50fn5n9u/PpqREOTkmBfgXZpG0FsMV+PvvYe/e3SxdupT9+7OJjk4kJeULwsLCytrYmrePYODAr6yOG0hKymyXQqf/4IkHcvH3v5aYmEWEhrZn27ZklDJQVNTV6ljn3rvlM7uD471z7rtbHoaSOeJ9RMCFC5aWLSMJDU0rjRRtCQ3dQnT0QJRSTo5xjLQtEfS8eZ/z7bfflk2KJicnV5jt4kzYnE2uOn/wbOPs2VwyM+M5e/YaQkIaUFj4PXCr1TGRwBLd6wUF/UJ09C26++xxvHeePRicfTbBQ/R8lep6iQcu1CXc9cArOubo0aMqNTVVTZw4WaWmpqrvvvuuwklRd6locvWjjz4q3W7vveuNc2ypJ235+YiCYN3PA8Hq6NGjlbx37k/Kupo4FhxBJjEFwZaTJ0+q8ePHq4CAf5RmcbyoKya2gqN/jFJKHTlyRAUFXVzpiUnrcVX00MjLy9PZ/5ECvayYkzoTnD2tJjVfLP2zgQoK6ulW9ov+fXnK6eSo9Wd356EpOOJMwKu8Kr0g+CLp6elERETx7rv7KCp6DKWO4O//Cg8/3Iq8vGxiY2NJTU1lwoTJ7Nmzh8zMDN56ayATJxbw1lsDycvLtimjT09PJzIyhsLCa6jIB3YHV5OraWlppKUtIDx8GKGhScAU6td/HfPkpT3hwO0EBNxaeuznwE2YLY+BQEHpn9kUFvZz2wMH80RxXl526X0pYcKEMYSFlY8pNDSJ8PBhNpOy7kwcC+4jHrhwwaGXxVFU9AKwghkzhnH99ddz6613lVVYhoamMW7cZNLSFuj61ZbznTkzCGjvsB+qOkHoeJ5Ro0aRl5ddNiGal9eN+fM3OfHz/+TVV6cSFBTE/PkLWLVqA2fOPAmMsjvO7PtbPpM7HrW9p//UU09ZTdI6Tsq689kE9xEBFy44KooCi4u7kZiYQmHhV+ilw2VmZrB06VIbYSs/3w2UV17aYi2OrnBnchVsxdNkMrFwYRR6WTF+fumMGGEW0uTkZCIiojhzRv+4lJTZpKenk5CQpPsAc7UupqvMH3c/W2W4ICdG9XyV6nqJBy7UBcaP16tUtLwSSysLHfcFBfVUQUEXO0y+3Xnn3aXnc784x1JFqVex6Lx4qGKf2F2vvqLj3PHfnY3bHarLAz/fJ0aRSUxBMKOfxWF+1a8f40Tc7Sssy4UnMDBMhYYOVuZKxItLJ/MGlk4Q9lH16gWpO++8u0zw3CnfDw62P08/FRx8icsydUuVqiUrxpkgOjvO8d5YSvAnqfr1W6rAQMcHWNUybJw/aPTQe/BdCBOjIuCCUEpFv/DlYmwv4NY9TmxfISGDVGDgRcpcRv69ApOCVAV3K/iHsi4tDwu7TIWEXOpUbGwzTEwKpitzGX4bBUEqJGRwtUaYtt9O3CvBr4xIuvugscbZg2/8+PFOH8ju9pWp64iAC4IVzqJASx63+71PlIIXVbdu3ZVtvrW7edm2YjN8+HArMbII6CAn0f8iFVDPX/32228VftaK7Bp7Pvroo9KHhP34q958qypU9ND19w+t8N9m4sTJXrl+VayjquJMwGUSU7ggsaTA6WVMpKUtsJrEM1dYnju3Ak07TWGh47lCQ7dwySWXAj2stjorLQ/CtvVrOfn5ncnMXEZ+fgK2C0DkAv465zpLUfFZnnvuOWbMmKF7Tk8nJJs1a8bp098Bz9qN3zsl+JWloolnTWtFYOCG0gUxbKnqxCh4fg9rEskDFy5YLFkZUVEt2Ls3iy+//BKTyWSX32zO+z5wYC/+/usxZ3lYY87eGDhwAKGhm622OxO8SGC97nhCQ7cQExNdeh7rB4D+uUKYTWfgp5Urdc9nnS6Zn78AeJL8/AWYTHNISEji1KlTDsffeutdwEvAh3bXjAQ2o4dZJCN193mLitIPi4oGotRanP3bpFRhUQhP72GNoxeWV9dLLBShLuFp5oJn2RvOLIfvFAS54YFbWzbvlNooFmvmIwX/pwLxV9tAhfv7q8LCQofxVjRZq2d72B5vfc2KLKGamSh09VkmTJhQ6YnRqly3pvx1xEIRhHL0inlctT+tyHYB7KyXdpS3dLVuuXoHMBUYhjnC7gz8Aqxg3rxvaNSoEWlpC7jxxgGcOfM/IB14DvOakdOAl0vfF0obFLFAe39/Vq5cycCBtlaBp0UztsePAF6wGn845va5iZhb1vZ0u/2tN0hJSWHcuMk4y3N/6qnZLouIKoM3Co+qMz9dBFy4IHGnpHvUqFG6v3zOClXsBV6pMbz77jCUMnvpAQELKCqKA8YC92G2SbKBWwgJURw6dKjsPAcO7KVFizal1Z23l15hAjASiCGAr7mHcwAknz7Nqy++yN69e23Gk5OTRXDwXxQUPOkwVj1v2LbIxiLYSVgeNIGBG/H392PMmE5oWoHXRNIdwsPDdecm7B8g3m5ZW9XCo2r3z/XC8up6iYUi1BUqLuZ5UY0d+4Rdo6vKpe5Zp8v175/gUbbE+PHjFXRVAYSoy0A9gKYeIkA9RIAai786UfrmE6D+Va+eejwgQD0eEKAeDQhQl2uaujg4WIWEuN9cSz/Tw6RgrPL3D3V7tZ7qpDLph1WhKjnm3sxPR9IIBaGcirzNoKCepXnd3st7dnXNkJBBavjw4TZpauUPma9VCJrqgb86qq/+Za88UH1DQtS1V12lcnJyPC6aqUqRzflKZe+JN/1zEXBBsMJ5dPSNMvfLHqu8nffs/Jr/URBcWkBkW6ASEjJIwWUKglV9otVFBKs0J+K9FNRl9eurWwYMUCdOnCi7rqdRa01Hub5AZe6Jq295nuSnV4uAYzbzdgI7gLlAUEXHi4ALdQm9yCowMKx0tXnv/fJVdE2zQOsvsBAWdpkKDAxTEKvMGSENFLyq/NDUabtBnQblBwr+KVFzHaEmInDNvM9zNE2LwDxF3lYpVaBp2ldAmlLqE2fviYuLU5s2barU9QShOrBdozKSnTt3M23aJcCVmDsLOi5cHBqaxFtvDaz0hJn1NfPyDjN//kny8xfqXqd9+2Ns3BiAebK1FzCISPLJKp3AtCaKcLJZUnrcCsLDh51Xiwn7WrdBk8lERESU3eLTUJl/G03TNiul4hx26Km6Oy8gAjgEXIo5m+VboF9F75EIXKjrlEdNNZP37Opr9oABCSog4KoyOyeAe9RzaKoE1ExQjdDUTFAloJ7FTwVwv02UN3369FotAfcWvtpt0FtzClSThfIYcAo4Dsxxcsz9wCZgU7Nmzap2NwShmrH1qa2bOZk7AoaFVfzL52nPDFdfs6dPn67Cwi5T5kZZy1UwF6sNoBIJViFcqerVC1QhXKwSCVYbQIVwiYLi0nPcqwIC/uFzomfBci8fe2ycV5aqqy28MafgdQEHLgFWAQ0wN2r4BrirovdIBC74AvZrPQYEdFL+/qFqwoQJFf7yVSZKdCfVrLy9bLAKBHUl/iqQxmXtZUNCblaB3KOuJEQFUk/BeuW4FqZviZ7tvRysnHWCPF+6DbqiOgT8NmCm1c/DgRkVvUcEXPAVPI2aqpLz687XbJPJpG668UYVUq+e6tSpS1lOtu1156sAQpQf45Wrrod1WfQc72X1TCj7Es4EvCqVmAeB7pqmhWBeGfWGUqtEEHweV0uD2eNuZacerkr0LeN5+913CQkJoUmTJjbvt61QHE1w8BbOnVvP2bOTdK9X19eedLyXkXhjqbrzkUoLuFJqo6Zp84AtwDlgK+YWZoJwwVGZnhmeZlW0atVKd7vjA+B2CgoSmThxVbWsPVndON7LFMB5H5SUlNk1Or66RJV6oSilnsXcOFgQLmg87Znh7R4Z9t8YTCYTkydbN6OyUPdFz/FeWvdliQN61GgjrTqNnq9SXS/xwIXzFU888Jpaw9FXy+Kd359FKjAwTI0b968LrkIUaScrCNWHXre8kJCNFBev4eabh/Dll1+WWSRV8cs9wR1vvS5ScefBZbW+Ck5dotKVmJVBKjGF8x1LleXq1T8wf/4S6tXrTX5+HKGhm8u+8i9ZksZrr4UCjm1eYQoTJxbw8ssv1fTQ6xz2VbIpKSl1/uFTXTirxJQIXBC8iGWZtrFjJ1FY+BV6i0VMnfoMoaG+OcFYk3iaCXQhImtiCoKXcWWRaJqGn1861bGGo3BhIRG4IHgZVymFhw/n6Xq8mraWhx4axYsvTnWZVuhrjZ2E6kEicEHwMuY0uIpXcLdMML71lnnl+4cfbgX48e67+3jttVAefzyNiIgo0tPTHc6Rnp5OREQUjz+e5vJY4fxGJjEFwct42kbUk+O92aLUcj6J5Os+ziYxJQIXBC9jSYMLDx9GaGgSMIXQ0CTCw4fpFp64k1ZYmWNNJhOpqalMmDCZ1NRUTCaTzTskkvd9xAMXhGrAkxxsT8rw3T3WVaWnyWQiISHJJpK3zpQ5nxaCOJ8RAReEasLdNDhPyvDdOdYdca6pYiKhehELRRBqmZSUFLfTCt051h1xrkzzLaHuIRG4INQyFZeO23rm7hzrjjh72nxLqJuIgAtCHcATz9zVse6Ic3JyMuPGSYtWX0fSCAWhFqmOND53Uw1tJzptI3lpGFW3cJZGKAIuCLWEY6bIZq8JqLviLA2jfAMRcEGoQ3i7IEcPEefzB+lGKAh1iJpI45Nufuc/kkYoCLWApPEJ3kAEXBBqAXcaXgmCK0TABaEW8KR4RxCcIR64INQCnhTvCIIzRMAFoQbQy/f21UWHhbqDpBEKQjVTnfnewoWBpBEKQi0gbVuF6kQmMQWhkrhaMAE8W4BBEDxFBFwQKoG7q9lIvrdQnYiFIgge4oktIm1bhepEInBB8BBPbBHJ9xaqE4nABcFDPLFFJN9bqE5EwAXBQzy1RSTfW6guqpQHrmnaxUAq0B5QwEil1Hpnx0seuHA+UBOtYAXBmurKA38LWK6UulXTtAAgpIrnE4Q6jy/aItWx8o9Q+1Q6Atc07SJgGxCp3DyJRODC+URNLZhQVfGVSlDfx+sr8miadhXwIbALiAU2A48ppfLtjrsfuB+gWbNmXXJzcyt1PUG4EKmq+Irdc37gTMCrkkZYH+gMvKeU6gTkAxPtD1JKfaiUilNKxTVo0KAKlxOECwvrfPP8/AXAk+TnL8BkmkNCQhKnTp1yeQ6pBD2/qYoHfhg4rJTaWPrzPHQEXBCEyuFKfD/99FMCAwMrtFakEvT8ptIRuFLqGHBI07SY0k03YLZTBEHwAhWL72WMGzfZZSm/rPxzflPVSsxHgDmapv0KXAVMrfKIBEEAKhJfE/AlRUXzXForUgl6flMlAVdKbSv1tzsqpQYrpf7y1sAE4ULHufg+C/TAHV/bkvIYHj6M0NAkYAqhoUmEhw+rsymPgvtIJaYg1FGc5ZsXFX3P2bOTdN+j52tLJej5iwi4INRh9MS3oOB6Jk5c5VGHw7CwMEaNGlUDIxZqEllSTRB8DMntvvCQJdUE4TzBF0v5hepBBFwQfBDxtQUQARcEn0V8bUFW5BEEQfBRRMAFQRB8FBFwQRAEH0U8cEGoQ8jCC4InSAQuCHWE9PR0IiKiXDaoEgQLEoELQh3Auve3pTjHXGm5goSEJCnOEXSRCFwQ6gCy8IJQGUTABaEOIAsvCJVBBFwQ6gCy8IJQGUTABaEOIAsvCJVBJjEFoQ4gDaqEyiACLgh1BGlQJXiKCLgg1CGkQZXgCeKBC4Ig+Cgi4IIgCD6KCLggCIKPIgIuCILgo9Toosaaph0Hciv59suBP7w4nPMRuUfuIffJNXKPXFOT96i5UqqB/cYaFfCqoGnaJr1VmYVy5B65h9wn18g9ck1duEdioQiCIPgoIuCCIAg+ii8J+Ie1PQAfQO6Re8h9co3cI9fU+j3yGQ9cEARBsMWXInBBEATBChFwQRAEH8UnBFzTtP6apmVqmrZf07SJtT2euoamaU01TVutadouTdN2apr2WG2Pqa6iaVo9TdO2apr2bW2PpS6iadrFmqbN0zRtj6ZpuzVNu6a2x1QX0TRtbOnv2g5N0+ZqmhZUG+Oo8wKuaVo94F1gANAWuEPTtLa1O6o6xzngCaVUW6A7MEbukVMeA3bX9iDqMG8By5VSrYFY5F45oGlaBPAoEKeUag/UA26vjbHUeQEHugL7lVLZSqki4EsgsZbHVKdQSh1VSm0p/bsJ8y9dRO2Oqu6haVoTYCCQWttjqYtomnYRcB0wE0ApVaSU+rtWB1V3qQ8Ea5pWHwgB8mpjEL4g4BHAIaufDyPi5BRN0wxAJ2BjLQ+lLvImMB4oqeVx1FVaAMeBj0ttplRN00Jre1B1DaXUEeB14CBwFPifUur72hiLLwi44CaapoUB84HHlVIna3s8dQlN0wYBvyul9FcOFsAcVXYG3lNKdQLyAZlzskPTtEswuwAtgMZAqKZpd9XGWHxBwI8ATa1+blK6TbBC0zR/zOI9Rym1oLbHUwe5FrhF07QczDbc9ZqmfV67Q6pzHAYOK6Us397mYRZ0wZYbgQNKqeNKqbPAAqBHbQzEFwT8F6ClpmktNE0LwDxZsLiWx1Sn0DRNw+xb7lZK/ae2x1MXUUpNUko1UUoZMP8fWqWUqpWoqa6ilDoGHNI0LaZ00w3ArlocUl3lINBd07SQ0t+9G6ilyd46vyamUuqcpmkPA99hnu2dpZTaWcvDqmtcC9wNbNc0bVvptslKqbTaG5LgozwCzCkNlrKBf9byeOocSqmNmqbNA7ZgzgDbSi2V1UspvSAIgo/iCxaKIAiCoIMIuCAIgo8iAi4IguCjiIALgiD4KCLggiAIPooIuCAIgo8iAi4IguCj/D9HCy/1fZL7vwAAAABJRU5ErkJggg==\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"source": "dbscan = DBSCAN(eps=0.65)",
"metadata": {
"trusted": true
},
"execution_count": 51,
"outputs": []
},
{
"cell_type": "code",
"source": "y_db = dbscan.fit_predict(X)",
"metadata": {
"trusted": true
},
"execution_count": 52,
"outputs": []
},
{
"cell_type": "code",
"source": "y_db",
"metadata": {
"trusted": true
},
"execution_count": 53,
"outputs": [
{
"execution_count": 53,
"output_type": "execute_result",
"data": {
"text/plain": "array([-1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 1, 0, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, -1, -1, 1, 1,\n -1, 1, 1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 2, 1, -1, 1, 2, -1, 1, 1, 1, 2, 1, 1, 1,\n 1, 2, 1, 2, 1, 2, 2, -1, 1, 1, 1, 1, 1, -1, 1, 2, 1,\n 2, -1, -1, 1, 1, 1, 1, -1, 2, 1, -1, 1, 1, 1, 2, 1, 2,\n -1, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2,\n -1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, -1, 2, 2, 2, -1,\n 2, 2, 2, 2, 2, 1, 2, 2, -1, 1, 2, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, -1, 2, 2, 2, 2, 2, 2, 2, -1, 2, 2, 2, 1, 2,\n 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -1, -1, 2,\n 2, 2, 2, 2, -1, -1, -1], dtype=int32)"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": "# plot the 3 clusters\nplt.scatter(\n X[y_db == -1, 0], X[y_db == -1, 1],\n s=50, c='lightblue',\n marker='o', edgecolor='black',\n label='cluster 1'\n)\n\nplt.scatter(\n X[y_db== 0, 0], X[y_db == 0, 1],\n s=50, c='lightgreen',\n marker='o', edgecolor='black',\n label='cluster 2'\n)\n\nplt.scatter(\n X[y_db == 1, 0], X[y_db == 1, 1],\n s=50, c='orange',\n marker='o', edgecolor='black',\n label='cluster 3'\n)\n\nplt.scatter(\n X[y_db == 2, 0], X[y_db == 2, 1],\n s=50, c='yellow',\n marker='o', edgecolor='black',\n label='cluster 4'\n)\n\nplt.scatter(\n X[y_db == 3, 0], X[y_db == 3, 1],\n s=50, c='pink',\n marker='o', edgecolor='black',\n label='cluster 5'\n)\n\nplt.scatter(\n X[y_db == 4, 0], X[y_db == 4, 1],\n s=50, c='cyan',\n marker='o', edgecolor='black',\n label='cluster 6'\n)\n\n\nplt.legend(scatterpoints=1)\n#plt.gca().set_yscale('log')\n#plt.gca().set_xscale('log')",
"metadata": {
"trusted": true
},
"execution_count": 54,
"outputs": [
{
"execution_count": 54,
"output_type": "execute_result",
"data": {
"text/plain": "<matplotlib.legend.Legend at 0x57c38b8>"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 432x288 with 1 Axes>",
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"source": "",
"metadata": {},
"execution_count": null,
"outputs": []
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment