diff --git a/K-Means/AClusteringExample.ipynb b/K-Means/AClusteringExample.ipynb index dfae97078854b9c24f6493d0801e1225eac05bb3..57964430fb153b1d2460959c61e21ad98447109a 100644 --- a/K-Means/AClusteringExample.ipynb +++ b/K-Means/AClusteringExample.ipynb @@ -2,14 +2,15 @@ "cells": [ { "cell_type": "code", - "execution_count": 5, + "execution_count": 18, "id": "chicken-minneapolis", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", - "from sklearn.cluster import KMeans" + "from sklearn.cluster import KMeans\n", + "from sklearn.cluster import Birch" ] }, { @@ -22,7 +23,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 19, "id": "chicken-marshall", "metadata": {}, "outputs": [ @@ -62,7 +63,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 20, "id": "generic-dating", "metadata": {}, "outputs": [ @@ -78,10 +79,10 @@ { "data": { "text/plain": [ - "<matplotlib.collections.PathCollection at 0x12cd0ee80>" + "<matplotlib.collections.PathCollection at 0x12b0973d0>" ] }, - "execution_count": 7, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" }, @@ -99,24 +100,41 @@ } ], "source": [ + "# cog = center of gravity\n", + "# cs = center of gravities\n", + "# k = k cluster\n", + "\n", "# Evaluate k\n", "ks = np.arange(0, 15)\n", + "# Gib die Anzhal der zu erwartenden Cluster an\n", "ks = [2]\n", "\n", + "# für jedes Cluster\n", "for k in ks:\n", + " # definiere die ersten zwei Datenpunkte als Startpunkte\n", " cs = data[0:k].copy()\n", " \n", " terminate = False\n", + " # Deklariere last_cog\n", " last_cog = [np.array([0, 0]) for i in range(k)]\n", " while not terminate:\n", + " # berechne alle Distanzen zwischen Datenpunkten und cs\n", " dist = np.stack([[np.linalg.norm(c-d) for d in data] for c in cs], axis=1)\n", + " # finde die kleinste Distanz eines Datenpunkts zu den cs und gebe das dazugehörige Cluster in einen Array\n", " z = np.array([np.argmin(d) for d in dist])\n", + " # i ist von 0 bis k und wenn z gleich 0 ist gehört der Datenpunkt dem nullten Cluster an,\n", + " # bei eins, dem ersten und so weiter. So besteht df aus einem Array mit Unterarrays mit Datenpukten der einzelnen Cluster\n", " df = [data[z == i] for i in range(k)]\n", + " # berechne die neuen Schwerpunkte\n", " current_cog = [np.sum(d, axis=0)/len(d) for d in df]\n", + " # berechne die Differenz zwischen dem aktuellen und dem letzten cog\n", " diff_cog = np.sum(np.abs([last - current for last, current in zip(last_cog, current_cog)]))\n", + " # setzte den letzten cog auf den aktuellen\n", " last_cog = current_cog\n", - " print(diff_cog)\n", + " #print(diff_cog)\n", + " # setze den neuen Startpunkt auf den aktuellen cog\n", " cs = current_cog\n", + " # wenn die Differenz unter einer gewissen Schwelle ist, beende den Algorithmus\n", " if diff_cog < 0.3:\n", " terminate = True\n", " \n", @@ -126,6 +144,22 @@ "# print(current_cog)" ] }, + { + "cell_type": "markdown", + "id": "printable-designer", + "metadata": {}, + "source": [ + "# Animated K-Means" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "upper-moment", + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "markdown", "id": "czech-romance", @@ -136,49 +170,23 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 16, "id": "saved-scope", "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[5.75036467 4.27404839]\n", - " [5.28040876 4.00709183]\n", - " [5.48519097 4.6457209 ]\n", - " [5.9807372 4.71990938]\n", - " [5.96165719 4.83556922]\n", - " [5.72478994 4.28187783]\n", - " [5.54122686 4.21521817]\n", - " [5.2768912 4.63933138]\n", - " [5.16065201 4.80505483]\n", - " [5.96992541 4.96367087]\n", - " [5.51606859 4.15052483]\n", - " [5.11586561 4.48221239]\n", - " [5.62348976 4.89471586]\n", - " [5.77668311 4.42271691]\n", - " [5.6130033 4.58950206]\n", - " [5.9172977 4.02449068]\n", - " [5.03959288 4.67345989]\n", - " [5.52858926 4.91908862]\n", - " [5.45933588 4.82682533]\n", - " [5.06234958 4.88552027]]\n" - ] - }, { "data": { "text/plain": [ - "<matplotlib.collections.PathCollection at 0x12cd73070>" + "<matplotlib.collections.PathCollection at 0x12b049bb0>" ] }, - "execution_count": 8, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] @@ -200,18 +208,60 @@ "plt.scatter(df2[:, 0], df2[:, 1], color='pink')" ] }, + { + "cell_type": "markdown", + "id": "broke-shark", + "metadata": {}, + "source": [ + "# BIRCH with Scikit-Learn" + ] + }, { "cell_type": "code", - "execution_count": null, - "id": "partial-faculty", + "execution_count": 17, + "id": "included-county", "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "<matplotlib.collections.PathCollection at 0x12ac68a30>" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAD4CAYAAADiry33AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAYQ0lEQVR4nO3dfYxcV3nH8e/PeXHiFExiG0PteNeovBWZl3QUoEQQMIQEEoeqSDV1SkCgbWigvIgCkaWkBFmipWotkCCsUiooDgFSTE1EQqKkKVIhlF1iYkgghMR2soV4E4N5cQQ4fvrH3CHj2Zmde3fn5d4zv4+02tl7z905x9d65uxzn3uuIgIzM0vXkmF3wMzM+suB3swscQ70ZmaJc6A3M0ucA72ZWeKOH3YH2lm5cmWMj48PuxtmZpUxPT39cESsarevlIF+fHycqampYXfDzKwyJO3rtM+pGzOzxDnQm5klzoHezCxxDvRmZolzoDczS5wDvZn1zI49OxjfPs6SDy5hfPs4O/bsGHaXjJKWV5pZ9ezYs4OJr0xw+HeHAdh3aB8TX5kAYMuGLcPs2sjzjN7MCuk0a996y9bfB/mGw787zNZbtvbl/Sw/z+jNLLf5Zu37D+1ve0yn7Yt9v5T+StixZwdbb9nK/kP7Wbd8Hds2buvp+DyjN7Pc5pu1r1u+ru0xnbbnman366+EMml8mO07tI8gfv9h1su/XBzozSy3+Wbt2zZuY9kJy47ZvuyEZWzbuG1O+7zBrR9/JZTNID7MHOjNLHcefL5Z+5YNW5i8YJKx5WMIMbZ8jMkLJtumIPIGt6J/JVTRID7MHOjNRlyR1EG3WfuWDVvY+669HL3iKHvftbdjnjlvcCvyV0JVDeLDzIHebMQVSR0UmbXPJ29w69X79dNiq4IG8WGmiOjZL+uVWq0WXqbYbDCWfHAJwdw4IMTRK4725T1bq2mgHtzKFsS76dU4elF1I2k6Imrt9nlGbzbihpEHH8RMfRD19726kJo35bVQrqM3G3HbNm5rOyvtdx58y4YtfZu9D6r+vipVQZ7Rm424KuTBixpU/X1VqoJyzegl7QV+CTwGHGnNA0n6O6Dxv+J44NnAqog42O1YMxu+fs6ue6FoDntQM+1h/TVUVJHUzcsj4uF2OyLiI8BHACRdALw7Ig7mOdbMbD4LScOsW76OfYfmPkK11zPtxvv3c/mCXuhH6uYNwOf68HvNbAQtJA0zyPr7fl9I7YW8gT6AmyRNS5ro1EjSMuBc4D+KHmtm1s5C0jApXndYjLypm7MiYkbSk4GbJf0gIr7ept0FwP+0pG1yHZt9CEwArFtXrgsZZjY8C03DlP26wyDlmtFHxEz2/QCwEzizQ9PNtKRt8h4bEZMRUYuI2qpVq/L13sySNwrLIPRb10Av6RRJT2i8Bs4Bvtem3XLgZcB/Fj3WzKwTp2EWL0/qZjWwU1Kj/TURcaOkSwAi4qqs3Z8BN0XEr7sd26vOm9locBpmcbzWjZlZQf1+ItRCzLfWjZdAMDMroIqPN/QSCGZmBVTx8YYO9GZmBVRlIbNmDvRmloxBLE1clYXMmjnQm1kSijwScTGqWNfvQG9mSRhU7ryKdf2uujGzJAwyd161un7P6M0sCVXMnQ+KA72ZFTaIi55FVTF3PigO9GZWyKAuehZVxdz5oHgJBDMrZHz7eNtlg8eWj7H3XXsH3yED5l8CwTN6MyukijcMjToHejMrxBc9q8eB3swK8UXP6nGgN7NCfNGzenwx1swsAb4Ya2Y2whzozawSyniTVjtl7GeuQC9pr6Q9knZLmpNTkXS2pEPZ/t2SLm/ad66kH0q6V9IHetl5MxsNZb1Jq1VZ+5krRy9pL1CLiIc77D8beG9EnN+y/TjgHuBVwIPAt4E3RMRd872fc/Rm1qwqN2kNs5/DzNGfCdwbEfdFxG+Ba4EL+/yeZpaYqtykVdZ+5g30AdwkaVrSRIc2L5b0XUk3SHpOtm0N8EBTmwezbXNImpA0JWlqdnY2Z7fMrAoWm7euyk1aZe1n3kB/VkScAZwHXCrppS37vwOMRcTzgI8BXy7akYiYjIhaRNRWrVpV9HAzK6le5K2rcpNWWfuZK9BHxEz2/QCwk3pKpnn/LyLiV9nrrwInSFoJzACnNzVdm20zsxHRiyc/VeUmrbL2s+vFWEmnAEsi4pfZ65uBKyPixqY2TwEeioiQdCZwHTAGNC7GbqQe4L8N/GVEfH++9/TFWLN0LPngEoK5cUaIo1ccHUKP0jTfxdg8jxJcDeyU1Gh/TUTcKOkSgIi4Cng98DZJR4BHgc1R/wQ5IuntwNeoB/1PdQvyZpaWdcvXta1EGXbeepR4CQQz66tGjr45fbPshGWlSGmkxEsgmNnQlDVvPUo8ozczS4Bn9GZmI8yB3swscQ70ZmaJc6A3M0ucA72ZWeIc6M3MEudAb2aWOAd6M7PEOdCbmSXOgd7MLHEO9GZmiXOgNzNLnAO9mVniHOjNzBLnQG9mNmQ79uxgfPs4Sz64hPHt44UenJ5HnkcJImkv8EvgMeBI65rHkrYA7weUtXtbRHw3z7FmZqOs9Qlc+w7tY+IrEwA9ezhLkRn9yyPi+R0C9f3AyyJiA/AhYLLAsWZmI2vrLVuPecwiwOHfHWbrLVt79h65ZvTdRMQ3mn68HVjbi99rZpa6/Yf2F9q+EHln9AHcJGla0kSXtm8Bbih6rKQJSVOSpmZnZ3N2y8ys2tYtX1do+0LkDfRnRcQZwHnApZJe2q6RpJdTD/TvL3psRExGRC0iaqtWrco/AjOzCtu2cRvLTlh2zLZlJyxj28ZtPXuPXIE+Imay7weAncCZrW0kPRe4GrgwIh4pcqyZ2ajasmELkxdMMrZ8DCHGlo8xecFkzy7EQo4cvaRTgCUR8cvs9TnAlS1t1gFfAv4qIu4pcqyZ2ajbsmFLTwN7qzwXY1cDOyU12l8TETdKugQgIq4CLgdWAB/P2jXKKNse2/NRmFml7Nizg623bGX/of2cdvJpABx89CDrlq9j28ZtfQ16o0gRMew+zFGr1WJqamrY3TCzPmitG2+17IRlPU9djAJJ051K2H1nrJkNVLu68Wa9riE3B3ozG7A89eG9rCE3B3ozG7A89eG9qiHv9xoyVeFAb2YD1a5uvFmvasgb1wL2HdpHEL9fQ2YUg70DvZkNVGvd+IqTV7Di5BU9ryEfxBoyVdGTtW7MzIrod904DGYNmarwjN7MkjSINWSqwoHezJI0iDVkqsKB3sySNIg1ZKrCd8aaWeU0L6HgZRPq5rsz1hdjzaxSBvHovdQ4dWNmleKyyeIc6M2sUlw2WZwDvZlVissmi3OgN7NKcdlkcQ70ZlYpLpsszuWVZmYJ8INHzMxGWK5AL2mvpD2SdkuaM9VW3Ucl3SvpTklnNO27WNKPsq+Le9l5MzPrrsgNUy+PiIc77DsPeHr29ULgE8ALJZ0GXAHUgACmJe2KiJ8tos9mZlZAr1I3FwKfibrbgSdJeirwauDmiDiYBfebgXN79J5mZpZD3kAfwE2SpiVNtNm/Bnig6ecHs22dts8haULSlKSp2dnZnN0yM7Nu8qZuzoqIGUlPBm6W9IOI+HovOxIRk8Ak1Ktuevm7bUAeegTun4Hf/BaWngjr18DqFcPuldnIyzWjj4iZ7PsBYCdwZkuTGeD0pp/XZts6bbfUPPQI3LOvHuSh/v2effXtZjZUXQO9pFMkPaHxGjgH+F5Ls13AG7PqmxcBhyLiJ8DXgHMknSrp1OzYr/V0BFYO98/A0aPHbjt6tL7dzIYqT+pmNbBTUqP9NRFxo6RLACLiKuCrwGuAe4HDwJuzfQclfQj4dva7royIg70dgpVCYyafd7uZDUzXQB8R9wHPa7P9qqbXAVza4fhPAZ9aRB9HTxVz3UtPbB/Ul544+L6Y2TF8Z2zZVDXXvX4NLGn577RkSX27mQ2VA33ZVDXXvXoFPGPs8Rn80hPrP5f9LxGzEeBHCZZNkVx32VI8q1c4sJuVUHqBvmzBr6i8ue5Giqcx+2+keKBa4zWzvksrdVPV/HazvLnuqqZ4zGzg0gr0KQS/vLlulzOaWU5ppW5SCX55ct0uZzSznNKa0XcKcikGP5czmllOac3o16859gIlpBv8GjP+slx4rvpFcLOEpRXoyxb85tOLwFiWckZXAJmVWlqBHsoT/OaTWmCc7yJ4Fcdjlpi0cvRVkUJ1ULNULoKbJSq9GX1ew8wppxYYXQFkVmqjOaMf9o1VqVUHuQLIrNRGM9APO3WSWmD0gmZmpTaaqZthp06qVB2UVxUugpuNqNEM9GXIKTswmtmA5E7dSDpO0h2Srm+z718k7c6+7pH086Z9jzXt29Wjfi9OaqkTM7N5FJnRvxO4G3hi646IeHfjtaR3AC9o2v1oRDx/oR3sixRTJ2ZmHeQK9JLWAq8FtgHv6dL8DcAVi+xX/zl1YmYjIm/qZjvwPuDofI0kjQHrgVubNp8kaUrS7ZJeN8+xE1m7qdnZ2ZzdMjOzbrrO6CWdDxyIiGlJZ3dpvhm4LiIea9o2FhEzkp4G3CppT0T8uPXAiJgEJgFqtVrkHYCVjBc3MyudPDP6lwCbJO0FrgVeIemzHdpuBj7XvCEiZrLv9wG3cWz+3lIy7BvRzKytroE+Ii6LiLURMU49kN8aERe1tpP0LOBU4JtN206VtDR7vZL6h8ZdPeq7lc2wb0Qzs7YWXEcv6UpgKiIaJZObgWsjojnt8mzgk5KOUv9Q+XBEONCnatg3oplZW4UCfUTcRj39QkRc3rLv79u0/wawYcG9K8K54eErw41oZjZHGmvdODdcDr4RzayU0gj0zg2Xgxc3MyulNNa6qXJuOLWUk29EMyudNAL9oHLDvQ7KqT1S0MxKKY3UzSByw/24DuCUk5kNQBqBfhC54X4E5SqnnMysMtJI3UD/c8P9CMouRzSzAUhjRj8I/XjOq8sRzWwA0pnR99v6NcdeOIXFB+XFrIufWrWOmfWNA31e/XpYyUJSTq7WMbMCHOiLKEuN+HwXhsvQPzMrFefoq8jVOmZWgAN9FfXjwrCZJcuBvopcrWNmBThHX0X9ujBsZklyoK+qslwYNrPSc+rGzCxxDvRmZonLHeglHSfpDknXt9n3JkmzknZnX29t2nexpB9lXxf3quNmZpZPkRz9O4G7gSd22P/5iHh78wZJpwFXADUggGlJuyLiZwvprJmZFZdrRi9pLfBa4OqCv//VwM0RcTAL7jcD5xb8Hb3x0CNw+53w31P1736erJmNiLypm+3A+4Cj87T5c0l3SrpO0unZtjXAA01tHsy2zSFpQtKUpKnZ2dmc3crJDw83sxHWNdBLOh84EBHT8zT7CjAeEc+lPmv/dNGORMRkRNQiorZq1aqih8/PT3IysxGWZ0b/EmCTpL3AtcArJH22uUFEPBIRv8l+vBr4k+z1DHB6U9O12bbB8towZjbCugb6iLgsItZGxDiwGbg1Ii5qbiPpqU0/bqJ+0Rbga8A5kk6VdCpwTrZtsLw2jJmNsAXfGSvpSmAqInYBfytpE3AEOAi8CSAiDkr6EPDt7LArI+Lg4rq8AP14aIiZWUUoIobdhzlqtVpMTU319pf6iUxz+d/ELBmSpiOi1m7f6Kx147VhjuWnVJmNDC+BMKpciWQ2MhzoR5UrkcxGhgP9qHIlktnIcKAfVX5KldnIGJ2LsXYsP6XKbGQ40I8yVyKZjQSnbszMEudAb2aWOAd6M7PEOdCbmSXOgd7MLHEO9GZmiXOgNzNLnOvoR4GXIzYbaQ70qWu3HPEP7q9/OeibjQSnblLXbjnihsYa9A89Mtg+mdlA5Q70ko6TdIek69vse4+kuyTdKekWSWNN+x6TtDv72tWrjltO3ZYd9hr0Zskrkrp5J/WHfj+xzb47gFpEHJb0NuAfgb/I9j0aEc9fVC9t4Zae2D3Yew16s6TlmtFLWgu8Fri63f6I+K+IOJz9eDuwtjfds0VrtxxxK69Bb5a0vKmb7cD7gA7J3mO8Bbih6eeTJE1Jul3S6zodJGkiazc1Ozubs1vW1eoV8IyxzsHca9CbJa9r6kbS+cCBiJiWdHaXthcBNeBlTZvHImJG0tOAWyXtiYgftx4bEZPAJECtVov8Q0hUL0sim5cjdqml2cjJk6N/CbBJ0muAk4AnSvpsRFzU3EjSK4GtwMsi4jeN7RExk32/T9JtwAuAOYHemrQribxnX/31YoOy16A3GzldUzcRcVlErI2IcWAzcGubIP8C4JPApog40LT9VElLs9crqX9o3NXD/qepXUmkq2PMbIEWfMOUpCuBqYjYBXwE+APgi5IA9kfEJuDZwCclHaX+ofLhiHCg76ZTFYyrY8xsAQoF+oi4Dbgte3150/ZXdmj/DWDDwrs3ojqVRLo6xswWwHfGllG7kkhXx5jZAnmtmzJqXCx1dYyZ9YADfdm0lj8+a70DvJktigN9mfSzrNLMRpZz9GXiskoz6wMH+jJxWaWZ9YEDfZl0Kp90WaWZLYIDfZm4rNLM+sAXY8vEZZVm1gcO9GXjRcfMrMecujEzS5wDvZlZ4hzozcwS50BvZpY4B3ozs8S56sYWxs+eNasMB3orzouvmVWKA30RnsXWzbf42ij+e5iVXO4cvaTjJN0h6fo2+5ZK+rykeyV9S9J4077Lsu0/lPTqHvV78Bqz2MYCY41Z7EOPDLdfw+DF18wqpcjF2HcCd3fY9xbgZxHxR8C/AP8AIOmPgc3Ac4BzgY9LOm7h3R0iLyH8OC++ZlYpuQK9pLXAa4GrOzS5EPh09vo6YKMkZduvjYjfRMT9wL3AmYvr8pB4Fvs4L75mVil5Z/TbgfcBRzvsXwM8ABARR4BDwIrm7ZkHs21zSJqQNCVpanZ2Nme3Bsiz2MetXgHPGHt87EtPrP/s/LxZKXW9GCvpfOBARExLOrtfHYmISWASoFarRb/eZ8HWrzm20gRGexbrxdfMKiPPjP4lwCZJe4FrgVdI+mxLmxngdABJxwPLgUeat2fWZtuqx7NYM6uorjP6iLgMuAwgm9G/NyIuamm2C7gY+CbweuDWiAhJu4BrJP0z8IfA04H/7VnvB82zWDOroAXX0Uu6EpiKiF3AvwL/Lule4CD1Shsi4vuSvgDcBRwBLo2IxxbfbTMzy0sR5UuH12q1mJqaGnY3zMwqQ9J0RNTa7fOiZmZmiXOgNzNLnAO9mVniSpmjlzQL7MvZfCXwcB+7M2geT7mlNh5Ib0yjOp6xiFjVbkcpA30RkqY6XYCoIo+n3FIbD6Q3Jo9nLqduzMwS50BvZpa4FAL95LA70GMeT7mlNh5Ib0weT4vK5+jNzGx+KczozcxsHg70ZmaJq0ygl7RX0h5JuyXNWQhHdR/Nnk97p6QzhtHPvHKM52xJh7L9uyVdPox+5iXpSZKuk/QDSXdLenHL/qqdn27jqdr5eWZTX3dL+oWkd7W0qcw5yjmeqp2jd0v6vqTvSfqcpJNa9nd8NndXEVGJL2AvsHKe/a8BbgAEvAj41rD7vMjxnA1cP+x+FhjPp4G3Zq9PBJ5U8fPTbTyVOj8tfT8O+Cn1G2wqe45yjKcy54j6k/fuB07Ofv4C8KaWNn8DXJW93gx8Pu/vr8yMPocLgc9E3e3AkyQ9ddidGgWSlgMvpb5cNRHx24j4eUuzypyfnOOpso3AjyOi9e7zypyjFp3GUzXHAydnD29aBvxfy/5Oz+buqkqBPoCbJE1LmmizP/fzaUui23gAXizpu5JukPScQXauoPXALPBvku6QdLWkU1raVOn85BkPVOf8tNoMfK7N9iqdo2adxgMVOUcRMQP8E7Af+AlwKCJuamnW6dncXVUp0J8VEWcA5wGXSnrpsDu0SN3G8x3qf4o+D/gY8OUB96+I44EzgE9ExAuAXwMfGG6XFiXPeKp0fn5P0onAJuCLw+5LL3QZT2XOkaRTqc/Y11N/Gt8pklqf5LdglQn02SceEXEA2Amc2dKkUs+n7TaeiPhFRPwqe/1V4ARJKwfe0XweBB6MiG9lP19HPVA2q9L56Tqeip2fZucB34mIh9rsq9I5aug4noqdo1cC90fEbET8DvgS8KctbTo9m7urSgR6SadIekLjNXAO8L2WZruAN2aVAy+i/qfPTwbc1VzyjEfSUxr5N0lnUj9XuU7qoEXET4EHJD0z27SR+uMjm1Xm/OQZT5XOT4s30DnNUZlz1KTjeCp2jvYDL5K0LOvzRuDuljaNZ3ND07O58/zyBT8zdsBWAzuzc3Y8cE1E3CjpEoCIuAr4KvWqgXuBw8Cbh9TXPPKM5/XA2yQdAR4FNuc9qUPyDmBH9qf0fcCbK3x+oPt4qnZ+GpOKVwF/3bStsucox3gqc44i4luSrqOebjoC3AFMKsezufPwEghmZomrROrGzMwWzoHezCxxDvRmZolzoDczS5wDvZlZ4hzozcwS50BvZpa4/wdC1ypiKuLr7wAAAABJRU5ErkJggg==\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "brc = Birch(n_clusters=None)\n", + "brc.fit(data)\n", + "data_predicted = brc.predict(data)\n", + "\n", + "# \n", + "df1 = data[data_predicted == 0]\n", + "df2 = data[data_predicted == 1]\n", + "#print(df2)\n", + "plt.scatter(df1[:, 0], df1[:, 1], color='green')\n", + "plt.scatter(df2[:, 0], df2[:, 1], color='pink')" + ] }, { "cell_type": "code", "execution_count": null, - "id": "included-county", + "id": "third-burden", "metadata": {}, "outputs": [], "source": []