{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Uczenie maszynowe\n", "# 7. Uczenie nienadzorowane" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "Wyobraźmy sobie, że mamy następujący problem:\n", "\n", "Mamy zbiór okazów roślin i dysponujemy pewnymi danymi na ich temat (długość płatków kwiatów, ich szerokość itp.), ale zupełnie **nie wiemy**, do jakich gatunków one należą (nie wiemy nawet, ile jest tych gatunków).\n", "\n", "Chcemy automatycznie podzielić zbiór posiadanych okazów na nie więcej niż $k$ grup (klastrów) ($k$ ustalamy z góry), czyli dokonać **grupowania (klastrowania; analizy skupień)** zbioru przykładów.\n", "\n", "Jest to zagadnienie z kategorii uczenia nienadzorowanego.\n", "\n", "W celu jego rozwiązania użyjemy algorytmu $k$ średnich." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## 7.1. Algorytm $k$ średnich" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [], "source": [ "# Przydatne importy\n", "\n", "import ipywidgets as widgets\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas\n", "import random\n", "\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " x1 x2\n", "0 1.4 3.4\n", "1 1.5 3.7\n", "2 5.6 3.1\n", "3 5.1 3.2\n", "4 4.5 2.5\n", ".. ... ...\n", "145 1.2 4.0\n", "146 1.4 3.5\n", "147 5.8 3.0\n", "148 5.4 3.1\n", "149 5.7 3.3\n", "\n", "[150 rows x 2 columns]\n" ] } ], "source": [ "# Wczytanie danych (gatunki kosaćców)\n", "\n", "data_iris_raw = pandas.read_csv(\"iris.csv\")\n", "\n", "# Nie używamy w ogóle kolumny ostatniej kolumny (\"Gatunek\"),\n", "# ponieważ chcemy dokonać uczenia nienadzorowanego.\n", "# Przyjmujemy, że w ogóle nie dysponujemy danymi na temat gatunku,\n", "# mamy tylko 150 nieznanych roślin.\n", "\n", "# Żeby łatwiej pokazać akgorytm k średnich, ograniczmy się tylko do dwóch cech.\n", "\n", "data_iris = pandas.DataFrame()\n", "data_iris[\"x1\"] = data_iris_raw[\"pl\"]\n", "data_iris[\"x2\"] = data_iris_raw[\"sw\"]\n", "\n", "print(data_iris)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# Dla uproszczenia oznaczeń, cały zbiór zapisuję do zmiennej X,\n", "# a jego kolumny (cechy) do zmiennych X1 i X2\n", "\n", "X = data_iris.values\n", "X1 = data_iris[\"x1\"].tolist()\n", "X2 = data_iris[\"x2\"].tolist()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [], "source": [ "# Wykres danych\n", "def plot_unlabeled_data(X1, X2, x1label=r\"$x_1$\", x2label=r\"$x_2$\"):\n", " fig = plt.figure(figsize=(16 * 0.7, 9 * 0.7))\n", " ax = fig.add_subplot(111)\n", " fig.subplots_adjust(left=0.1, right=0.9, bottom=0.1, top=0.9)\n", " ax.scatter(X1, X2, c=\"k\", marker=\"o\", s=50, label=\"Dane\")\n", " ax.set_xlabel(x1label)\n", " ax.set_ylabel(x2label)\n", " ax.margins(0.05, 0.05)\n", " return fig" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA8cAAAI5CAYAAACM4EiHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABXLklEQVR4nO3dcXwc9X3n//fMDljbrFeH9AjIaxuaHi4QsAlgHtTImFBoG6B5LFpfiHWk0CT0ccLiChL00ZgH17SJE9NrIpW2zBLSBvo4atzA44A6CSQ0CWRXhJ6BcrHJQeHSgrGwuAdKdhCPiYN25/cHP1SE7PVovDuzM/N6Ph77h9bfr76f+c54Zt+amR3D8zxPAAAAAACkmBl1AQAAAAAARI1wDAAAAABIPcIxAAAAACD1CMcAAAAAgNQjHAMAAAAAUo9wDAAAAABIPcIxAAAAACD1CMcAAAAAgNQjHAMAAAAAUs+KuoAoNBoNTU5OaunSpTIMI+pyAAAAAABt4nme3njjDRUKBZlmk/PDXgfZtm2bJ8m77rrrDtnmzjvv9CTNey1ZsmRR4+zdu3fB7+DFixcvXrx48eLFixcvXsl97d27t2lO7Jgzx7t27dJXvvIVrVmz5rBt8/m8nn/++bmfF3v2d+nSpZKkvXv3Kp/PL65QAAAAAEBsOI6jlStXzuXAQ+mIcDwzM6MrrrhCX/3qV7V169bDtjcMQ319fYHHeydM5/N5wjEAAAAApMDhTqp2xBdyDQ8P69JLL9VFF13kq/3MzIxOOOEErVy5UsViUc8++2zT9gcOHJDjOPNeAAAAAAC8I/JwvGPHDj399NPatm2br/YnnXSSvva1r+nBBx/U3XffrUajoXPPPVevvPLKIfts27ZN3d3dc6+VK1e2qnwAAAAAQAIYnud5UQ2+d+9erV27Vo888sjcvcYf/vCH9aEPfUh//ud/7ut3vPXWWzrllFM0ODioz3/+8wdtc+DAAR04cGDu53euOa/ValxWDQAAAAAJ5jiOuru7D5v/Ir3n+KmnntJrr72mM888c+69er2uH/zgB/qrv/orHThwQJlMpunvOOqoo3TGGWfoxRdfPGSbJUuWaMmSJS2rGwAAAACQLJGG4wsvvFC7d++e994nP/lJnXzyyfrDP/zDwwZj6e0wvXv3bl1yySXtKhMAAAAAkHCRhuOlS5fqtNNOm/fe+973PvX29s69f+WVV2r58uVz9yR/7nOf06/92q/pxBNP1M9+9jP92Z/9mV566SVdffXVodcPAAAAAEiGjniUUzMvv/yyTPPfvzfspz/9qX7v935P+/fv1zHHHKOzzjpLjz/+uD74wQ9GWCUAAAAAIM4i/UKuqPi9IRsAAAAAEG9+81/kj3ICAAAAACBqhGMAAAAAQOoRjgEAAAAAqUc4BgAAAACkHuEYAAAAAJB6hGMAAAAAQOoRjhELrutqampKrutGXQoAAACABCIco6NVq1WVSiXlcjn19fUpl8upVCppYmIi6tIAAAAAJAjhGB2rXC5rw4YN2rlzpxqNhiSp0Who586dOu+883T77bdHXCEAAACApCAcoyNVq1UNDw/L8zzNzs7O+7fZ2Vl5nqfNmzdzBhkAAABASxCO0ZHGxsaUyWSatslkMhofHw+pIgAAAABJZnie50VdRNgcx1F3d7dqtZry+XzU5eA9XNdVLpebu5S6GdM0NTMzo2w2G0JlAAAAAOLGb/7jzDE6juM4voKx9PY9yI7jtLkiAAAAAElHOEbHyefzMk1/m6Zpmpz9BwAAAHDECMfoONlsVsViUZZlNW1nWZYGBga4pBoAAADAESMcoyONjo6qXq83bVOv1zUyMhJSRQAAAACSjHCMjrR+/XrZti3DMBacQbYsS4ZhyLZt9ff3R1QhAAAAgCQhHKNjDQ0NqVKpqFgszt2DbJqmisWiKpWKhoaGIq4QAAAAQFLwKCe+zCkWXNeV4zjK5/PcYwwAAADAN7/5r/k3HgEdIpvNEooBAAAAtA2XVQMAAAAAUo9wDAAAAABIPcIxAAAAACD1CMcAAAAAgNQjHAMAAAAAUo9wDAAAAABIPcIxAAAAACD1CMcAAAAAgNQjHAMAAAAAUo9wDAAAAABIPcIxAAAAACD1CMcAAAAAgNQjHAMAAAAAUo9wDAAAAABIPcIxAAAAACD1CMcAAAAAgNQjHAMAAAAAUo9wDAAAAABIPcIxAAAAACD1CMcAAAAAgNQjHAMAAAAAUo9wDAAAAABIPcIxAAAAACD1CMcAAAAAgNQjHCN0rutqampKrutGXQoAAAAASCIcI0TValWlUkm5XE59fX3K5XIqlUqamJiIujQAAAAAKUc4RijK5bI2bNignTt3qtFoSJIajYZ27typ8847T7fffnvEFQIAAABIM8Ix2q5arWp4eFie52l2dnbev83OzsrzPG3evJkzyAAAAAAiQzhG242NjSmTyTRtk8lkND4+HlJFAAAAADCf4XmeF3URYXMcR93d3arVasrn81GXk2iu6yqXy81dSt2MaZqamZlRNpsNoTIAAAAAaeA3/3HmGG3lOI6vYCy9fQ+y4zhtrggAAAAAFiIco63y+bxM099mZpomZ/IBAAAARIJwjLbKZrMqFouyLKtpO8uyNDAwwCXVAAAAACJBOEbbjY6Oql6vN21Tr9c1MjISUkUAAAAAMB/hGG23fv162bYtwzAWnEG2LEuGYci2bfX390dUIQAAAIC0IxwjFENDQ6pUKioWi3P3IJumqWKxqEqloqGhoYgrBAAAAJBmPMqJL4AKneu6chxH+Xyee4wBAAAAtJXf/Nf8W5KANshms4RiAAAAAB2Fy6oBAAAAAKlHOAYAAAAApB7hGAAAAACQeoRjAAAAAEDqEY4BAAAAAKlHOAYAAAAApB7hGLHguq6mpqbkum7UpQAAAABIIMIxOlq1WlWpVFIul1NfX59yuZxKpZImJiaiLg0AAABAghCO0bHK5bI2bNignTt3qtFoSJIajYZ27typ8847T7fffnvEFQIAAABICsIxOlK1WtXw8LA8z9Ps7Oy8f5udnZXnedq8eTNnkAEAAAC0BOEYHWlsbEyZTKZpm0wmo/Hx8ZAqAgAAAJBkhud5XtRFhM1xHHV3d6tWqymfz0ddDt7DdV3lcrm5S6mbMU1TMzMzymazIVQGAAAAIG785j/OHKPjOI7jKxhLb9+D7DhOmysCAAAAkHSEY3ScfD4v0/S3aZqmydl/AAAAAEeMcIyOk81mVSwWZVlW03aWZWlgYIBLqgEAAAAcMcIxOtLo6Kjq9XrTNvV6XSMjIyFVBAAAACDJCMfoSOvXr5dt2zIMY8EZZMuyZBiGbNtWf39/RBUCAAAASBLCMTrW0NCQKpWKisXi3D3IpmmqWCyqUqloaGgo4goBAAAAJAWPcuLLnGLBdV05jqN8Ps89xgAAAAB885v/mn/jEdAhstksoRgAAABA23BZNQAAAAAg9QjHAAAAAIDUIxwDAAAAAFKPcAwAAAAASD3CMQAAAAAg9QjHkOu6mpqakuu6UZcCAAAAAJHoqHB8yy23yDAMXX/99U3b3XvvvTr55JPV1dWl1atX61vf+lY4BSZMtVpVqVRSLpdTX1+fcrmcSqWSJiYmoi4NAAAAAELVMeF4165d+spXvqI1a9Y0bff4449rcHBQn/70p/XP//zPuuyyy3TZZZdpz549IVWaDOVyWRs2bNDOnTvVaDQkSY1GQzt37tR5552n22+/PeIKAQAAACA8HRGOZ2ZmdMUVV+irX/2qjjnmmKZtb731Vn3kIx/RH/zBH+iUU07R5z//eZ155pn6q7/6q5Cqjb9qtarh4WF5nqfZ2dl5/zY7OyvP87R582bOIAMAAABIjY4Ix8PDw7r00kt10UUXHbbtD3/4wwXtfuu3fks//OEP21Ve4oyNjSmTyTRtk8lkND4+HlJFAAAAABAtK+oCduzYoaefflq7du3y1X7//v067rjj5r133HHHaf/+/Yfsc+DAAR04cGDuZ8dxghWbAK7r6sEHH5y7lPpQZmdndf/998t1XWWz2ZCqAwAAAIBoRHrmeO/evbruuuv0d3/3d+rq6mrbONu2bVN3d/fca+XKlW0bq9M5jnPYYPyORqOR6j8kAAAAAEiPSMPxU089pddee01nnnmmLMuSZVl67LHH9Bd/8ReyLEv1en1Bn76+Pk1NTc17b2pqSn19fYccZ8uWLarVanOvvXv3tnxZ4iKfz8s0/a120zSVz+fbXBEAAAAARC/ScHzhhRdq9+7deuaZZ+Zea9eu1RVXXKFnnnnmoPfFrlu3Tt/97nfnvffII49o3bp1hxxnyZIlyufz815plc1mVSwWZVnNr6i3LEsDAwNcUg0AAAAgFSK953jp0qU67bTT5r33vve9T729vXPvX3nllVq+fLm2bdsmSbruuut0/vnn68tf/rIuvfRS7dixQ08++aTuuOOO0OuPq9HRUT3wwANN29TrdY2MjIRTEAAAAABErCO+rbqZl19+Wa+++urcz+eee662b9+uO+64Q6effrruu+8+PfDAAwtCNg5t/fr1sm1bhmEsOINsWZYMw5Bt2+rv74+oQgAAAAAIl+F5nhd1EWFzHEfd3d2q1WqpvsR6YmJC4+Pjuv/++9VoNGSapgYGBjQyMkIwBgAAAJAIfvMf4TjF4fgdruvKcRzl83nuMQYAAACQKH7zX+TPOUb0stksoRgAAABAqnX8PccAAAAAALQb4RgAAAAAkHqEYwAAAABA6hGOAQAAAACpRzgGAAAAAKQe4RiBua6rqakpua4bdSktl+RlAwAAALAQ4RiLVq1WVSqVlMvl1NfXp1wup1KppImJiahLO2JJXjYAAAAAh0Y4xqKUy2Vt2LBBO3fuVKPRkCQ1Gg3t3LlT5513nm6//faIKwwuycsGAAAAoDnD8zwv6iLC5jiOuru7VavVlM/noy4nNqrVqjZs2KBmm4xhGKpUKurv7w+xsiOX5GUDAAAA0sxv/uPMMXwbGxtTJpNp2iaTyWh8fDykilonycsGAAAA4PA4c8yZY19c11Uul5u73LgZ0zQ1MzOjbDYbQmVHLsnLBgAAAKQdZ47RUo7j+AqP0tv36TqO0+aKWifJywYAAADAH8IxfMnn8zJNf5uLaZqxOiOf5GUDAAAA4A/hGL5ks1kVi0VZltW0nWVZGhgYiNVlx0leNgAAAAD+EI7h2+joqOr1etM29XpdIyMjIVXUOkleNgAAAACHRziGb+vXr5dt2zIMY8FZVsuyZBiGbNuO5aOOkrxsAAAAAA6PcIxFGRoaUqVSUbFYnLtP1zRNFYtFVSoVDQ0NRVxhcEleNgAAAADN8SgnvlwpMNd15TiO8vl84u7DTfKyAQAAAGniN/81/wYioIlsNpvY4JjkZQMAAACwEJdVAwAAAABSj3AMAAAAAEg9wjEAAAAAIPUIxwAAAACA1CMcAwAAAABSj3CMWHBdV1NTU3Jdt6P7BRX2eAAAAFi8OHxmi0ONnYpwjI5WrVZVKpWUy+XU19enXC6nUqmkiYmJjuoXVNjjAQAAYPHi8JktDjV2PC+FarWaJ8mr1WpRl4ImbNv2DMPwLMvyJM29LMvyDMPwyuVyR/QLe/kAAAAQnjh8ZotDjVHym/8Mz/O8cON49BzHUXd3t2q1mvL5fNTl4CCq1ao2bNigZpunYRiqVCrq7++PrF9QYY8HAACAxYvDZ7Y41Bg1v/mPy6rRkcbGxpTJZJq2yWQyGh8fj7RfUGGPBwAAgMWLw2e2ONQYF5w55sxxx3FdV7lcTo1G47BtTdPUzMyMstls6P2CCns8AAAALF4cPrPFocZOwJljxJbjOL7+g0tSo9GQ4ziR9Asq7PEAAACweHH4zBaHGuOEcIyOk8/nZZr+Nk3TNOf++hN2v6DCHg8AAACLF4fPbHGoMU4Ix+g42WxWxWJRlmU1bWdZlgYGBuYuDQm7X1BhjwcAAIDFi8NntjjUGCeEY3Sk0dFR1ev1pm3q9bpGRkYi7RdU2OMBAABg8eLwmS0ONcYF4Rgdaf369bJtW4ZhLPhLmGVZMgxDtm0v+Dr6sPuFvXwAAAAITxw+s8WhxrggHKNjDQ0NqVKpqFgszt1LYZqmisWiKpWKhoaGOqJf2MsHAACA8MThM1scaowDHuXETemx4LquHMdRPp9f1L0SYfcLKuzxAAAAsHhx+MwWhxrD5jf/Nb9zG+gQ2Ww20H/usPsFFfZ4AAAAWLw4fGaLQ42disuqAQAAAACpRzgGAAAAAKQe4RgAAAAAkHqEYwAAAABA6hGOAQAAAACpRzhGLOzbt0+PPvqo9u3bF3UpAAAAABKIcIyONjo6qq6uLq1YsUIXXHCBVqxYoa6uLt14441RlwYAAAAgQQzP87yoiwib34dAI1pr167VU0891fTfd+3aFWJFAAAAAOLGb/7jzDE60ujoaNNgLElPPvkkZ5ABAAAAtARnjjlz3JG6urp04MABX+1c1w2hIgAAAABxxJljxNa+fft8BWNJ+vnPf86XdAEAAAA4YoRjdJwXXnihre0BAAAA4L0Ix+g4q1atamt7AAAAAHgvwjE6zvLly7VkyRJfbbu6urR8+fI2VwQAAAAg6QjH6EibN2/21W54eLjNlQAAAABIA76tmm+r7lhnn322nnzyyUP+O885BgAAAHA4fFs1Ym/Xrl264YYb1NXVNe/9rq4u3XDDDQRjAAAAAC3DmWPOHMfCvn379MILL2jVqlXcYwwAAADAN7/5zwqxJiCw5cuXE4oBAAAAtA2XVQMAAAAAUo9wDAAAAABIPcIxAAAAACD1CMcAAAAAgNQjHAMAAAAAUo9w3IFc19XU1JRc1426lLZI+vIBAABgcfh8iE5AOO4g1WpVpVJJuVxOfX19yuVyKpVKmpiYiLq0lkj68gEAAGBx+HyITmJ4nudFXUTY/D4EOkzlclnDw8PKZDKanZ2de9+yLNXrddm2raGhoQgrPDJJXz4AAAAsDp8PERa/+Y9w3AHhuFqtasOGDWq2KgzDUKVSUX9/f4iVtUbSlw8AAACLw+dDhMlv/uOy6g4wNjamTCbTtE0mk9H4+HhIFbVW0pcPAAAAi8PnQ3QizhxHfObYdV3lcjk1Go3DtjVNUzMzM8pmsyFU1hpJXz4AAAAsDp8PETbOHMeE4zi+dgyS1Gg05DhOmytqraQvHwAAABaHz4foVITjiOXzeZmmv9VgmmbkZ7oXK+nLBwAAgMXh8yE6FeE4YtlsVsViUZZlNW1nWZYGBgZid0lJ0pcPAAAAi8PnQ3QqwnEHGB0dVb1eb9qmXq9rZGQkpIpaK+nLBwAAgMXh8yE6EeG4A6xfv162bcswjAV/QbMsS4ZhyLbt2H6NfdKXDwAAAIvD50N0IsJxhxgaGlKlUlGxWJy7B8M0TRWLRVUqldg/AD3pywcAAIDF4fMhOg2PcurAG/xd15XjOMrn84m8xyLpywcAAIDF4fMh2slv/mt+Fzwikc1mE71TSPryAQAAYHH4fIhOwGXVAAAAAIDUIxwDAAAAAFKPcAwAAAAASD3CMQAAAAAg9QjHAAAAAIDUIxwjsOnpae3Zs0fT09Nt7+e6rqampuS67qLGCtoPAAAAQLoQjrFotm2rUCiot7dXq1evVm9vrwqFgsrlcsv7VatVlUol5XI59fX1KZfLqVQqaWJioulYQfsBAAAASKdIw3G5XNaaNWuUz+eVz+e1bt06PfTQQ4dsf9ddd8kwjHmvrq6uECvG4OCghoeH9eqrr857/9VXX9XmzZv1n//zf25Zv3K5rA0bNmjnzp1qNBqSpEajoZ07d+q8887T7bffftCxgvYDAAAAkF6RhuMVK1bolltu0VNPPaUnn3xSv/7rv65isahnn332kH3y+bxeffXVuddLL70UYsXpZtu2duzY0bTNPffcs+BMcJB+1WpVw8PD8jxPs7Oz89rOzs7K8zxt3rx5wZngoP0AAAAApJvheZ4XdRHv1tPToz/7sz/Tpz/96QX/dtddd+n666/Xz372syMaw3EcdXd3q1arKZ/PH9HvSpNCobDgzO+h2u3bt++I+pVKJe3cuXNBwH03y7JULBZ13333zb0XtB8AAACAZPKb/zrmnuN6va4dO3bozTff1Lp16w7ZbmZmRieccIJWrlx52LPM7zhw4IAcx5n3wuJMT0/7CriSNDk5OfdlW0H6ua6rBx98sGnAld4+E3z//ffPfdlW0H4AAAAAEHk43r17t3K5nJYsWaKhoSHdf//9+uAHP3jQtieddJK+9rWv6cEHH9Tdd9+tRqOhc889V6+88krTMbZt26bu7u6518qVK9uxKIk2OTkZqH2Qfo7jzN0rfDiNRmPujx1B+wEAAABA5JdV/+IXv9DLL7+sWq2m++67T3/913+txx577JAB+d3eeustnXLKKRocHNTnP//5Q7Y7cOCADhw4MPez4zhauXIll1UvwvT0tHp7e323f/3119XT0xOoXzabVS6X8xV0TdPUzMyMstmsXNcN1A8AAABAcsXmsuqjjz5aJ554os466yxt27ZNp59+um699VZffY866iidccYZevHFF5u2W7Jkydw3Yr/zwuL09PRo2bJlvtoWCgX19PQE7pfNZlUsFmVZVtP2lmVpYGBgLuAG7QcAAAAAkYfj92o0GvPO8jZTr9e1e/du3+ELR+bmm28O1C5Iv9HRUdXr9abt6/W6RkZG5r0XtB8AAACAdIs0HG/ZskU/+MEP9G//9m/avXu3tmzZokcffVRXXHGFJOnKK6/Uli1b5tp/7nOf03e+8x395Cc/0dNPP61PfOITeumll3T11VdHtQipsnnzZg0ODjZtMzg4qGuuueaI+61fv162bcswjAVngi3LkmEYsm1b/f398/4taD8AAAAA6RZpOH7ttdd05ZVX6qSTTtKFF16oXbt26dvf/rZ+4zd+Q5L08ssvz/um45/+9Kf6vd/7PZ1yyim65JJL5DiOHn/8cV/3J6M1tm/fLtu2VSgU5r1fKBRk27a2b9/esn5DQ0OqVCoqFosyzbc3VdM0VSwWValUNDQ0dNCxgvYDAAAAkF6RfyFXFHjOcWtMT09rcnJy3j3G7ernuq4cx1E+n1/UvcJB+wEAAABIBr/5r/k3FwFN9PT0LCoUH0m/bDYbKNwG7QcAAAAgXTruC7kAAAAAAAgb4RgAAAAAkHqEYwAAAABA6hGOAQAAAACpRzgGAAAAAKQe4Rihm56e1p49ezQ9Pe27z759+/Too49q3759bR9LevsRUFNTU3Jdd1H9ggp7PABAc+yX0yfMdc72BXQmwjFCY9u2CoWCent7tXr1avX29qpQKKhcLh+yz+joqLq6urRixQpdcMEFWrFihbq6unTjjTe2fCxJqlarKpVKyuVy6uvrUy6XU6lU0sTERKBlPpywxwMANMd+OX3CXOdsX0CH81KoVqt5krxarRZ1KamxadMmT9IhX4ODgwv6nHXWWU37rF27tmVjeZ7n2bbtGYbhWZY1r71lWZ5hGF65XG7pnIQ9HgCgOfbL6RPmOmf7AqLjN/8RjtF2t912W9Ow+s7Ltu25PiMjI7763HDDDUc8lud5XqVS8QzDaNrHMAyvWq22ZE7CHg8A0Bz75fQJc52zfQHR8pv/uKwabbd169ZFt7Nt21ef22677YjHkqSxsTFlMpmmfTKZjMbHx339/sMJezwAQHPsl9MnzHXO9gXEg+F5nhd1EWFzHEfd3d2q1WrK5/NRl5No09PT6u3t9d3+9ddfl+u6WrFihe8+r7zyipYvXx5orJ6eHrmuq1wup0ajcdg+pmlqZmZG2WzW9zjvFfZ4AIDm2C+nT5jrnO0LiJ7f/MeZY7TV5OTkotu/8MILi+rzTvsgY0lv/2fxc8CSpEajIcdxFjXOe4U9HgCgOfbL6RPmOmf7AuLDiroAJFuhUFh0+2OOOWZRfVatWhV4LEnK5/MyTdP3X3SP9GqDsMcDADTHfjl9wlznbF9AfHDmGG3V09OjZcuW+WpbKBTU09Oj5cuXa8mSJb76dHV1afny5YHHkqRsNqtisSjLav63IsuyNDAwcMSXOoU9HgCgOfbL6RPmOmf7AuKDcIy2u/nmmxfdbvPmzb76DA8PH/FY0tvPU67X60371Ot1jYyM+Pr9hxP2eACA5tgvp0+Y65ztC4gHwjHabvPmzRocHGzaZnBwUNdcc83cz2NjY1q7dm3TPmvXrtWXvvSlIx5LktavXy/btmUYxoK/7FqWJcMwZNu2+vv7m/5uv8IeDwDQHPvl9AlznbN9ATERyoOlOgzPOY6GbdteoVCY90y/QqGw4JnD73bDDTd4XV1d8/p0dXUteL5xK8byPM+rVqvexo0bPdM0PUmeaZrexo0b2/bcwbDHAwA0x345fcJc52xfQDT85j8e5cSXHoRuenpak5OT8+77PZx9+/bphRde0KpVq+buMW7XWNLbj11wHEf5fD6Ue3/CHg8A0Bz75fQJc52zfQHh8pv/CMeEYwAAAABILJ5zDAAAAACAT4RjAAAAAEDqEY4BAAAAAKlHOAYAAAAApB7hGAAAAACQeoRjhM51XU1NTcl13ahLOaQ41AgASA6OO/Bjenpae/bs0fT0dNSlNMX2jLgiHCM01WpVpVJJuVxOfX19yuVyKpVKmpiYiLq0OXGoEQCQHBx34Idt2yoUCurt7dXq1avV29urQqGgcrkcdWnzsD0j7njOMc85DkW5XNbw8LAymYxmZ2fn3rcsS/V6XbZta2hoKMIK41EjACA5OO7Aj8HBQe3YsaPpv2/fvj3Eig6O7RmdzG/+IxwTjtuuWq1qw4YNarapGYahSqWi/v7+ECv7d3GoEQCQHBx34Idt2xoeHvbV7pprrgmhooNje0an85v/uKwabTc2NqZMJtO0TSaT0fj4eEgVLRSHGgEAycFxB35s3bq1pe3ahe0ZScGZY84ct5Xrusrlcmo0Godta5qmZmZmlM1mQ6js38WhRgBAcnDcgR/T09Pq7e313f71119XT09PGys6OLZnxAFnjtERHMfxtbOUpEajIcdx2lzRQnGoEQCQHBx34Mfk5GRb27cK2zOShHCMtsrn8zJNf5uZaZqRnMmPQ40AgOTguAM/CoVCW9u3CtszkoRwjLbKZrMqFouyLKtpO8uyNDAwEMllNnGoEQCQHBx34EdPT4+WLVvmq22hUIjkkmqJ7RnJQjhG242OjqperzdtU6/XNTIyElJFC8WhRgBAcnDcgR8333xzS9u1C9szkoJwjLZbv369bNuWYRgL/qpoWZYMw5Bt25F+tX8cagQAJAfHHfixefNmDQ4ONm0zODgY6WOcJLZnJAfhGKEYGhpSpVJRsVicuy/FNE0Vi0VVKpWOeCh8HGoEACQHxx34sX37dtm2veCe4kKhINu2tX379ogqm4/tGUnAo5z4UoDQua4rx3GUz+c79r6TONQIAEgOjjvwY3p6WpOTk5HeY+wH2zM6jd/81/zOeaANstlsx+8o41AjACA5OO7Aj56eno4Oxe9ge0ZccVk1AAAAACD1CMcAAAAAgNQjHAMAAAAAUo9wDAAAAABIPcIxAAAAACD1CMeQ67qampqS67qL6jc9Pa09e/Zoeno6lPGCCHMsAEByhH38CDpeHI5zcZnLOIjLXCZ5HSDZAoVj13W1b9++Be8/++yzR1wQwlOtVlUqlZTL5dTX16dcLqdSqaSJiYmm/d55EH1vb69Wr16t3t5eFQoFlcvltowXRJhjAQCSI+zjR9Dx4nCci8tcxkFc5jLJ6wAp4S3Svffe6y1fvtw7/fTTvdWrV3tPPPHE3L+dccYZi/11kajVap4kr1arRV1KZGzb9gzD8CzL8iTNvSzL8gzD8Mrl8kH7bdq0aV77974GBwdbOl6YywYASLewjx9Bx4vDcS4ucxkHcZnLJK8DxJ/f/LfocHz66ad7+/fv9zzP85588knv1FNP9f7u7/7O8zzP+9CHPhSg1PClPRxXKhXPMIymIdcwDK9arc7rd9tttzXt887Ltu2WjBfmsgEA0i3s40fQ8eJwnIvLXMZBXOYyyesAyeA3/y36suq33npLxx13nCTprLPO0g9+8AN95Stf0ec+9zkZhrHYX4cIjI2NKZPJNG2TyWQ0Pj4+772tW7f6+v3vbRd0vCDCHAsAkBxhHz+CjheH41xc5jIO4jKXSV4HSBfD8zxvMR0uuOAC3XrrrVqzZs3ce7/4xS901VVX6d5779Xs7GzLi2w1x3HU3d2tWq2mfD4fdTmhcl1XuVxOjUbjsG1N09TMzIyy2aymp6fV29vre5zXX39dPT09gccLIsyxAADJEfbxI+h4cTjOxWUu4yAuc5nkdYDk8Jv/fJ85fuONNyRJ/+N//A8de+yx8/7t6KOP1j333KPHHnssYLkIi+M4vnZektRoNOQ4jiRpcnJyUeO80z7oeEGEORYAIDnCPn4EHS8Ox7m4zGUcxGUuk7wOkD6+w/F5552n/fv3a8WKFerr6ztom/7+/pYVhvbI5/MyTX+r3TTNub+sFAqFRY3zTvug4wUR5lgAgOQI+/gRdLw4HOfiMpdxEJe5TPI6QPr4DsdnnHGGzjnnHD333HPz3n/mmWd0ySWXtLwwtEc2m1WxWJRlWU3bWZalgYGBucteenp6tGzZMl9jFAoF9fT0HNF4QYQ5FgAgOcI+fgQdLw7HubjMZRzEZS6TvA6QQov5lq8/+qM/8np7e71KpeI9//zz3sc+9jHPNE3vt3/7t4/gu8PCx7dV823VfFsiAODd+Fbg1onLXMZBXOYyyesAydC2Rzl94Qtf8Lq6uryjjjrK+8hHPuL90z/9U+Aio5L2cOx5nlculwM9i25wcLDpju9QzzkOOl6YywYASLewjx9Bx4vDcS4ucxkHcZnLJK8DxF/Lw/H+/fu93//93/ey2ax35plner/0S7/k7dix44gLjQLh+G3VatXbuHGjZ5qmJ8kzTdPbuHHjYf+qZ9u2VygU5u34CoXCgjPGrRoviDDHAgAkR9jHj6DjxeE4F5e5jIO4zGWS1wHizW/+8/0op1/6pV/SSSedpK1bt+rSSy/Vww8/rI9//OO6+eab9Qd/8Ad+fkXHSPOjnA7GdV05jqN8Pr+o+0Cmp6c1OTk57x7jdo4XRJhjAQCSI+zjR9Dx4nCci8tcxkFc5jLJ6wDx5Df/+Q7HO3bs0KZNm+a99/TTT+u3f/u3NTAwoNtuu+3IKg4R4RgAAAAA0qHlzzl+bzCWpDPPPFOPP/64vve97wWrEgAAAACADuA7HB/KL//yL+vxxx9vRS0AAAAAAETiiMOxJB1zzDGt+DUAAAAAAESiJeEYAAAAAIA4IxwDAAAAAFKPcIxYePHFF/U//+f/1Isvvriofq7rampqSq7rtqkyAECni8OxIOwawxwvDvMvBa8zSL+4zAmQNoRjdLSPf/zjMk1Tq1at0saNG7Vq1SqZpqnBwcGm/arVqkqlknK5nPr6+pTL5VQqlTQxMRFS5QCAqMXhWBB2jWGOF4f5l4LXGaRfXOYESC0vhWq1mifJq9VqUZeCJo4//nhP0iFfxx9//EH72bbtGYbhWZY1r71lWZ5hGF65XA55SQAAYYvDsSDsGsMcLw7z73nB6wzSLy5zAiSR3/xHOEZHuvzyy5sG43demzZtmtevUql4hmE07WMYhletViNaMgBAu8XhWBB2jWGOF4f5P5I6g/SLy5wASeU3/3FZNTrSvffe66vd17/+9Xk/j42NKZPJNO2TyWQ0Pj4euDYAQGeLw7Eg7BrDHC8O8y8FrzNIv7jMCZB2hud5XtRFhM1xHHV3d6tWqymfz0ddDt7jxRdf1KpVq3y3f+GFF3TiiSfKdV3lcjk1Go3D9jFNUzMzM8pms0dSKgCgw8ThWBB2jWGOF4f5l4LXGaSfpFjMCZBkfvMfZ47RcX70ox8Fau84jq8DjyQ1Gg05jrPo2gAAnS0Ox4KwawxzvDjMvxS8ziD94jInAAjH6EBr1qwJ1D6fz8s0/W3Spmly1QAAJFAcjgVh1xjmeHGYfyl4nUH6xWVOABCO0YFOPPFEGYbhq61pmjrxxBMlSdlsVsViUZZlNe1jWZYGBga4ZAkAEigOx4KwawxzvDjMvxS8ziD94jInAAjH6FAf+9jHfLW7/PLL5/08Ojqqer3etE+9XtfIyEjg2gAAnS0Ox4KwawxzvDjMvxS8ziD94jInQNoRjtGR/v7v/17HH3980zbHH3+87rnnnnnvrV+/XrZtyzCMBX+htSxLhmHItm319/e3vGYAQGeIw7Eg7BrDHC8O8y8FrzNIv7jMCZB6oTxYqsPwnOP42LRpk2ea5rznAJqmueD5xu9VrVa9jRs3zvU1TdPbuHEjzw8EgBSJw7Eg7BrDHC8O8+95wesM0i8ucwIkjd/8x6Oc+NKDWHjxxRf1ox/9SGvWrJm7x9gP13XlOI7y+Tz38ABASsXhWBB2jWGOF4f5l4LXGaRfXOYESAq/+Y9wTDgGAAAAgMTiOccAAAAAAPhEOAYAAAAApB7hGAAAAACQeoRjAAAAAEDqEY4BAAAAAKlHOAYAAAAApB7hOEFc19XU1JRc1+3o8fbt26dHH31U+/bta1Nl/y7sOQGANAm6j52entaePXs0PT3dpsrmC1Jn0BrjciwOs19ctpOg4lBnHLZnPrMtxJyEL9JwXC6XtWbNGuXzeeXzea1bt04PPfRQ0z733nuvTj75ZHV1dWn16tX61re+FVK1natarapUKimXy6mvr0+5XE6lUkkTExMdNd7o6Ki6urq0YsUKXXDBBVqxYoW6urp04403dkyNAIDDC7qPtW1bhUJBvb29Wr16tXp7e1UoFFQulzumzqA1xuVYHGa/uGwnQcWhzjhsz3xmW4g5iZAXoX/4h3/wvvnNb3r/8i//4j3//PPeTTfd5B111FHenj17Dtp+YmLCy2Qy3n//7//d+/GPf+zdfPPN3lFHHeXt3r17UePWajVPkler1VqxGJGybdszDMOzLMuTNPeyLMszDMMrl8sdMd5ZZ501r/17X2vXro28RgDA4QXdx27atKnpcWBwcDDyOoPWGJdjcZj94rKdBBWHOuOwPfOZbSHmpD385r9Iw/HBHHPMMd5f//VfH/TfLr/8cu/SSy+d994555zj/Zf/8l8WNUZSwnGlUvEMw2i64zMMw6tWq5GONzIy0rTPO68bbrghshoBAIcXdB972223+ToO2LYdWZ1Ba4zLsTjMfnHZToKKQ51x2J75zLYQc9I+sQvHs7Oz3j333OMdffTR3rPPPnvQNitXrvTGx8fnvfdHf/RH3po1axY1VlLC8cDAwIK/Kr33ZVmWt3HjxkjHW7Jkia8ddFdXV2Q1AgAOL+g+dtmyZb6OA4VCIbI6g9YYl2NxmP3isp0EFYc647A985ltIeakffzmP8PzPE8R2r17t9atW6ef//znyuVy2r59uy655JKDtj366KP1t3/7txocHJx7z7Zt/cmf/ImmpqYOOcaBAwd04MCBuZ8dx9HKlStVq9WUz+dbtzAhcl1XuVxOjUbjsG1N09TMzIyy2Wzo4+3bt08rVqzwPc4rr7yi5cuXh1ojAODwgu5jp6en1dvb63uc119/XT09PaHW6bpuoBrjciwOs5+kWGwnQcWhzqA1hrk985ltIeakvRzHUXd392HzX+TfVn3SSSfpmWee0T/90z/pmmuu0VVXXaUf//jHLR1j27Zt6u7unnutXLmypb8/Co7j+PrPI0mNRkOO40Qy3gsvvLCocRbb/t3CnhMASJOg+9jJyclFjbPY9u8VpM6gNcblWBxmv7hsJ0HFoc44bM98ZluIOekMkYfjo48+WieeeKLOOussbdu2TaeffrpuvfXWg7bt6+tbcIZ4ampKfX19TcfYsmWLarXa3Gvv3r0tqz8q+Xxepulv9ZmmecRnyIOOt2rVqkWNs9j27xb2nABAmgTdxxYKhUWNs9j27xWkzqA1xuVYHGa/uGwnQcWhzjhsz3xmW4g56QyRh+P3ajQa8y6Bfrd169bpu9/97rz3HnnkEa1bt67p71yyZMncDvudV9xls1kVi0VZltW0nWVZGhgYOOLLLoKOt3z5ci1ZssTXGF1dXYEvqT6SGgEAhxd0H9vT06Nly5b5GqNQKBzxJahB6gxaY1yOxWH2i8t2ElQc6ozD9sxntoWYkw4Ryh3Qh/CZz3zGe+yxx7x//dd/9X70ox95n/nMZzzDMLzvfOc7nud53u/8zu94n/nMZ+baT0xMeJZleV/60pe8//N//o/32c9+NtWPcorLN2TybdUAkAxx+RZivq2ab6tupzjUGYftmc9sCzEn7ROLb6v+1Kc+5Z1wwgne0Ucf7b3//e/3Lrzwwrlg7Hmed/7553tXXXXVvD5f//rXvV/91V/1jj76aO/UU0/1vvnNby563KSEY8/zvHK5HOqz0IKOt3bt2qb/0Vv5nOOw5wQA0iToPnZwcLDpcaDVz4UNUmfQGuNyLA6zX1y2k6DiUGcctmc+sy3EnLRHLMJxVJIUjj3P86rVqrdx40bPNE1Pkmeaprdx48a2/VUp6Hg33HCD19XVNe8/eldXV0vOGLeqRgDA4QXdx9q27RUKhXnHgUKh0LYzbEHqDFpjXI7FYfaLy3YSVBzqjMP2zGe2hZiT1ovNo5yi4PervOPGdV05jqN8Ph/KfQhBx9u3b59eeOEFrVq16ojuMfYj7DkBgDQJuo+dnp7W5ORkaPdkBqkzaI1xORaH2S8u20lQcagzDtszn9kWYk5ax2/+IxwnKBwDAAAAAOaLzXOOAQAAAACIGuEYAAAAAJB6hGMAAAAAQOoRjgEAAAAAqUc4BgAAAACkHuEYoXNdV1NTU3JdN+pSAMA39l2tE3Qup6entWfPHk1PT7epsn8XtMaw+yGeWN/RYx3gYAjHCE21WlWpVFIul1NfX59yuZxKpZImJiaiLg0ADol9V+sEnUvbtlUoFNTb26vVq1ert7dXhUJB5XK5Y2oMux/iifUdPdYBmvJSqFareZK8Wq0WdSmpYdu2ZxiGZ1mWJ2nuZVmWZxiGVy6Xoy4RABZg39U6Qedy06ZN89q/9zU4OBh5jWH3QzyxvqPHOkgvv/mPcIy2q1QqnmEYTT/cGIbhVavVqEsFgDnsu1on6FzedtttTfu887JtO7Iaw+6HeGJ9R491kG5+8x+XVaPtxsbGlMlkmrbJZDIaHx8PqSIAODz2Xa0TdC63bt3q6/f7bddM0BrD7od4Yn1Hj3UAPwzP87yoiwib4zjq7u5WrVZTPp+PupxEc11XuVxOjUbjsG1N09TMzIyy2WwIlQHAobHvap2gczk9Pa3e3l7f47z++uvq6ekJtcaw+yGeWN/RYx3Ab/7jzDHaynEcXzsiSWo0GnIcp80VAcDhse9qnaBzOTk5uahxFtv+3YLWGHY/xBPrO3qsA/hFOEZb5fN5maa/zcw0Tc7kA+gI7LtaJ+hcFgqFRY2z2PbvFrTGsPshnljf0WMdwC/CMdoqm82qWCzKsqym7SzL0sDAAJewAOgI7LtaJ+hc9vT0aNmyZb7GKBQKgS+pPpIaw+6HeGJ9R491AL8Ix2i70dFR1ev1pm3q9bpGRkZCqggADo99V+sEncubb77Z1+/3266ZoDWG3Q/xxPqOHusAfhCO0Xbr16+XbdsyDGPBX+wsy5JhGLJtW/39/RFVCAALse9qnaBzuXnzZg0ODjb93YODg7rmmmsiqzHsfogn1nf0WAfwJZQHS3UYnnMcjWq16m3cuNEzTdOT5Jmm6W3cuJHnyQHoaOy7WifoXNq27RUKhXnPIy0UCi15vnGragy7H+KJ9R091kE6+c1/PMqJG+5D57quHMdRPp/nng4AscG+q3WCzuX09LQmJyeP+B5jP4LWGHY/xBPrO3qsg3Txm/8Ix4RjAAAAAEgsnnMMAAAAAIBPhGMAAAAAQOoRjgEAAAAAqUc4BgAAAACkHuEYAAAAAJB6hGMAAFLOdV1NTU3Jdd1Q+sVB2HMStN/09LT27Nmj6enpUMYLImiNScacLJTk/UnYmMvgCMcAAKRUtVpVqVRSLpdTX1+fcrmcSqWSJiYm2tIvDsKek6D9bNtWoVBQb2+vVq9erd7eXhUKBZXL5baMF0TQGpOMOVkoyfuTsDGXLeClUK1W8yR5tVot6lIAAIiEbdueYRieZVmepLmXZVmeYRheuVxuab84CHtOgvbbtGnTvPbvfQ0ODrZ0vCCC1phkzMlCSd6fhI25bM5v/iMcAwCQMpVKxTMMo+kHdcMwvGq12pJ+cRD2nATtd9tttzXt887Ltu2WjBdE0BqTjDlZKMn7k7Axl4fnN/9xWTUAACkzNjamTCbTtE0mk9H4+HhL+sVB2HMStN/WrVub9jlUuzDXXdAak4w5WSjJ+5OwMZetY3ie50VdRNgcx1F3d7dqtZry+XzU5QAAEBrXdZXL5dRoNA7b1jRNzczMKJvNBu4XB2HPSdB+09PT6u3t9bVMkvT666+rp6cn1HUXtMYkY04WSvL+JGzMpT9+8x9njgEASBHHcXx9iJKkRqMhx3GOqF8chD0nQftNTk766vOOd9qHue6C1phkzMlCSd6fhI25bC3CMQAAKZLP52Wa/g7/pmnO/YU9aL84CHtOgvYrFAq++rzjnfZhrrugNSYZc7JQkvcnYWMuW4twDABAimSzWRWLRVmW1bSdZVkaGBiYu/wuaL84CHtOgvbr6enRsmXLfC1ToVCYuzQ3zHUXtMYkY04WSvL+JGzMZWsRjgEASJnR0VHV6/Wmber1ukZGRlrSLw7CnpOg/W6++eamfQ7VLsx1F7TGJGNOFkry/iRszGULhfLd2R2GRzkBANKuXC4HeiZm0H5xEPacBO03ODgY6Hm5Ya67oDUmGXOyUJL3J2FjLpvjOcdNEI4BAPC8arXqbdy40TNN05Pkmabpbdy48bDPwgzaLw7CnpOg/Wzb9gqFwrwPwYVC4bDPyQ1z3QWtMcmYk4WSvD8JG3N5aH7zH49y4qZ0AEDKua4rx3GUz+cXdT9a0H5xEPacBO03PT2tycnJRd+rGua6C1pjkjEnCyV5fxI25nIhv/mPcEw4BgAAAIDE4jnHAAAAAAD4RDgGAAAAAKQe4RgAAAAAkHqEYwAAAABA6hGOAQAAAACpRzgGACBBpqentWfPHk1PT7d9LNd1NTU1Jdd1Q+mH1glzHezbt0+PPvqo9u3b1/axJLYvAMERjgEASADbtlUoFNTb26vVq1ert7dXhUJB5XK55WNVq1WVSiXlcjn19fUpl8upVCppYmKiLf3QOmGug9HRUXV1dWnFihW64IILtGLFCnV1denGG29s+VgS2xeAI8dzjnnOMQAg5gYHB7Vjx46m/759+/aWjFUulzU8PKxMJqPZ2dm59y3LUr1el23bGhoaalk/tE6Y62Dt2rV66qmnmv77rl27WjKWxPYFoDm/+Y9wTDgGAMSYbdsaHh721e6aa645orGq1ao2bNigZh8dDMNQpVJRf3//EfdD64S5DkZHRzU+Pn7YdjfccIO+9KUvHdFYEtsXgMPzm/+4rBoAgBjbunVrS9s1MzY2pkwm07RNJpNZEIyC9kPrhLkObNv21e6222474rEkti8ArcOZY84cAwBianp6Wr29vb7bv/766+rp6Qk0luu6yuVyajQah21rmqZmZmaUzWYD90PrhLkO9u3bpxUrVvhu/8orr2j58uWBxpLCXTYA8cWZYwAAEm5ycrKt7d/NcRxfAUSSGo2GHMc5on5onTDXwQsvvNDW9u/F9gWglQjHAADEVKFQaGv7d8vn8zJNfx8bTNOc+8t80H5onTDXwapVq9ra/r3YvgC0EuEYAICY6unp0bJly3y1LRQKgS+plqRsNqtisSjLspq2syxLAwMDc5euBu2H1glzHSxfvlxLlizx1barq+uILqmW2L4AtBbhGACAGLv55ptb2q6Z0dFR1ev1pm3q9bpGRkZa0g+tE+Y62Lx5s692fr5l3Q+2LwCtQjgGACDGNm/erMHBwaZtBgcHj/gxTpK0fv162bYtwzAWnKmzLEuGYci27QWPywnaD60T5joYGxvT2rVrm7ZZu3ZtSx7jJLF9AWgdwjEAADG3fft22ba94J7iQqEg27a1ffv2lo01NDSkSqWiYrE4d6+naZoqFouqVCoaGhpqaT+0TpjrYNeuXbrhhhvU1dU17/2uri7dcMMN2rVrV8vGkti+ALQGj3LiixkAAAkyPT2tycnJI77H2A/XdeU4jvL5/KLu5QzaD60T5jrYt2+fXnjhBa1ateqI7zH2g+0LwHv5zX+EY8IxAAAAACQWzzkGAAAAAMAnwjEAAAAAIPUIxwAAAACA1CMcAwAAAABSj3AMAAAAAEg9wjEAIFVc19XU1JRc1426lI6R9DlJ+vIhftgmkSRJ2p4JxwCAVKhWqyqVSsrlcurr61Mul1OpVNLExETUpUUm6XOS9OVD/LBNIkmSuD3znGOecwwAiVculzU8PKxMJqPZ2dm59y3LUr1el23bGhoairDC8CV9TpK+fIgftkkkSdy2Z7/5j3BMOAaARKtWq9qwYYOaHe4Mw1ClUlF/f3+IlUUn6XOS9OVD/LBNIkniuD37zX9cVg0ASLSxsTFlMpmmbTKZjMbHx0OqKHpJn5OkLx/ih20SSZLk7Zkzx5w5BoDEcl1XuVxOjUbjsG1N09TMzIyy2WwIlUUn6XOS9OVD/LBNIkniuj1z5hgAkHqO4/g6gEtSo9GQ4zhtrih6SZ+TpC8f4odtEkmS9O2ZcAwASKx8Pi/T9HeoM00zFVcTJX1Okr58iB+2SSRJ0rdnwjEAILGy2ayKxaIsy2razrIsDQwMdMSlX+2W9DlJ+vIhftgmkSRJ354JxwCARBsdHVW9Xm/apl6va2RkJKSKopf0OUn68iF+2CaRJEnengnHAIBEW79+vWzblmEYC/7SbVmWDMOQbdsd87iJMCR9TpK+fIgftkkkSZK3Z8IxACDxhoaGVKlUVCwW5+6VMk1TxWJRlUpFQ0NDEVcYvqTPSdKXD/HDNokkSer2zKOcYnaTOADgyLiuK8dxlM/nY3cvVLskfU6SvnyIH7ZJJEkctme/+a/5ndQAACRMNpvt2IN3VJI+J0lfPsQP2ySSJEnbM5dVAwAAAABSj3AMAAAAAEg9wjEAAAAAIPUIxwAAAACA1CMcAwAAAABSj3AMAAnmuq6mpqbkum7UpSAkQdY528lCSZ+ToMs3PT2tPXv2aHp6uk2VoR2Svj0DrUI4BoAEqlarKpVKyuVy6uvrUy6XU6lU0sTERNSloU2CrHO2k4WSPidBl8+2bRUKBfX29mr16tXq7e1VoVBQuVwOqXIEkfTtGWg5L0Jf/OIXvbVr13q5XM57//vf7xWLRe+5555r2ufOO+/0JM17LVmyZFHj1mo1T5JXq9WOpHwA6Ei2bXuGYXiWZc3bV1qW5RmG4ZXL5ahLRIsFWedsJwslfU6CLt+mTZsWfPZ692twcDDkJYEfSd+egcXwm/8Mz/O8EDL4QX3kIx/Rpk2bdPbZZ2t2dlY33XST9uzZox//+Md63/ved9A+d911l6677jo9//zzc+8ZhqHjjjvO97iO46i7u1u1Wk35fP6IlwMAOkW1WtWGDRvUbNduGIYqlYr6+/tDrAztEmSds50slPQ5Cbp8tm1reHj4sL/ftm1dc801LakVRy7p2zOwWH7zX6SXVT/88MP63d/9XZ166qk6/fTTddddd+nll1/WU0891bSfYRjq6+ubey0mGANAko2NjSmTyTRtk8lkND4+HlJFaLcg65ztZKGkz0nQ5du6dauv3++3HcKR9O0ZaJdIzxy/14svvqhVq1Zp9+7dOu200w7a5q677tLVV1+t5cuXq9Fo6Mwzz9QXv/hFnXrqqYf8vQcOHNCBAwfmfnYcRytXruTMMYBEcV1XuVxOjUbjsG1N09TMzIyy2WwIlaFdgqxzSWwn75H0/ztBl296elq9vb2+x3n99dfV09NzJKWiBZK+PQNBxOLM8bs1Gg1df/316u/vP2QwlqSTTjpJX/va1/Tggw/q7rvvVqPR0LnnnqtXXnnlkH22bdum7u7uudfKlSvbsQgAECnHcXx9GJLe3uc6jtPmitBuQdY528lCSZ+ToMs3OTm5qHEW2x7tkfTtGWinjjlzfM011+ihhx5StVrVihUrfPd76623dMopp2hwcFCf//znD9qGM8cA0oCzBenDmePWSPr/Hc4cp0vSt2cgiFidOb722mv1jW98Q9///vcXFYwl6aijjtIZZ5yhF1988ZBtlixZonw+P+8FAEmTzWZVLBZlWVbTdpZlaWBggA9DCRBknbOdLJT0OQm6fD09PVq2bJmvMQqFAsG4QyR9ewbaKdJw7Hmerr32Wt1///363ve+pw984AOL/h31el27d+/2vfMGgCQbHR1VvV5v2qZer2tkZCSkitBuQdY528lCSZ+ToMt38803+/r9ftshHEnfnoF2iTQcDw8P6+6779b27du1dOlS7d+/X/v375frunNtrrzySm3ZsmXu58997nP6zne+o5/85Cd6+umn9YlPfEIvvfSSrr766igWAQA6yvr162XbtgzDWHDWwLIsGYYh27Z5dEeCBFnnbCcLJX1Ogi7f5s2bNTg42PR3Dw4O8hinDpP07Rlom/Y9avnwdIiHyd95551zbc4//3zvqquumvv5+uuv944//njv6KOP9o477jjvkksu8Z5++ulFjev3IdAAEFfVatXbuHGjZ5qmJ8kzTdPbuHGjV61Woy4NbRJknbOdLJT0OQm6fLZte4VCYd7ntUKh4Nm2HVLlCCLp2zPgl9/81zFfyBUmvzdkA0Dcua4rx3GUz+e5rywlgqxztpOFkj4nQZdvenpak5OT3GMcM0nfnoHD8Zv/CMeEYwAAAABIrFh9WzUAAAAAAFEiHAMAAAAAUo9wDAAAAABIPcIxAAAAACD1CMcAAAAAgNQjHAMAIue6rqampuS6btSltFzQZUvynAAA0IkIxwCAyFSrVZVKJeVyOfX19SmXy6lUKmliYiLq0o5Y0GVL8pwAANDJeM4xzzkGgEiUy2UNDw8rk8lodnZ27n3LslSv12XbtoaGhiKsMLigy5bkOQEAICp+8x/hmHAMAKGrVqvasGGDmh2CDMNQpVJRf39/iJUduaDLluQ5AQAgSn7zH5dVAwBCNzY2pkwm07RNJpPR+Ph4SBW1TtBlS/KcAAAQB5w55swxAITKdV3lcjk1Go3DtjVNUzMzM8pmsyFUduSCLluS5wQAgKhx5hgA0JEcx/EVAiWp0WjIcZw2V9Q6QZctyXMCAEBcEI4BAKHK5/MyTX+HH9M0Y3WFT9BlS/KcAAAQF4RjAECostmsisWiLMtq2s6yLA0MDMTq8uGgy5bkOQEAIC4IxwCA0I2OjqperzdtU6/XNTIyElJFrRN02ZI8JwAAxAHhGAAQuvXr18u2bRmGseBsqWVZMgxDtm3H8pFFQZctyXMCAEAcEI4BAJEYGhpSpVJRsVicu9/WNE0Vi0VVKhUNDQ1FXGFwQZctyXMCAECn41FOfKkJAETOdV05jqN8Pp+4+2mDLluS5wQAgDD5zX/Nv/kDAIAQZLPZxAbAoMuW5DkBAKATcVk1AAAAACD1CMcAAAAAgNQjHAMAAAAAUo9wDAAAAABIPcIxAAAAACD1CMcIzHVdTU1NyXXdqEsBEHPsT6KV9PlP+vIBAFqDcIxFq1arKpVKyuVy6uvrUy6XU6lU0sTERNSlAYgZ9ifRSvr8J335AACtZXie50VdRNj8PgQaC5XLZQ0PDyuTyWh2dnbufcuyVK/XZdu2hoaGIqwQQFywP4lW0uc/6csHAPDPb/4jHBOOfatWq9qwYYOabTKGYahSqai/vz/EygDEDfuTaCV9/pO+fACAxfGb/7isGr6NjY0pk8k0bZPJZDQ+Ph5SRQDiiv1JtJI+/0lfPgBAe3DmmDPHvriuq1wup0ajcdi2pmlqZmZG2Ww2hMoAxA37k2glff6TvnwAgMXjzDFaynEcXx80JKnRaMhxnDZXBCCu2J9EK+nzn/TlAwC0D+EYvuTzeZmmv83FNE3OyAM4JPYn0Ur6/Cd9+QAA7UM4hi/ZbFbFYlGWZTVtZ1mWBgYGuEQNwCGxP4lW0uc/6csHAGgfwjF8Gx0dVb1eb9qmXq9rZGQkpIoAxBX7k2glff6TvnwAgPYgHMO39evXy7ZtGYax4C/ylmXJMAzZts1jMQAcFvuTaCV9/pO+fACA9iAcY1GGhoZUqVRULBbn7ukyTVPFYlGVSkVDQ0MRVwggLtifRCvp85/05QMAtB6PcuKLOAJzXVeO4yifz3PPFoAjwv4kWkmf/6QvHwCgOb/5r/m3VQBNZLNZPmQAaAn2J9FK+vwnffkAAK3BZdUAAAAAgNQjHAMAAAAAUo9wDAAAAABIPcIxAAAAACD1CMcAAAAAgNQjHAMAkHKu62pqakqu60ZdSsdgTg6OeQGQZIRjAABSqlqtqlQqKZfLqa+vT7lcTqVSSRMTE1GXFhnm5OCYFwBpYHie50VdRNj8PgQaAICkKpfLGh4eViaT0ezs7Nz7lmWpXq/Ltm0NDQ1FWGH4mJODY14AxJ3f/Ec4JhwDAFKmWq1qw4YNavYRwDAMVSoV9ff3h1hZdJiTg2NeACSB3/zHZdUAAKTM2NiYMplM0zaZTEbj4+MhVRQ95uTgmBcAacKZY84cAwBSxHVd5XI5NRqNw7Y1TVMzMzPKZrMhVBYd5uTgmBcAScGZYwAAsIDjOL7CjiQ1Gg05jtPmiqLHnBwc8wIgbQjHAACkSD6fl2n6O/ybppmKK6yYk4NjXgCkDeEYAIAUyWazKhaLsiyraTvLsjQwMJCKy2SZk4NjXgCkDeEYAICUGR0dVb1eb9qmXq9rZGQkpIqix5wcHPMCIE0IxwAApMz69etl27YMw1hwVtCyLBmGIdu2U/VoHubk4JgXAGlCOAYAIIWGhoZUqVRULBbn7is1TVPFYlGVSkVDQ0MRVxg+5uTgmBcAacGjnPjyCABAyrmuK8dxlM/nuW/0/8ecHBzzAiCO/Oa/5t+wAAAAEi+bzRJ03oM5OTjmBUCScVk1AAAAACD1CMcAAAAAgNQjHAMAAAAAUo9wDAAAAABIPcIxAAAAACD1CMcAAAAAgNQjHAMAAAAAUo9wDAAAAABIPcIxAAAAACD1CMcAAAAAgNQjHAMAAAAAUo9wDAAAAABIPcIxAAAAACD1CMcAAAAAgNQjHAMAAAAAUo9wDAAAAABIPcIxAAAAACD1CMcAAAAAgNQjHAMAAAAAUo9wDAAAAABIPcIxAAAAACD1CMcAAAAAgNQjHAMAAAAAUo9wDAAAAABIPcIxACBVXNfV1NSUXNeNuhQAANBBCMcAgFSoVqsqlUrK5XLq6+tTLpdTqVTSxMRE1KUBAIAOEGk43rZtm84++2wtXbpUxx57rC677DI9//zzh+1377336uSTT1ZXV5dWr16tb33rWyFUCwCIq3K5rA0bNmjnzp1qNBqSpEajoZ07d+q8887T7bffHnGFAAAgapGG48cee0zDw8N64okn9Mgjj+itt97Sb/7mb+rNN988ZJ/HH39cg4OD+vSnP61//ud/1mWXXabLLrtMe/bsCbFyAEBcVKtVDQ8Py/M8zc7Ozvu32dlZeZ6nzZs3cwYZAICUMzzP86Iu4h3/7//9Px177LF67LHHtGHDhoO2+fjHP64333xT3/jGN+be+7Vf+zV96EMf8v2Xf8dx1N3drVqtpnw+35LaAQCdqVQqaefOnQuC8btZlqVisaj77rsvxMoAAEAY/Oa/jrrnuFarSZJ6enoO2eaHP/yhLrroonnv/dZv/ZZ++MMfHrLPgQMH5DjOvBcAIPlc19WDDz7YNBhLb59Bvv/++/mSLgAAUqxjwnGj0dD111+v/v5+nXbaaYdst3//fh133HHz3jvuuOO0f//+Q/bZtm2buru7514rV65sWd0AgM7lOM7cPcaH02g0+OMpAAAp1jHheHh4WHv27NGOHTta/ru3bNmiWq0299q7d2/LxwAAdJ58Pi/T9HeoM02TW20AAEixjgjH1157rb7xjW/o+9//vlasWNG0bV9fn6ampua9NzU1pb6+vkP2WbJkifL5/LwXACD5stmsisWiLMtq2s6yLA0MDCibzYZUGQAA6DSRhmPP83Tttdfq/vvv1/e+9z194AMfOGyfdevW6bvf/e689x555BGtW7euXWUCAGJsdHRU9Xq9aZt6va6RkZGQKgIAAJ0o0nA8PDysu+++W9u3b9fSpUu1f/9+7d+/f94Xolx55ZXasmXL3M/XXXedHn74YX35y1/Wc889pz/+4z/Wk08+qWuvvTaKRQAAdLj169fLtm0ZhrHgDLJlWTIMQ7Ztq7+/P6IKAQBAJ4g0HJfLZdVqNX34wx/WsmXL5l5///d/P9fm5Zdf1quvvjr387nnnqvt27frjjvu0Omnn6777rtPDzzwQNMv8QIApNvQ0JAqlYqKxeLcPcimaapYLKpSqWhoaCjiCgEAQNQ66jnHYeE5xwCQXq7rynEc5fN57jEGACAF/Oa/5t9QAgBAwmSzWUIxAABYoCO+rRoAAAAAgCgRjgEAAAAAqUc4BgAAAACkHuEYAAAAAJB6hGMAAAAAQOoRjgEAAAAAqUc4BgAAAACkHuEYAAAAAJB6hGMAAAAAQOoRjgEAAAAAqUc4BgAAAACkHuEYAAAAAJB6hGMAAAAAQOoRjgEAAAAAqWdFXUAUPM+TJDmOE3ElAAAAAIB2eif3vZMDDyWV4fiNN96QJK1cuTLiSgAAAAAAYXjjjTfU3d19yH83vMPF5wRqNBqanJzU0qVLZRhG1OUs4DiOVq5cqb179yqfz0ddDjoU2wn8YDuBH2wn8IttBX6wncCPMLcTz/P0xhtvqFAoyDQPfWdxKs8cm6apFStWRF3GYeXzeXYoOCy2E/jBdgI/2E7gF9sK/GA7gR9hbSfNzhi/gy/kAgAAAACkHuEYAAAAAJB6hOMOtGTJEn32s5/VkiVLoi4FHYztBH6wncAPthP4xbYCP9hO4Ecnbiep/EIuAAAAAADejTPHAAAAAIDUIxwDAAAAAFKPcAwAAAAASD3CMQAAAAAg9QjHHeQHP/iBPvrRj6pQKMgwDD3wwANRl4QOtG3bNp199tlaunSpjj32WF122WV6/vnnoy4LHaZcLmvNmjXK5/PK5/Nat26dHnrooajLQoe75ZZbZBiGrr/++qhLQQf54z/+YxmGMe918sknR10WOtC+ffv0iU98Qr29vcpms1q9erWefPLJqMtCB/nlX/7lBfsTwzA0PDwcdWmSCMcd5c0339Tpp5+u2267LepS0MEee+wxDQ8P64knntAjjzyit956S7/5m7+pN998M+rS0EFWrFihW265RU899ZSefPJJ/fqv/7qKxaKeffbZqEtDh9q1a5e+8pWvaM2aNVGXgg506qmn6tVXX517VavVqEtCh/npT3+q/v5+HXXUUXrooYf04x//WF/+8pd1zDHHRF0aOsiuXbvm7UseeeQRSdLHPvaxiCt7mxV1Afh3F198sS6++OKoy0CHe/jhh+f9fNddd+nYY4/VU089pQ0bNkRUFTrNRz/60Xk/f+ELX1C5XNYTTzyhU089NaKq0KlmZmZ0xRVX6Ktf/aq2bt0adTnoQJZlqa+vL+oy0MH+9E//VCtXrtSdd945994HPvCBCCtCJ3r/+98/7+dbbrlF//E//kedf/75EVU0H2eOgZir1WqSpJ6enogrQaeq1+vasWOH3nzzTa1bty7qctCBhoeHdemll+qiiy6KuhR0qBdeeEGFQkG/8iu/oiuuuEIvv/xy1CWhw/zDP/yD1q5dq4997GM69thjdcYZZ+irX/1q1GWhg/3iF7/Q3XffrU996lMyDCPqciRx5hiItUajoeuvv179/f067bTToi4HHWb37t1at26dfv7znyuXy+n+++/XBz/4wajLQofZsWOHnn76ae3atSvqUtChzjnnHN1111066aST9Oqrr+pP/uRPdN5552nPnj1aunRp1OWhQ/zkJz9RuVzW6OiobrrpJu3atUu///u/r6OPPlpXXXVV1OWhAz3wwAP62c9+pt/93d+NupQ5hGMgxoaHh7Vnzx7u/cJBnXTSSXrmmWdUq9V033336aqrrtJjjz1GQMacvXv36rrrrtMjjzyirq6uqMtBh3r3LV9r1qzROeecoxNOOEFf//rX9elPfzrCytBJGo2G1q5dqy9+8YuSpDPOOEN79uzR7bffTjjGQf3N3/yNLr74YhUKhahLmcNl1UBMXXvttfrGN76h73//+1qxYkXU5aADHX300TrxxBN11llnadu2bTr99NN16623Rl0WOshTTz2l1157TWeeeaYsy5JlWXrsscf0F3/xF7IsS/V6PeoS0YH+w3/4D/rVX/1Vvfjii1GXgg6ybNmyBX98PeWUU7gEHwf10ksv6R//8R919dVXR13KPJw5BmLG8zz91//6X3X//ffr0Ucf5csu4Fuj0dCBAweiLgMd5MILL9Tu3bvnvffJT35SJ598sv7wD/9QmUwmosrQyWZmZvR//+//1e/8zu9EXQo6SH9//4JHS/7Lv/yLTjjhhIgqQie78847deyxx+rSSy+NupR5CMcdZGZmZt5fYf/1X/9VzzzzjHp6enT88cdHWBk6yfDwsLZv364HH3xQS5cu1f79+yVJ3d3dymazEVeHTrFlyxZdfPHFOv744/XGG29o+/btevTRR/Xtb3876tLQQZYuXbrg+wre9773qbe3l+8xwJwbb7xRH/3oR3XCCSdocnJSn/3sZ5XJZDQ4OBh1aeggIyMjOvfcc/XFL35Rl19+uf7X//pfuuOOO3THHXdEXRo6TKPR0J133qmrrrpKltVZcbSzqkm5J598UhdccMHcz6Ojo5Kkq666SnfddVdEVaHTlMtlSdKHP/zhee/feeedHfWFBojWa6+9piuvvFKvvvqquru7tWbNGn3729/Wb/zGb0RdGoCYeeWVVzQ4OKjXX39d73//+7V+/Xo98cQTCx7JgnQ7++yzdf/992vLli363Oc+pw984AP68z//c11xxRVRl4YO84//+I96+eWX9alPfSrqUhYwPM/zoi4CAAAAAIAo8YVcAAAAAIDUIxwDAAAAAFKPcAwAAAAASD3CMQAAAAAg9QjHAAAAAIDUIxwDAAAAAFKPcAwAAAAASD3CMQAAAAAg9QjHAAAAAIDUIxwDAJBA99xzj7LZrF599dW59z75yU9qzZo1qtVqEVYGAEBnMjzP86IuAgAAtJbnefrQhz6kDRs26C//8i/12c9+Vl/72tf0xBNPaPny5VGXBwBAx7GiLgAAALSeYRj6whe+oP/0n/6T+vr69Jd/+ZeqVCpzwXhgYECPPvqoLrzwQt13330RVwsAQPQ4cwwAQIKdeeaZevbZZ/Wd73xH559//tz7jz76qN544w397d/+LeEYAABxzzEAAIn18MMP67nnnlO9Xtdxxx03798+/OEPa+nSpRFVBgBA5yEcAwCQQE8//bQuv/xy/c3f/I0uvPBC/bf/9t+iLgkAgI7GPccAACTMv/3bv+nSSy/VTTfdpMHBQf3Kr/yK1q1bp6efflpnnnlm1OUBANCROHMMAECCTE9P6yMf+YiKxaI+85nPSJLOOeccXXzxxbrpppsirg4AgM7FmWMAABKkp6dHzz333IL3v/nNb0ZQDQAA8cG3VQMAkEIXXXSR/vf//t9688031dPTo3vvvVfr1q2LuiwAACJDOAYAAAAApB73HAMAAAAAUo9wDAAAAABIPcIxAAAAACD1CMcAAAAAgNQjHAMAAAAAUo9wDAAAAABIPcIxAAAAACD1CMcAAAAAgNQjHAMAAAAAUo9wDAAAAABIPcIxAAAAACD1CMcAAAAAgNT7/wCaxsv+NvjiQgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Generowanie wykresu\n", "fig = plot_unlabeled_data(X1, X2, x1label=\"$x_1$\", x2label=\"$x_2$\")" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [], "source": [ "# Odległość euklidesowa\n", "def euclidean_distance(x1, x2):\n", " return np.linalg.norm(x1 - x2)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "# Funkcja kosztu\n", "def cost_function(X, Y, centroids, distance):\n", " return np.mean([distance(x, centroids[y]) ** 2 for x, y in zip(X, Y)])" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [], "source": [ "# Algorytm k średnich\n", "def k_means(X, k, distance=euclidean_distance):\n", " history = []\n", " Y = []\n", "\n", " # Wylosuj centroid dla każdej klasy\n", " centroids = [\n", " [random.uniform(X.min(axis=0)[f], X.max(axis=0)[f]) for f in range(X.shape[1])]\n", " for c in range(k)\n", " ]\n", " cost = cost_function(X, Y, centroids, distance)\n", " history.append((centroids, Y, cost))\n", "\n", " # Powtarzaj, dopóki klasy się zmieniają\n", " while True:\n", " distances = [[distance(centroids[c], x) for c in range(k)] for x in X]\n", " Y_new = [d.index(min(d)) for d in distances]\n", " if Y_new == Y:\n", " break\n", " Y = Y_new\n", " cost = cost_function(X, Y, centroids, distance)\n", " history.append((centroids, Y, cost))\n", " XY = np.asarray(np.concatenate((X, np.matrix(Y).T), axis=1))\n", " Xc = [XY[XY[:, 2] == c][:, :-1] for c in range(k)]\n", " centroids = [\n", " [Xc[c].mean(axis=0)[f] for f in range(X.shape[1])] for c in range(k)\n", " ]\n", " cost = cost_function(X, Y, centroids, distance)\n", " history.append((centroids, Y, cost))\n", "\n", " result = history[-1][1]\n", " return result, history" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [], "source": [ "# Wykres danych - klastrowanie\n", "def plot_clusters(X, Y, k, centroids=None, cost=\"\"):\n", " color = [\"r\", \"g\", \"b\", \"c\", \"m\", \"y\", \"k\"]\n", " fig = plt.figure(figsize=(16 * 0.7, 9 * 0.7))\n", " ax = fig.add_subplot(111)\n", " fig.subplots_adjust(left=0.1, right=0.9, bottom=0.1, top=0.9)\n", "\n", " if not Y:\n", " ax.scatter(X[:, 0], X[:, 1], c=\"gray\", marker=\"o\", s=25, label=\"Dane\")\n", "\n", " X1 = [[x for x, y in zip(X[:, 0].tolist(), Y) if y == c] for c in range(k)]\n", " X2 = [[x for x, y in zip(X[:, 1].tolist(), Y) if y == c] for c in range(k)]\n", "\n", " for c in range(k):\n", " ax.scatter(X1[c], X2[c], c=color[c], marker=\"o\", s=25, label=\"Dane\")\n", " if centroids:\n", " ax.scatter(\n", " [centroids[c][0]],\n", " [centroids[c][1]],\n", " c=color[c],\n", " marker=\"+\",\n", " s=500,\n", " label=\"Centroid\",\n", " )\n", "\n", " ax.set_xlabel(r\"$x_1$\")\n", " ax.set_ylabel(r\"$x_2$\")\n", " ax.annotate(\n", " f\"koszt: {cost:.3f}\",\n", " xy=(1, 0),\n", " xycoords=\"axes fraction\",\n", " xytext=(-20, 20),\n", " textcoords=\"offset pixels\",\n", " horizontalalignment=\"right\",\n", " verticalalignment=\"bottom\",\n", " fontsize=12,\n", " )\n", " ax.margins(0.05, 0.05)\n", " return fig" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/pawel/.local/lib/python3.10/site-packages/numpy/core/fromnumeric.py:3504: RuntimeWarning: Mean of empty slice.\n", " return _methods._mean(a, axis=axis, dtype=dtype,\n", "/home/pawel/.local/lib/python3.10/site-packages/numpy/core/_methods.py:129: RuntimeWarning: invalid value encountered in scalar divide\n", " ret = ret.dtype.type(ret / rcount)\n" ] } ], "source": [ "Y, history = k_means(X, 2)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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DP3whz/s9trNzc2qra3V0KFDdfjhh+vkk0/WnXfeWZT9LVSlo70DAAAAALpZtWqVtm/froULFx7S69x///26+uqr9d3vflfXXXedXnjhBV177bX65JNPdP311+f1Gtdee61OP/30Luuqqqoy/33UUUfpX//1X7u1+93vfqdHHnlEM2bM6LL+3//933XxxRerpqZG//iP/6jBgwfrrbfe0nvvvVfAHhYP4RgAAAAAXOjPf/6zbrzxRs2cOVOPPfaYJOmHP/yhUqmUfvazn+lHP/qRjjzyyIO+zpQpU3TJJZf0uH3QoEH627/9227rV6xYIb/fr4svvjizrr29XXPnzs3U5POVzpeZS6cSAAAAACgR77zzjqqqqnTyySdr9+7dkqS3335b3/ve9zJfBT7zzDP1m9/8plvbu+66SyeddJIOP/xwHXnkkTrttNO0atUqSQf/CrIknXfeefrNb36jd955J7M+GAxmXv/dd9/Vm2++edB92LBhg/bs2aNrrrmmy/p58+Zp3759WWvvyccff6y//OUveT///fff14YNG/Sd73xHAwYMyKxftWqVdu/erWXLlsnn82nfvn1KpVJ5v25fYuYYAAAAAL7krbfe0tSpUzV06FA1NTXpK1/5inbv3q3Jkyfrk08+0bXXXqthw4Zp5cqVqq2t1WOPPaZvf/vbkqQHH3xQ1157rS655BItWLBAn376qf7zP/9Tv//97/WDH/wg61eQP//8c/34xz9Wv379JEk33nijksmk3nvvPd1xxx2SpMGDB2eeP3fuXG3atEmWZeXcj5aWFknSaaed1mX9qaeeKp/Pp5aWlqwzvn/tqquuUkdHhyoqKjRlyhQtX76822v+tdWrVyuVSunyyy/vsn7dunXy+/364x//qNmzZ+sPf/iDBg0apCuuuEJ33HFHlyBtN8IxAAAAAPyPN998U9OmTdPo0aP17LPPZr52fOutt2r37t164YUXdPbZZ0tKf0V5/Pjxuu666zRr1iz5fD795je/0UknnaQ1a9Zkff1sX0GeN2+eOjo61NTUJEmaPn26Ro8erY8++iiv8NqT999/XxUVFRo+fHiX9f369dOwYcO0c+fOnO379eun7373u7rooov0la98RW+88Yb+6Z/+SVOmTNHmzZtVU1PTY9tHHnlERx99tKZOndplfTwe11/+8hfNmjVLkUhEjY2N2rhxo+666y7t3btXjz76aMH7e6j4WjUAAAAASNq+fbvOPfdcBYNBrVu3rsv5uM8884y+8Y1vZIKxlJ7N/dGPfqREIqE33nhDknTEEUfovffe0yuvvJJXn7/85S91zz336LbbbtP555+fV5uNGzcedNZYSp9z3Dkb/dcGDBigP//5zznbT548WY899pjC4bBqa2v1k5/8RC+//LIMw1BDQ0OP7f7whz9oy5Yt+v73v9/tnOKOjg598sknmjt3ru6880595zvf0Z133qm/+7u/0+rVqxWPxw+6X32FcAwAAAAAki6++GINGTJEzz77rPx+f5dt77zzjsaNG9etzQknnJDZLknXX3+9Bg8erG984xsKhUKaN2+e/u///b9Z+9u6dauuvvpqzZkzR9ddd12R90YaOHCgPvvss6zbPv30Uw0cOLDXr1lVVaVZs2Zpw4YNOnDgQNbnPPLII5LU7SvVnTVJ0pw5c7qs/8EPfiBJeumll3pdU7EQjgEAAABA0ne/+1299dZbmXBXiBNOOEGtra1avXq1zj77bP3qV7/S2WefrZtuuqnL8z766CN997vf1de+9jU99NBDh1p6VkcffbQOHDigDz74oMv6zz77THv27NGoUaMKet0xY8bos88+0759+7JuX7VqlcaNG6dTTz2127bOPkeMGNFlfedXvz/66KOCaioGR8NxY2OjTj/9dA0ZMkTDhw/X7Nmz1draetB2a9asUXV1tQYMGKCvf/3reuaZZ2yoFgBQ7uJ74mpY16A5v5qjhnUNiu9x7qtbAIDSs3z5ckUiEV1zzTWZq0t3Gjt2bNas0nnV6LFjx2bWDRo0SJdddplisZjeffddzZw5U8uWLdOnn34qSZkLVe3du1dr167V4Ycf3u11O69cfSgmTJggSXr11Ve7rH/11VeVSqUy23vr7bff1oABA7pcJKzT73//e7W1tWWdNZaUCcx//OMfu6zvPP/5qKOOKqimYnA0HG/atEnz5s3Tyy+/rKamJn3++eeaMWNGj/8CIUmbN2/WnDlzFIlE1NLSotmzZ2v27Nnavn27jZUDAMpNrCWm6rurtXzzcv3b6/+m5ZuXq/ruaq3YusLp0gAAJcIwDD3wwAO65JJLdOWVV+rJJ5/MbLvooov0H//xH12+9rtv3z498MADCgaDOvHEEyVJe/bs6fKa/fr104knnijLsvT5559Lkm6++WY9++yzevTRR3XcccdlrWXQoEFKJpNZt+V7K6fOK27fe++9Xdbfe++9OvzwwzVz5szMuv/+7//Wm2++qU8++SSz7k9/+lO313zttdf05JNPasaMGVnvUdz5jwqdX5P+a5deeqkkyTTNLusfeughVVZW6rzzzjvofvUVw8rnTG6b/OlPf9Lw4cO1adMmnXPOOVmfc9lll2nfvn16+umnM+vOPPNMTZgwQffdd19e/bS3tysQCCiZTHY7lwAA4D7xPXFV312tlNX9Poo+w6fW+a2qGlrlQGUAgFLw05/+VDfffLP+9Kc/6Stf+Yo+//xzzZ49W+vXr9czzzyjqVOnavfu3TrllFP06aef6tprr9XQoUO1cuVKvfbaa/rVr36VuZXTqaeeqpEjR+qss87SiBEj9F//9V/6l3/5F82YMUNPPvmktm3bplNOOUXnnHOO6uvru9XSeXXq5cuX63//7/+tH//4xzr99NM1ePBgXXzxxZLS90HO51ZOknTPPfdo3rx5uuSSS/TNb35TL7zwgn75y19q2bJluuGGG7qNwYYNGzIBderUqRo4cKAmT56s4cOH64033tADDzygww47TC+99FLmfOtOBw4c0OjRo3XcccflPHc4EokoGo3q0ksv1bnnnquNGzdqzZo1amho0C233HLQfeqtfPNfSd3KqfNfRoYOHdrjc1566aVuJ6t/85vf1OOPP95jm/3792v//v2Zn9vb2w+tUABAWYm2RGUo+9fTDBkym001XtBoc1UAgFJ12GGH6bHHHtOFF16oWbNmad26dTrjjDO0efNmXX/99brrrrv06aefavz48Xrqqae6zMD+3d/9nR555BH9n//zf9TR0aFjjjlG1157rRYtWiQpPbNsWZY2bdqkTZs2deu7Mxxfc8012rp1q2KxmO644w6NHTs2E45745prrtFhhx2m22+/XU8++aTGjBmjO+64QwsWLDho29mzZ2f2pb29XUcddZS+853v6KabblJVVfd/VF63bp12796tG2+8Mefr3nfffTr22GMVi8W0du1ajR07VnfccYcWLlzY6/0rppKZOU6lUqqtrdXevXv14osv9vi8fv36aeXKlV2ubnbPPffo5ptv1u7du7O26fxXkL/GzDEAeMOcX83Rv73+bz3OHF960qV69LvO3VcRAAD0nXxnjkvmatXz5s3T9u3btXr16qK/dkNDg5LJZOaxY8eOovcBAChdwUAw58xxMBC0tyAAAFBySiIcz58/X08//bQ2bNigY445JudzR44c2W2GePfu3Ro5cmSPbfr37y+/39/lAQDwjnBNWJayf1HKkqXIxIjNFQEAgFLjaDi2LEvz58/X2rVr9dxzz/V4pbYvmzRpktavX99lXVNTkyZNmtRXZQIAylxoWEhmrSmf4VOFUdFladaaXIwLAAA4e0GuefPmadWqVXriiSc0ZMgQ7dq1S5IUCAQ0cOBASdLcuXM1evRoNTamL5SyYMECnXvuubr99ts1c+ZMrV69Wq+++qoeeOABx/YDAFD66ibU6exjz5bZbCqRTCgYCCoyMUIwBgAAkhy+IFdPN7aOxWKqq6uTlL5MeTAY1IoVKzLb16xZo0WLFimRSCgUCum2227TRRddlHe/3MoJAAAAALwh3/xXMlerthPhGAAAAAC8oeyuVg0AAAAAgFMIxwAAAAAAzyMcAwAAAAA8j3AMAAAAAPA8wjEAAAAAwPMIxwAAAAAAzyMcAwAAAAA8j3AMAAAAAPA8wjEAAAAAwPMIxwAAAAAAzyMcAwAAAAA8j3AMAAAAAPA8wjEAAAAAwPMIxwAAAAAAzyMcAwAAAAA8r9LpApxgWZYkqb293eFKAAAAAAB9qTP3debAnngyHH/88ceSpDFjxjhcCQAAAADADh9//LECgUCP2w3rYPHZhVKplHbu3KkhQ4bIMAyny+mmvb1dY8aM0Y4dO+T3+50uByWK4wT54DhBPjhOkC+OFeSD4wT5sPM4sSxLH3/8sUaNGiWfr+cziz05c+zz+XTMMcc4XcZB+f1+PlBwUBwnyAfHCfLBcYJ8cawgHxwnyIddx0muGeNOXJALAAAAAOB5hGMAAAAAgOcRjktQ//79ddNNN6l///5Ol4ISxnGCfHCcIB8cJ8gXxwrywXGCfJTiceLJC3IBAAAAAPBlzBwDAAAAADyPcAwAAAAA8DzCMQAAAADA8wjHAAAAAADPIxyXkOeff14XX3yxRo0aJcMw9PjjjztdEkpQY2OjTj/9dA0ZMkTDhw/X7Nmz1dra6nRZKDH33nuvxo8fL7/fL7/fr0mTJum3v/2t02WhxN16660yDEMLFy50uhSUkJ/+9KcyDKPLo7q62umyUIL++Mc/6m//9m81bNgwDRw4UF//+tf16quvOl0WSkgwGOz2eWIYhubNm+d0aZIIxyVl3759OuWUU3T33Xc7XQpK2KZNmzRv3jy9/PLLampq0ueff64ZM2Zo3759TpeGEnLMMcfo1ltv1ZYtW/Tqq69q6tSpmjVrll5//XWnS0OJeuWVV3T//fdr/PjxTpeCEnTSSSfp/fffzzxefPFFp0tCifnoo4901lln6bDDDtNvf/tbvfHGG7r99tt15JFHOl0aSsgrr7zS5bOkqalJkvS9733P4crSKp0uAF+48MILdeGFFzpdBkrc7373uy4/r1ixQsOHD9eWLVt0zjnnOFQVSs3FF1/c5edly5bp3nvv1csvv6yTTjrJoapQqjo6OnT55ZfrwQcf1NKlS50uByWosrJSI0eOdLoMlLCf//znGjNmjGKxWGbdcccd52BFKEVHHXVUl59vvfVWHX/88Tr33HMdqqgrZo6BMpdMJiVJQ4cOdbgSlKoDBw5o9erV2rdvnyZNmuR0OShB8+bN08yZM3XBBRc4XQpKVDwe16hRo/TVr35Vl19+ud59912nS0KJefLJJ3Xaaafpe9/7noYPH66amho9+OCDTpeFEvbZZ5/p4YcfVjgclmEYTpcjiZljoKylUiktXLhQZ511lk4++WSny0GJ2bZtmyZNmqRPP/1UgwcP1tq1a3XiiSc6XRZKzOrVq9Xc3KxXXnnF6VJQos444wytWLFC48aN0/vvv6+bb75ZU6ZM0fbt2zVkyBCny0OJePvtt3Xvvffquuuu0w033KBXXnlF1157rfr166crr7zS6fJQgh5//HHt3btXdXV1TpeSQTgGyti8efO0fft2zv1CVuPGjdPWrVuVTCb12GOP6corr9SmTZsIyMjYsWOHFixYoKamJg0YMMDpclCivnzK1/jx43XGGWdo7Nix+rd/+zdFIhEHK0MpSaVSOu2003TLLbdIkmpqarR9+3bdd999hGNkZZqmLrzwQo0aNcrpUjL4WjVQpubPn6+nn35aGzZs0DHHHON0OShB/fr1U1VVlU499VQ1NjbqlFNO0T//8z87XRZKyJYtW/TBBx9o4sSJqqysVGVlpTZt2qQ777xTlZWVOnDggNMlogQdccQR+trXvqa2tjanS0EJOfroo7v94+sJJ5zAV/CR1TvvvKN169apvr7e6VK6YOYYKDOWZel//a//pbVr12rjxo1c7AJ5S6VS2r9/v9NloIRMmzZN27Zt67LuqquuUnV1ta6//npVVFQ4VBlKWUdHh9566y1dccUVTpeCEnLWWWd1u7XkH/7wB40dO9ahilDKYrGYhg8frpkzZzpdSheE4xLS0dHR5V9h/9//+3/aunWrhg4dqmOPPdbBylBK5s2bp1WrVumJJ57QkCFDtGvXLklSIBDQwIEDHa4OpaKhoUEXXnihjj32WH388cdatWqVNm7cqGeffdbp0lBChgwZ0u16BYMGDdKwYcO4jgEy/uEf/kEXX3yxxo4dq507d+qmm25SRUWF5syZ43RpKCE//vGPNXnyZN1yyy269NJL9R//8R964IEH9MADDzhdGkpMKpVSLBbTlVdeqcrK0oqjpVWNx7366qs6//zzMz9fd911kqQrr7xSK1ascKgqlJp7771XknTeeed1WR+LxUrqggZw1gcffKC5c+fq/fffVyAQ0Pjx4/Xss89q+vTpTpcGoMy89957mjNnjvbs2aOjjjpKZ599tl5++eVut2SBt51++ulau3atGhoatGTJEh133HH6xS9+ocsvv9zp0lBi1q1bp3fffVfhcNjpUroxLMuynC4CAAAAAAAncUEuAAAAAIDnEY4BAAAAAJ5HOAYAAAAAeB7hGAAAAADgeYRjAAAAAIDnEY4BAAAAAJ5HOAYAAAAAeB7hGAAAAADgeYRjAAAAAIDnEY4BAHChRx99VAMHDtT777+fWXfVVVdp/PjxSiaTDlYGAEBpMizLspwuAgAAFJdlWZowYYLOOecc3XXXXbrpppsUjUb18ssva/To0U6XBwBAyal0ugAAAFB8hmFo2bJluuSSSzRy5EjdddddeuGFFzLB+Nvf/rY2btyoadOm6bHHHnO4WgAAnMfMMQAALjZx4kS9/vrr+vd//3ede+65mfUbN27Uxx9/rJUrVxKOAQAQ5xwDAOBav/vd7/Tmm2/qwIEDGjFiRJdt5513noYMGeJQZQAAlB7CMQAALtTc3KxLL71Upmlq2rRp+sd//EenSwIAoKRxzjEAAC6TSCQ0c+ZM3XDDDZozZ46++tWvatKkSWpubtbEiROdLg8AgJLEzDEAAC7y4Ycf6lvf+pZmzZqln/zkJ5KkM844QxdeeKFuuOEGh6sDAKB0MXMMAICLDB06VG+++Wa39b/5zW8cqAYAgPLB1aoBAPCgCy64QK+99pr27dunoUOHas2aNZo0aZLTZQEA4BjCMQAAAADA8zjnGAAAAADgeYRjAAAAAIDnEY4BAAAAAJ5HOAYAAAAAeB7hGAAAAADgeYRjAAAAAIDnEY4BAAAAAJ5HOAYAAAAAeB7hGAAAAADgeYRjAAAAAIDnEY4BAAAAAJ5HOAYAAAAAeN7/Dysb8L9Ng563AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plot_clusters(X, Y, 2, centroids=history[-1][0], cost=history[-1][2])" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [], "source": [ "# Przygotowanie interaktywnego wykresu\n", "\n", "MAXSTEPS = 15\n", "\n", "slider_k = widgets.IntSlider(\n", " min=1, max=7, step=1, value=2, description=r\"$k$\", width=300\n", ")\n", "\n", "\n", "def interactive_kmeans_k(steps, history, k):\n", " if steps >= len(history) or steps == MAXSTEPS:\n", " steps = len(history) - 1\n", " fig = plot_clusters(\n", " X, history[steps][1], k, centroids=history[steps][0], cost=history[steps][2]\n", " )\n", "\n", "\n", "def interactive_kmeans(k):\n", " slider_steps = widgets.IntSlider(\n", " min=0, max=MAXSTEPS, step=1, value=0, description=r\"steps\", width=300\n", " )\n", " _, history = k_means(X, k)\n", " widgets.interact(\n", " interactive_kmeans_k,\n", " steps=slider_steps,\n", " history=widgets.fixed(history),\n", " k=widgets.fixed(k),\n", " )" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "2c45fd83bd37477eaa2555f33b878064", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(IntSlider(value=2, description='$k$', max=7, min=1), Button(description='Run Interact', …" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "widgets.interact_manual(interactive_kmeans, k=slider_k)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Algorytm $k$ średnich – dane wejściowe\n", "\n", "* $k$ – liczba klastrów\n", "* zbiór uczący $X = \\{ x^{(1)}, x^{(2)}, \\ldots, x^{(m)} \\}$, $x^{(i)} \\in \\mathbb{R}^n$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Na wejściu nie ma zbioru $Y$, ponieważ jest to uczenie nienadzorowane!" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Algorytm $k$ średnich – pseudokod\n", "\n", "1. Zainicjalizuj losowo $k$ centroidów (środków ciężkości klastrów): $\\mu_1, \\ldots, \\mu_k$.\n", "1. Powtarzaj dopóki przyporządkowania klastrów się zmieniają:\n", " 1. Dla $i = 1$ do $m$:\n", " za $y^{(i)}$ przyjmij klasę najbliższego centroidu.\n", " 1. Dla $c = 1$ do $k$:\n", " za $\\mu_c$ przyjmij średnią wszystkich punktów $x^{(i)}$ takich, że $y^{(i)} = c$." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "# Algorytm k średnich\n", "def kmeans(X, k, distance=euclidean_distance):\n", " Y = []\n", " centroids = [\n", " [random.uniform(X.min(axis=0)[f], X.max(axis=0)[f]) for f in range(X.shape[1])]\n", " for c in range(k)\n", " ] # Wylosuj centroidy\n", " while True:\n", " distances = [\n", " [distance(centroids[c], x) for c in range(k)] for x in X\n", " ] # Oblicz odległości\n", " Y_new = [d.index(min(d)) for d in distances]\n", " if Y_new == Y:\n", " break # Jeśli nic się nie zmienia, przerwij\n", " Y = Y_new\n", " XY = np.asarray(np.concatenate((X, np.matrix(Y).T), axis=1))\n", " Xc = [XY[XY[:, 2] == c][:, :-1] for c in range(k)]\n", " centroids = [\n", " [Xc[c].mean(axis=0)[f] for f in range(X.shape[1])] for c in range(k)\n", " ] # Przesuń centroidy\n", " return Y" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "* Liczba klastrów jest określona z góry i wynosi $k$." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "* Jeżeli w którymś kroku algorytmu jedna z klas nie zostanie przyporządkowana żadnemu z przykładów, pomija się ją – w ten sposób wynikiem działania algorytmu może być mniej niż $k$ klastrów." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Funkcja kosztu dla problemu klastrowania\n", "\n", "$$ J \\left( y^{(i)}, \\ldots, y^{(m)}, \\mu_{1}, \\ldots, \\mu_{k} \\right) = \\frac{1}{m} \\sum_{i=1}^{m} || x^{(i)} - \\mu_{y^{(i)}} || ^2 $$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "* Zauważmy, że z każdym krokiem algorytmu $k$ średnich koszt się zmniejsza (lub ewentualnie pozostaje taki sam)." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Wielokrotna inicjalizacja\n", "\n", "* Algorytm $k$ średnich zawsze znajdzie lokalne minimum funkcji kosztu $J$, ale nie zawsze będzie to globalne minimum." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "* Aby temu zaradzić, można uruchomić algorytm $k$ średnich wiele razy, za każdym razem z innym losowym położeniem centroidów (tzw. **wielokrotna losowa inicjalizacja** – *multiple random initialization*). Za każdym razem obliczamy koszt $J$. Wybieramy ten wynik, który ma najniższy koszt." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Wybór liczby klastrów $k$\n", "\n", "Ile powinna wynosić liczba grup $k$?\n", "* Najlepiej wybrać $k$ ręcznie w zależności od kształtu danych i celu, który chcemy osiągnąć.\n", "* Możemy też zastosować \"metodę łokcia\"" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/tmp/ipykernel_66762/241557999.py:24: RuntimeWarning: Mean of empty slice.\n", " centroids = [[Xc[c].mean(axis=0)[f] for f in range(X.shape[1])]\n", "/home/pawel/.local/lib/python3.10/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide\n", " ret = um.true_divide(\n" ] } ], "source": [ "# Przygotowanie wykresu\n", "\n", "ks = []\n", "costs = []\n", "for k in range(1, 10):\n", " min_cost = 100000.0\n", " best_Y = None\n", " for _ in range(10): # wielokrotna inicjalizacja\n", " Y, history = k_means(X, k)\n", " cost = history[-1][2]\n", " if cost < min_cost:\n", " best_Y = Y\n", " min_cost = cost\n", " ks.append(k)\n", " costs.append(min_cost)\n", "\n", "\n", "def elbow_plot(ks, costs):\n", " fig = plt.figure(figsize=(16 * 0.7, 9 * 0.7))\n", " ax = fig.add_subplot(111)\n", " ax.set_xlabel(r\"$k$\")\n", " ax.set_ylabel(\"koszt\")\n", " ax.plot(ks, costs, marker=\"o\")" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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Y7PFaQAAAADYUa/KakFBgebMmSNJev755zV58mTl5ubq2Wef1fr16/syH4JQesIgpcZFqcljas+xC1bHAQAAAGBDvSqrTU1NioyMlCS9+eab+vSnPy1JmjBhgoqLi/suHYKSYRjKzmhZt5rLVGAAAAAAHehVWZ00aZLWrVunv/zlL9q6datuu+02SdKZM2cu23gJ6Ihv3eoOyioAAACADvSqrP74xz/WU089pRtvvFHLli3TtGnTJEl//OMf/dODga5kta5bPVTsVnlNo8VpAAAAANhNWG+edOONN+r8+fNyu90aOnSo//qXvvQlDRo0qM/CIXgNj47U+KRofVRapbyiMt0+NcXqSAAAAABspFcjq5LkdDrV3NysHTt2aMeOHTp37pxGjx6txMTEvsyHIOY/wqaIqcAAAAAA2utVWa2pqdE999yjlJQUXX/99br++us1YsQI3Xvvvaqtre3rjAhSvk2WOG8VAAAAwKV6VVZXr16t7du365VXXlFFRYUqKir08ssva/v27fra177W1xkRpOaOTZDTYeh4Wa1OlvNLDgAAAAAX9aqsvvjii/rVr36lRYsWKSYmRjExMfrUpz6lX/ziF3rhhRf6OiOC1JDIME1Pi5Mk5TIVGAAAAEAbvSqrtbW1SkpKuux6YmIi04DRI/51q4VlFicBAAAAYCe9Kqvz5s3T2rVrVV9f779WV1enhx9+WPPmzeuzcAh+2eNa1q3mFp2XaZoWpwEAAABgF706uuZ//ud/tHDhQo0cOdJ/xur777+vyMhIvfHGG30aEMFtxqihigp36nx1oz4qrdKE5BirIwEAAACwgV6NrB48eFCHDx9WTk6Opk+frunTp+uRRx5RYWGh1q9f38cREcwiwhyaMyZekrTjMOtWAQAAALTo1cjq/fffr7i4OH3xi19sd3316tX63e9+p0cffbRPwiE0zM8Ypu0fn1NuUZnu+7uxVscBAAAAYAO9Gll99tlntWzZMu3YscN/7Stf+Yo2bdqkt99+u8/CITRktZ63+t6RMjV5vBanAQAAAGAHvSqrt99+u37+85/r05/+tPbt26d/+7d/04svvqh33nlHEyZM6OuMCHLXJscofnCEaho9ev9khdVxAAAAANhAr6YBS9JnP/tZVVRUKDs7W8OHD9f27duVkZHRl9kQIhwOQ5njEvSnvxZrR+F5zRodb3Uk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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "elbow_plot(ks, costs)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## 7.2. Analiza głównych składowych" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "Analiza głównych składowych to inny przykład zagadnienia z dziedziny uczenia nienadzorowanego.\n", "\n", "Polega na próbie zredukowania liczby wymiarów dla danych wielowymiarowych, czyli zmniejszenia liczby cech, gdy rozpatrujemy przykłady o dużej liczbie cech." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Redukcja liczby wymiarów\n", "\n", "Z jakich powodów chcemy redukować liczbę wymiarów?" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "* Chcemy pozbyć się nadmiarowych cech, np. „długość w cm” / „długość w calach”, „długość” i „szerokość” / „powierzchnia”." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "* Chcemy znaleźć bardziej optymalną kombinację cech." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "* Chcemy przyspieszyć działanie algorytmów." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "* Chcemy zwizualizować dane." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Błąd rzutowania\n", "\n", "**Błąd rzutowania** – błąd średniokwadratowy pomiędzy danymi oryginalnymi a danymi zrzutowanymi." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Sformułowanie problemu\n", "\n", "**Analiza głównych składowych** (*Principal Component Analysis*, PCA):\n", "\n", "Zredukować liczbę wymiarów z $n$ do $k$, czyli znaleźć $k$ wektorów $u^{(1)}, u^{(2)}, \\ldots, u^{(k)}$ takich, że rzutowanie danych na podprzestrzeń rozpiętą na tych wektorach minimalizuje błąd rzutowania." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "* **Uwaga:** analiza głównych składowych to (mimo pozornych podobieństw) zupełnie inne zagadnienie niż regresja liniowa!" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Algorytm PCA\n", "\n", "1. Dany jest zbiór składający się z $x^{(1)}, x^{(2)}, \\ldots, x^{(m)} \\in \\mathbb{R}^n$.\n", "1. Chcemy zredukować liczbę wymiarów z $n$ do $k$ ($k < n$).\n", "1. W ramach wstępnego przetwarzania dokonujemy skalowania i normalizacji średniej.\n", "1. Znajdujemy macierz kowariancji:\n", " $$ \\Sigma = \\frac{1}{m} \\sum_{i=1}^{n} \\left( x^{(i)} \\right) \\left( x^{(i)} \\right)^T $$\n", "1. Znajdujemy wektory własne macierzy $\\Sigma$ (rozkład SVD):\n", " $$ (U, S, V) := \\mathop{\\rm SVD}(\\Sigma) $$\n", "1. Pierwszych $k$ kolumn macierzy $U$ to szukane wektory." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "from sklearn.preprocessing import StandardScaler\n", "\n", "\n", "# Algorytm PCA - implementacja\n", "def pca(X, k):\n", " X_std = StandardScaler().fit_transform(X) # normalizacja\n", " mean_vec = np.mean(X_std, axis=0)\n", " cov_mat = np.cov(X_std.T) # macierz kowariancji\n", " n = cov_mat.shape[0]\n", " eig_vals, eig_vecs = np.linalg.eig(cov_mat) # wektory własne\n", " eig_pairs = [(np.abs(eig_vals[i]), eig_vecs[:, i]) for i in range(len(eig_vals))]\n", " eig_pairs.sort()\n", " eig_pairs.reverse()\n", " matrix_w = np.hstack([eig_pairs[i][1].reshape(n, 1) for i in range(k)]) # wybór\n", " return X_std.dot(matrix_w) # transformacja" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " sl sw pl pw\n", "0 5.2 3.4 1.4 0.2\n", "1 5.1 3.7 1.5 0.4\n", "2 6.7 3.1 5.6 2.4\n", "3 6.5 3.2 5.1 2.0\n", "4 4.9 2.5 4.5 1.7\n", ".. ... ... ... ...\n", "145 5.8 4.0 1.2 0.2\n", "146 5.1 3.5 1.4 0.3\n", "147 6.5 3.0 5.8 2.2\n", "148 6.9 3.1 5.4 2.1\n", "149 6.7 3.3 5.7 2.1\n", "\n", "[150 rows x 4 columns]\n" ] } ], "source": [ "data_iris_no_labels = data_iris_raw[[\"sl\", \"sw\", \"pl\", \"pw\"]]\n", "print(data_iris_no_labels)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/pawel/.local/lib/python3.10/site-packages/seaborn/axisgrid.py:2100: UserWarning: The `size` parameter has been renamed to `height`; please update your code.\n", " warnings.warn(msg, UserWarning)\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import seaborn\n", "\n", "# Oryginalne dane (4 cechy – 4 wymiary)\n", "seaborn.pairplot(\n", " data_iris_no_labels, vars=data_iris_no_labels.columns, size=1.5, aspect=1.75\n", ")" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "image/png": "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iG63q2PHjunMM8+UYRg9j200Gjpw4ICee+45pdPpIY0QYcfzAlvxnMBOeF5gJzwvsBOeF9gJzwtv2Latl19+Wfv375dp9t5FHKsZY9M0de6557r6mnQ6zZMR2/C8wFY8J7ATnhfYCc8L7ITnBXbC82Jwe80Ur6P4FgAAAAAg1gjGAAAAAIBYIxjv4vTTT9edd96p008/PeihIER4XmArnhPYCc8L7ITnBXbC8wI74XkxfLEqvgUAAAAAwFbMGAMAAAAAYo1gDAAAAACINYIxAAAAACDWCMYAAAAAgFgjGAMAAAAAYo1g7MANN9yg17/+9TrjjDP0ute9Tv/qX/0rHTt2LOhhIUDPPPOM3v/+9+u8885TMpnUG9/4Rt1555165ZVXgh4aAvaRj3xE73jHO/Ta175WP/uzPxv0cBCQe+65R294wxt0xhln6NJLL9Vf/uVfBj0kBOhrX/uafvVXf1X79++XYRi6//77gx4SQuCuu+7S2972Np155pk6++yzdeONN+p73/te0MNCwEqlkt785jcrnU4rnU7rsssu05//+Z8HPaxYIBg7cOWVV+q//bf/pu9973v64he/qO9///v6tV/7taCHhQA99dRT6na7+vSnP63vfve7WlhY0OLioj74wQ8GPTQE7JVXXtF73vMe3XLLLUEPBQH50z/9U83NzenOO+/U448/rgsvvFC/8iu/oh/96EdBDw0BOX78uC688ELdc889QQ8FIfLYY4+pUCjoG9/4hh588EH95Cc/0S//8i/r+PHjQQ8NATr33HP1H//jf9R3vvMdffvb39ZVV12lbDar7373u0EPbeTRx7gPX/rSl3TjjTfq5MmTes1rXhP0cBASd999t0qlkv72b/826KEgBO69917ddttt+vGPfxz0UDBkl156qd72trfpU5/6lCSp2+3qwIED+q3f+i3dfvvtAY8OQTMMQ0tLS7rxxhuDHgpC5oUXXtDZZ5+txx57TFNTU0EPByGyb98+3X333Xr/+98f9FBGGjPGLr300kv6kz/5E73jHe8gFGOTtbU17du3L+hhAAjQK6+8ou985zu65pprNj5nmqauueYa/cVf/EWAIwMQdmtra5LEtQQ2dDod3XfffTp+/Lguu+yyoIcz8gjGDv3+7/++fuZnfkb/8B/+Qz377LNaXl4OekgIkaefflqf/OQn9Zu/+ZtBDwVAgP7u7/5OnU5H4+Pjmz4/Pj6uer0e0KgAhF2329Vtt92mTCajCy64IOjhIGBPPPGEUqmUTj/9dE1PT2tpaUlvetObgh7WyIttML799ttlGEbPj6eeemrj+N/7vd/T//yf/1MPPPCAEomEfuM3fkOsQh89bp8XknT06FFdd911es973qMPfOADAY0cfurneQEAgFOFQkFPPvmk7rvvvqCHghD4hV/4BR05ckTf/OY3dcstt+imm27S//7f/zvoYY282O4xfuGFF/Tiiy/2POb888/Xaaedtu3zP/zhD3XgwAF9/etfZ1nDiHH7vDh27JiuuOIK/dIv/ZLuvfdemWZs7zWNtH7eL9hjHE+vvPKKXvva16pcLm/aQ3rTTTfpxz/+MauNwB5jbHPrrbdqeXlZX/va13TeeecFPRyE0DXXXKM3vvGN+vSnPx30UEaaFfQAgnLWWWfprLPO6utru92uJOnkyZNeDgkh4OZ5cfToUV155ZW65JJL9JnPfIZQPMIGeb9AvJx22mm65JJL9PDDD28En263q4cffli33nprsIMDECq2beu3fuu3tLS0pEcffZRQjF11u11yxxDENhg79c1vflPf+ta3dPDgQf2Df/AP9P3vf19/+Id/qDe+8Y3MFsfY0aNHdcUVV+jnfu7n9NGPflQvvPDCxv9NTEwEODIE7dlnn9VLL72kZ599Vp1OR0eOHJEk/fzP/7xSqVSwg8NQzM3N6aabbtJb3/pWvf3tb9d/+k//ScePH9f73ve+oIeGgDSbTT399NMb//7BD36gI0eOaN++fXr9618f4MgQpEKhoM997nNaXl7WmWeeuVGHYGxsTMlkMuDRISh33HGHrr/+er3+9a/Xyy+/rM997nN69NFH9T/+x/8IemgjL7ZLqZ164okn9Du/8zv6q7/6Kx0/flyve93rdN111+lDH/qQzjnnnKCHh4Dce++9u17k8pKKt5tvvlmf/exnt33+q1/9qq644orhDwiB+NSnPqW7775b9XpdF110kT7xiU/o0ksvDXpYCMijjz6qK6+8ctvnb7rpJt17773DHxBCwTCMHT//mc98RjfffPNwB4PQeP/736+HH35Yzz//vMbGxvTmN79Zv//7v69rr7026KGNPIIxAAAAACDW2BQJAAAAAIg1gjEAAAAAINYIxgAAAACAWCMYAwAAAABijWAMAAAAAIg1gjEAAAAAINYIxgAAAACAWCMYAwAAAABijWAMAAAAAIg1gjEAACPk85//vJLJpJ5//vmNz73vfe/Tm9/8Zq2trQU4MgAAwsuwbdsOehAAAMAbtm3roosu0tTUlD75yU/qzjvv1H/5L/9F3/jGN3TOOecEPTwAAELJCnoAAADAO4Zh6CMf+Yh+7dd+TRMTE/rkJz+parW6EYpzuZweffRRXX311SqXywGPFgCAcGDGGACAEfSWt7xF3/3ud/XAAw/o8ssv3/j8o48+qpdfflmf/exnCcYAAPw99hgDADBivvKVr+ipp55Sp9PR+Pj4pv+74oordOaZZwY0MgAAwolgDADACHn88cf1z/7ZP9Mf/dEf6eqrr9Yf/uEfBj0kAABCjz3GAACMiGeeeUbvete79MEPflDvfe97df755+uyyy7T448/rre85S1BDw8AgNBixhgAgBHw0ksv6brrrlM2m9Xtt98uSbr00kt1/fXX64Mf/GDAowMAINyYMQYAYATs27dPTz311LbP/9mf/VkAowEAIFqoSg0AQIxcc801+qu/+isdP35c+/bt0xe+8AVddtllQQ8LAIBAEYwBAAAAALHGHmMAAAAAQKwRjAEAAAAAsUYwBgAAAADEGsEYAAAAABBrBGMAAAAAQKwRjAEAAAAAsUYwBgAAAADEGsEYAAAAABBrBGMAAAAAQKwRjAEAAAAAsUYwBgAAAADE2v8HJx8ZkqU0NB8AAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "transformed_data = pca(data_iris_no_labels, 2) # dane przekształcone za pomocą PCA\n", "fig = plot_unlabeled_data(transformed_data[:, 0], transformed_data[:, 1])" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "Analiza głównych składowych umożliwiła stworzenie powyższego wykresu, który wizualizuje 4-wymiarowe dane ze zbioru *iris* na 2-wymiarowej płaszczyźnie.\n", "\n", "Współrzędne $x_1$ i $x_2$, stanowiące osi wykresu, zostały uzyskane w wyniku działania algorytmu PCA (**nie** są to żadne z oryginalnych cech ze zbioru *iris* – ani długość płatka, ani szerokość płatka itp. – tylko nowo utworzone cechy)." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Tutaj można zobaczyć, jak algorytmy redukcji wymiarów (w tym PCA) działają w praktyce:\n", " * https://projector.tensorflow.org\n", " * https://biit.cs.ut.ee/clustvis\n", " * https://labriata.github.io/jsinscience/pca/index.html" ] } ], "metadata": { "celltoolbar": "Slideshow", "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.10.12" }, "livereveal": { "start_slideshow_at": "selected", "theme": "white" } }, "nbformat": 4, "nbformat_minor": 4 }