diff --git a/wyk/08_Uczenie_nienadzorowane.ipynb b/wyk/08_Uczenie_nienadzorowane.ipynb index c1489e0..76bd7e1 100644 --- a/wyk/08_Uczenie_nienadzorowane.ipynb +++ b/wyk/08_Uczenie_nienadzorowane.ipynb @@ -148,7 +148,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "45625984fec24b809709cb7ef9877684", + "model_id": "04e9529616774877ba5c54fc66c08e89", "version_major": 2, "version_minor": 0 }, @@ -210,7 +210,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 21, @@ -251,7 +251,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 23, "metadata": { "slideshow": { "slide_type": "notes" @@ -259,8 +259,9 @@ }, "outputs": [], "source": [ - "# Algorytm k średnich\n", - "def k_means(X, k, distance=euclidean_distance):\n", + "# Algorytm k średnich, \n", + "# który zapisuje historię obliczeń na potrzeby interaktywnego wykresu\n", + "def k_means_with_history(X, k, distance=euclidean_distance):\n", " history = []\n", " Y = []\n", " \n", @@ -290,7 +291,7 @@ }, { "cell_type": "code", - "execution_count": 74, + "execution_count": 24, "metadata": { "slideshow": { "slide_type": "notes" @@ -324,7 +325,7 @@ }, { "cell_type": "code", - "execution_count": 75, + "execution_count": 25, "metadata": { "slideshow": { "slide_type": "subslide" @@ -333,7 +334,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAroAAAGbCAYAAAAr5TMXAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3df4wk533f+c9XM2yQqhZPm2gvMxguRQhr5w9LdrfQ3LJ3jg4h2Zm0TFD5I4AUYGNkEUBn30WQIQaG7RvIZ3uM5ICTYdgErCjWMXZWZ8EXOY6gsDMRQFNZzUBFzqpbpmQqwFwikxzPRGt7LbLLS7e395s/akaaXvbO9M5Wd1U//X4Bg55++pmqb3X1j8/WPvWUubsAAACA0Lyp6AIAAACAcSDoAgAAIEgEXQAAAASJoAsAAIAgEXQBAAAQJIIuAAAAgjSRoGtmc2bWNrPPD3nsUTP7tpl19n8+NomaAAAAELb5Ca3nI5JelHT/bR6/7O6P3ckC3/a2t/lDDz10t3UBAABgil25cuVP3f30sMfGHnTN7AFJPybplyV9NK/lPvTQQ9ra2sprcQAAAJhCZvbHt3tsEkMXflXST0u6eUSfHzKzr5pZy8y+bwI1AQAAIHBjDbpm9pikb7n7lSO6fUXS2939ByT9uqTfP2J5HzKzLTPbunr1as7VAgAAICTjPqK7LOlxM/umpM9Ieo+ZXTrcwd1fdffu/u9PS7rHzN42bGHu/kl3b7h74/TpoUMxAAAAAEljDrru/rPu/oC7PyTpg5KecfcLh/uY2YKZ2f7v5/Zr+rNx1gUAAIDwTWrWhQFm9hOS5O6fkPQPJP2kmd2QdF3SB93di6gLAAAA4bBpzZSNRsOZdQEAAGC2mdkVd28Me4wrowEAACBIBF0AAAAEiaALAACAIBF0AQAAECSCLgAAAIJE0AUAAECQCplHFwXp96VWS2q3pXpdajalubmiqwIAABgLgu6s6PellRUpSaQ0laJIimNpfZ2wCwAAgsTQhVnRamUht9uV3LPbJMnaAQAAAkTQnRXtdnYk97A0lTqdYuoBAAAYM4LurKjXs+EKh0WRVKsVUw8AAMCYEXRnRbOZjcmtViWz7DaOs3YAAIAAcTLarJiby048a7Wy4Qq1GrMuAACAoBF0Z8ncnPTYY9kPAABA4Bi6AAAAgCARdAEAABAkgi4AAACCRNAFAABAkAi6AAAACBJBFwAAAEEi6AIAACBIBF0AAAAEiaALAACAIBF0AQAAECSCLgAAAIJE0AUAAECQCLoAAAAIEkEXAAAAQSLoAgAAIEgEXQAAAASJoAsAAIAgEXQBAAAQJIIuAAAAgjRfdAHIQb8vtVpSuy3V61KzKc3NFV0VAABAoQi6067fl1ZWpCSR0lSKIimOpfV1wi4AAJhpDF2Ydq1WFnK7Xck9u02SrB0AAGCGEXSnXbudHck9LE2lTqeYegAAAEqCoDvt6vVsuMJhUSTVasXUAwAAUBIE3WnXbGZjcqtVySy7jeOsHQAAYIZxMtq0m5vLTjxrtbLhCrUasy4AAACIoBuGuTnpsceyHwAAAEhi6AIAAAACRdAFAABAkAi6AAAACBJBFwAAAEEi6AIAACBIBF0AAAAEienFZkm/n823225nV1Rjvl0AABAwgu6s6PellRUpSaQ0zS4THMfZxSYIuwAAIEAMXZgVrVYWcrtdyT27TZKsHQAAIEAE3VnRbmdHcg9L0+yywQAAAAEi6M6Kej0brnBYFEm1WjH1AAAAjBlBd1Y0m9mY3GpVMstu4zhrBwAACBAno82KubnsxLNWKxuuUKsx6wIAAAgaQXeWzM1Jjz2W/QAAAASOoQsAAAAIEkEXAAAAQSLoAgAAIEgEXQAAAASJoAsAAIAgTSTomtmcmbXN7PNDHjMz+zUz2zazPzSzd0+iJgAAAIRtUtOLfUTSi5LuH/JYU9L37P/Ekn5j/zZc/X42n227nV2xjPlsAQAAcjf2oGtmD0j6MUm/LOmjQ7q8X9Jvu7tL+rKZvdXMFt19d9y1FaLfl1ZWpCSR0jS7DG8cZxdzIOwCAADkZhJDF35V0k9Lunmbx5ckvXzo/iv7bWFqtbKQ2+1K7tltkmTtAAAAyM1Yg66ZPSbpW+5+5ahuQ9r8Nsv7kJltmdnW1atXc6lx4trt7EjuYWmaXZYXAAAAuRn3Ed1lSY+b2TclfUbSe8zs0i19XpF05tD9ByT9ybCFufsn3b3h7o3Tp0+Po97xq9ez4QqHRZFUqxVTDwAAQKDGGnTd/Wfd/QF3f0jSByU94+4Xbun2OUk/vj/7wg9K+naw43Ol7MSzOJaqVcksu43jrB0AAAC5mdSsCwPM7Cckyd0/IelpSe+TtC3pLyVdLKKmiZmby048a7Wy4Qq1GrMuAAAAjIFlkx1Mn0aj4VtbW0WXAQAAgAKZ2RV3bwx7jCujAQAAIEgEXQAAAASJoAsAAIAgEXQBAAAQJIIuAAAAglTI9GIYUb+fTUPWbmcXmijbNGRlrw8AAMw0gm5Z9fvSyoqUJNklgqMou7DE+no5wmTZ6wMAADOPoQtl1WplIbLbldyz2yTJ2sug7PUBAICZR9Atq3Y7O1J6WJpmV1Mrg7LXBwAAZh5Bt6zq9Ww4wGFRlF0yuAzKXh8AAJh5BN2yajazMa/VqmSW3cZx1l4GZa8PAADMPE5GK6u5uezErlYrGw5Qq5VrVoOy1wcAAGaeuXvRNZxIo9Hwra2tossAAABAgczsirs3hj3G0AUAAAAEiaALAACAIBF0AQAAECSCLgAAAIJE0AUAAECQCLoAAAAIEvPozpJ+P5v3tt3Ormx2u3lv8+6Xd30AAASif7Ov1nZL7d226ot1Nc82Nfem8X/3FbXeSSPozop+X1pZkZJEStPscr1xnF304XCYzLtf3vUBABCI/s2+Vi6tKNlJlPZSRZVI8VKs9QvrYw2dRa23CAxdmBWtVhYiu13JPbtNkqx9nP3yrg8AgEC0tltKdhJ1e125XN1eV8lOotb2eL/7ilpvEQi6s6Ldzo6UHpam2eV7x9kv7/oAAAhEe7ettDf43Zf2UnX2xvvdV9R6i0DQnRX1ejYc4LAokmq18fbLuz4AAAJRX6wrqgx+90WVSLWF8X73FbXeIhB0Z0WzmY15rVYls+w2jrP2cfbLuz4AAALRPNtUvBSrWqnKZKpWqoqXYjXPjve7r6j1FsHcvegaTqTRaPjW1lbRZUyXg1kNOp3sSOlxsynk1S/v+gAACMTB7AedvY5qC7WJz7ow6fWOg5ldcffG0McIugAAAJhWRwVdhi4AAAAgSARdAAAABImgCwAAgCARdAEAABAkgi4AAACCRNAFAABAkAi6s+T6demDH5Te8Y7s9vr1oisCAAAYm/miC8CEXL8u3X+/dONGdv+//Tfps5+VXn1Vuu++YmsDAAAYA47ozoqLF78bcg/cuJG1AwAABIigOyuee254+/PPT7YOAACACSHozopz54a3P/zwZOsAAACYEILurHjqKWn+liHZ8/NZOwAAQIAIurPivvuyE88+8IFs1oUPfIAT0QAAQNCYdWGW3Hef9JnPFF0FAADARHBEFwAAAEEi6AIAACBIBF0AAAAEiaALAACAIBF0AQAAECSCLgAAAILE9GKj6PelVktqt6V6XWo2pbm5oqv6rrLXBwBAyfVv9tXabqm921Z9sa7m2abm3sR36bQj6B6n35dWVqQkkdJUiiIpjqX19XKEybLXBwBAyfVv9rVyaUXJTqK0lyqqRIqXYq1fWCfsTjmGLhyn1cpCZLcruWe3SZK1l0HZ6wMAoORa2y0lO4m6va5crm6vq2QnUWub79JpR9A9TrudHSk9LE2lTqeYem5V9voAACi59m5baW/wuzTtpers8V067Qi6x6nXs+EAh0WRVKsVU8+tyl4fAAAlV1+sK6oMfpdGlUi1Bb5Lpx1B9zjNZjbmtVqVzLLbOM7ay6Ds9QEAUHLNs03FS7GqlapMpmqlqngpVvMs36XTzty96BpOpNFo+NbW1mRWdjCrQaeTHSkt26wGZa8PAICSO5h1obPXUW2hxqwLU8TMrrh7Y+hjBF0AAABMq6OCLkMXAAAAECSCLgAAAIJE0AUAAECQCLoAAAAIEkEXAAAAQRp70DWze83sOTP7qpl93cx+YUifR83s22bW2f/52Ljrmgq9nvSxj0nvfW922+vdXb9+X/r856Vf+qXstt+/u34AAAAlNvbpxczMJEXu3jWzeyR9SdJH3P3Lh/o8Kumfuftjoy43+OnFej1pYUG6du27badOSXt7UqVy5/36fWllRUqS7BLBUZRdWGJ9fXDO3VH7AQAAlECh04t5prt/9579n+mcvHeS1tYGw6uU3V9bO1m/VisLr92u5J7dJknWfpJ+AAAAJTeRMbpmNmdmHUnfkvQFd0+GdPuh/eENLTP7vtss50NmtmVmW1evXh1rzYXb2Bjevrl5sn7tdnaE9rA0za6mdpJ+AAAAJTeRoOvufXevSXpA0jkze+ctXb4i6e3u/gOSfl3S799mOZ9094a7N06fPj3eoou2vDy8/fz5k/Wr17NhCIdFUXbJ4JP0AwAAKLmJXwLYzH5eUuru//cRfb4pqeHuf3q7PozRvcN+jNEFAAABOmqM7vwEVn5a0l+7+1+Y2X2SfkTS/3VLnwVJ/93d3czOKTvS/Gfjrq3UKpUsrK6tZcMQzp+XVlcHw+ud9Jubk/76r6WHHpI+8IHsCG2z+cbwOjeXhdpWKxuucLt+AAAAJTeJWRe+X9JvSZpTFmB/191/0cx+QpLc/RNm9k8l/aSkG5KuS/qou2/ebpnSDBzRHYdHH81un322yCoAAAByU+gRXXf/Q0n1Ie2fOPT7k5KeHHctAAAAmB1cGQ0AAABBIugCAAAgSARdAAAABImgCwAAgCARdAEAABCksc+6gAno9bJ5dDc2siulDZtHV5Ju3pS+8Q3pHe+Qzp2TnnpKuu++ky+v38/m2223syuq3e18u3kvD8DU6d/sq7XdUnu3rfpiXc2zTc29ic+BvOX9PLPfUFYTvzJaXphHd9+oV0a7fl1685sH/3Z+Xnr11cGwm/eV1kbFFdmAmde/2dfKpRUlO4nSXqqoEileirV+YZ3QlKO8n2f2G4p21Dy6DF2Ydmtrg6FUyu5/7/dmF4g4+Hn729/4tzduZO2H+33v9w5f3traYFurlYXSbldyz26TJGs/ibyXB2DqtLZbSnYSdXtduVzdXlfJTqLWNp8Decr7eWa/ocwIutNuY2N4+7e/PXj/tdeG97u1/da/O7B5y4Xq2u3syOthaZpdNvgk8l4egKnT3m0r7Q1+DqS9VJ09PgfylPfzzH5DmRF0p93y8vD2D384u9Tvwc/73z+83/vfP9jvwx8e3u/8+cH79Xo2vOCwKJJqtVErH+/yAEyd+mJdUWXwcyCqRKot8DmQp7yfZ/YbyowxutOOMboAAsFYz8lgjC5Cc9QYXYJuCA5mSdjczI683m6WhB/+4WzWhbe8RXr44eNnXThueQezJHQ62ZHXvGZdyGt5AKbOwdn7nb2Oags1zt4fk7yfZ/YbikTQRebRR7PbZ58tsgoAAIDcMOsCAAAAZg5BFwAAAEEi6AIAACBIBF0AAAAEiaALAACAIBF0AQAAEKT5ogtADg7mn223syuM3W7+2bynFRt1vQBQkIP5Xdu7bdUX68zvWrDejZ7WLq9p46UNLT+4rNVHVlWZHzJPe454Dcw2gu60K+qKYlzJDEDJccWucund6Gnh4wu69np25c1nvvmMnnzuSe09sTe2sMtrAAxdmHatVhY2u13JPbtNkqw9xPUCwIha2y0lO4m6va5crm6vq2QnUWubz6kirF1e+07IPXDt9Wtau7w2tnXyGgBBd9q129kR1cPSNLuMbojrBYARtXfbSnuDn1NpL1Vnj8+pImy8tDG0ffPlzbGtk9cACLrTrl7Phg0cFkVSrRbmegFgRPXFuqLK4OdUVIlUW+BzqgjLDy4PbT9/5vzY1slrAATdaddsZmNjq1XJLLuN46w9xPUCwIiaZ5uKl2JVK1WZTNVKVfFSrOZZPqeKsPrIqk7de2qg7dS9p7T6yOrY1slrAObuRddwIo1Gw7e2toouoxwOZj/odLIjqpOa/aCo9QLAiA7OuO/sdVRbqHHGfcEOZl3YfHlT58+cn+isC7wGwmVmV9y9MfQxgi4AAACm1VFBl6ELAAAACBJBFwAAAEEi6AIAACBIBF0AAAAEiaALAACAII0cdM3sR83sX5lZbf/+h8ZXFgAAAHB35u+g7/8m6aKkVTP7G5K4rMhJHcw/225nVxi73fyzvZ60tiZtbEjLy9LqqlQZMt/gqMvLuz4AyNnBnKft3bbqi/W7nvN01OXlvd686ytqeXnLs76y71uUw50E3avu/heS/pmZ/QtJD4+pprD1+9LKipQkUppml82NY2l9fTBM9nrSwoJ07Vp2/5lnpCeflPb2BsPuqMvLuz4AyFn/Zl8rl1aU7CRKe6miSqR4Kdb6hfUTBZNRl5f3evOur6jl5S3P+sq+b1EedzJG9z8c/OLuPyPpt/MvZwa0WlmI7HYl9+w2SbL2w9bWvhtyD1y7lrWfZHl51wcAOWttt5TsJOr2unK5ur2ukp1Ere2Tff6Mury815t3fUUtL2951lf2fYvyODbomtmvmpm5+78/3O7uvz6+sgLWbmdHSg9L0+wyuodtbAz/+83Nky0v7/oAIGft3bbS3uDnT9pL1dk72efPqMvLe71511fU8vKWZ31l37coj1GO6HYlfc7M3ixJZvZ3zew2KQzHqtez4QCHRZFUu2XI8/Ly8L8/f/5ky8u7PgDIWX2xrqgy+PkTVSLVFk72+TPq8vJeb971FbW8vOVZX9n3Lcrj2KDr7quSfkfSF83sS5KekPQz4y4sWM1mNua1WpXMsts4ztoPW12VTp0abDt1Kms/yfLyrg8ActY821S8FKtaqcpkqlaqipdiNc+e7PNn1OXlvd686ytqeXnLs76y71uUh7n70R3M3itpVZJJWpT0uLv/lwnUdqRGo+FbW1tFl3EyB7MadDrZkdLjZl3Y3MyO5B4368Jxy8u7PgDI2cEZ8p29jmoLtdxmIThueXmvN+/6ilpe3vKsr+z7FpNjZlfcvTH0sRGC7jOSPubuXzKzd0n6N5I+6u7P5F/q6KY66AIAACAXRwXdY6cXc/f3HPr9BTNrSvqspPO3/ysAAACgWHd8CWB335X03jHUAgAAAOTmjoOuJLn79bwLAQAAAPJ0oqALAAAAlB1BFwAAAEE69mQ0BKTbld73PumFF6R3vUt6+ulsntxbHUwv1m5nF5BgejEAd+lgiqf2blv1xfrEp+/Ka71lX17e6827HzBpBN1Z0e1Kb3nLd+9fvpzdf+21wbDb70srK1KSZJf+jaLsghHr64RdACfSv9nXyqUVJTuJ0l6qqBIpXoq1fmF9rGEo7/WWfXl5rzfvfkARGLowK973vtHaW60s5Ha7knt2myRZOwCcQGu7pWQnUbfXlcvV7XWV7CRqbY/3cyXv9ZZ9eXmvN+9+QBEIurPihReGt3/ta4P32+3sSO5haZpdJQ0ATqC921baG/xcSXupOnvj/VzJe71lX17e6827H1AEgu6seNe7hre/852D9+v1bLjCYVGUXQoYAE6gvlhXVBn8XIkqkWoL4/1cyXu9ZV9e3uvNux9QBILurHj66dHam81sTG61Kpllt3GctQPACTTPNhUvxapWqjKZqpWq4qVYzbPj/VzJe71lX17e6827H1AEc/eiaziRRqPhW1tbRZcxXQ5mXfja17IjucfNutDpZEdymXUBwF06OCu/s9dRbaE28dkF8lpv2ZeX93rz7geMg5ldcffG0McIugAAAJhWRwVdhi4AAAAgSARdAAAABImgCwAAgCARdAEAABAkgi4AAACCNPaga2b3mtlzZvZVM/u6mf3CkD5mZr9mZttm9odm9u5x1wUAAICwzU9gHX8l6T3u3jWzeyR9ycxa7v7lQ32akr5n/yeW9Bv7t9PlYP7Zdju7wtjdzj876vKuX5cuXpSee046d0566inpvvvKsx0ASuNgvtP2blv1xfpt5zvt3ehp7fKaNl7a0PKDy1p9ZFWV+Upp1jvq8vKur6h+ee+PURWx3rK/BsoulO3Iy0Tn0TWzN0v6kqSfdPfkUPu/lPSsu//O/v3/IulRd9+93bJKN49uvy+trEhJIqVpdtncOJbW108WEkdd3vXr0v33SzdufLdtfl569dWThd28twNAafRv9rVyaUXJTqK0lyqqRIqXYq1fWB/4Iuzd6Gnh4wu69vq177SduveU9p7YO1HIyXu9oy4v7/qK6pf3/hhVEest+2ug7ELZjjtV+Dy6ZjZnZh1J35L0hcMhd9+SpJcP3X9lv216tFpZOOx2JffsNkmy9nEu7+LFwZArZfcvXizHdgAojdZ2S8lOom6vK5er2+sq2UnU2h58f69dXhsIGpJ07fVrWru8Vor1jrq8vOsrql/e+2NURay37K+BsgtlO/I0kaDr7n13r0l6QNI5M3vnLV1s2J/d2mBmHzKzLTPbunr16jhKPbl2OzsCeliaZpfRHefynntu+N8///x41wtg6rR320p7g+/vtJeqszf4/t54aWPo32++vFmK9Y66vLzrK6pf3vtjVEWst+yvgbILZTvyNNFZF9z9LyQ9K+nv3fLQK5LOHLr/gKQ/GfL3n3T3hrs3Tp8+PbY6T6Rez/6b/7Aokmq18S7v3Lnhf//ww+NdL4CpU1+sK6oMvr+jSqTawuD7e/nB5aF/f/7M+VKsd9Tl5V1fUf3y3h+jKmK9ZX8NlF0o25GnScy6cNrM3rr/+32SfkTSN27p9jlJP74/+8IPSvr2UeNzS6nZzMayVquSWXYbx1n7OJf31FPZmNzD5uez9jJsB4DSaJ5tKl6KVa1UZTJVK1XFS7GaZwff36uPrOrUvacG2k7de0qrj6yWYr2jLi/v+orql/f+GFUR6y37a6DsQtmOPI39ZDQz+35JvyVpTlmw/l13/0Uz+wlJcvdPmJlJelLZkd6/lHTR3Y8806x0J6NJ352toNPJjoDmNevCccs7mHXh+eezI7l5zbqQ13YAKI2DM7I7ex3VFmrHnuW/+fKmzp85n9usC3mtd9Tl5V1fUf3y3h+jKmK9ZX8NlF0o23EnjjoZbaKzLuSplEEXAAAAE1X4rAsAAADApBF0AQA4oUf/9aN69F8/WnQZAG6DoAsAAIAgEXQBAAAQJIIuAAAAgkTQBQAAQJDmj++C0juY97bdzq5sxry3wFgczE/Z3m2rvlgPen7KUbf1YM7TjZc2tPzgcm7z7R633rz74e7wPL8Rz0k5EHSnXb8vraxISSKlaXa53jiW1tcJu0CO+jf7Wrm0omQnUdpLFVUixUux1i+sB/flNeq29m70tPDxBV17/Zok6ZlvPqMnn3tSe0/snSjsjrrevPvh7vA8vxHPSXkwdGHatVpZyO12JffsNkmydgC5aW23lOwk6va6crm6va6SnUSt7fDea6Nu69rlte+E3APXXr+mtctrY11v3v1wd3ie34jnpDwIutOu3c6O5B6WptnlewHkpr3bVtobfK+lvVSdvfDea6Nu68ZLG0P/fvPlzbGuN+9+uDs8z2/Ec1IeBN1pV69nwxUOiyKpViumHiBQ9cW6osrgey2qRKothPdeG3Vblx9cHvr358+cH+t68+6Hu8Pz/EY8J+Vh7l50DSfSaDR8a2ur6DKKxxhdYCJmaczdScfoStKpe08FMUZ31KudffGPvyhJ+jtv/zsj9X/2Hz87Ur9pMkvvjVHxnEyWmV1x98bQxwi6ATiYdaHTyY7kMusCMBYHZ1F39jqqLdSCPot61G09mHVh8+VNnT9zPrdZF45bb979bkXQvTOz9N4YFc/J5BB0AQAYg4NAHGqABabBUUGXMboAAAAIEkEXAAAAQSLoAgAAIEgEXQAAAASJoAsAAIAgEXQBAAAQpPmiCwAA5ONg3s72blv1xfrQeTtH6VOkUevLu9/BfMAbL21o+cHl284HfOvyXC6TnXh7R11v2YWwHWV/b+RtVraXeXQBIACjXImp7FdrKurKaKNe4W3Y8ubfNK/v/1vfry/+4y/e8fbmfWW5ooSwHWV/b+QttO1lHl0ACFxru6VkJ1G315XL1e11lewkam237qhPkUatL+9+a5fXBkKaJF17/ZrWLq8du7xX/+pV/fn1Pz/R9o663rILYTvK/t7I2yxtL0EXAALQ3m0r7aUDbWkvVWevc0d9ijRqfXn323hpY2g9my9vHrs8d9cHvu8Dt9mio4263rILYTvK/t7I2yxtL0EXAAJQX6wrqkQDbVElUm2hdkd9ijRqfXn3W35weWg958+cP9HyRjXqessuhO0o+3sjb7O0vQRdAAhA82xT8VKsaqUqk6laqSpeitU827yjPkUatb68+60+sqpT954aaDt17ymtPrJ6ouWNatT1ll0I21H290beZml7ORkNAAJxcBZ1Z6+j2kLtyFkXjupTpFHry7vfwawBmy9v6vyZ88fOupDX8zfqessuhO0o+3sjbyFt71EnoxF0AQAAMLWYdQEAAAAzh6ALAACAIBF0AQAAECSCLgAAAIJE0AUAAECQ5osuAABwtIOpmzZe2tDyg8t3NXXTwZRC7d226ov1Y6flOq7frMn7ebneu66Ln7uo53ae07mlc3rq8ad0X+W+0tQHTDumFwOAEuvd6Gnh4wu69vq177SduveU9p7Yu+Ow27/Z18qlFSU7idJeqqgSKV6KtX5hfSAMjdpv1uT9vFzvXdf9/+J+3fAb32mbt3m9+jOvnijsst8wq5heDACm1NrltYGQK0nXXr+mtctrd7ys1nZLyU6ibq8rl6vb6yrZSdTabp2o36zJ+3m5+LmLAyFXkm74DV383MVS1AeEgKALACW28dLG0PbNlzfveFnt3bbSXjrQlvZSdfY6J+o3a/J+Xp7beW5o+/M7z59oeew34I0IugBQYssPLg9tP3/m/B0vq75YV1SJBtqiSqTaQu1E/WZN3s/LuaVzQ9sfXnr4RMtjvwFvRNAFgBJbfWRVp+49NdB26qhtwqgAABAESURBVN5TWn1k9Y6X1TzbVLwUq1qpymSqVqqKl2I1zzZP1G/W5P28PPX4U5q3wXPC521eTz3+VCnqA0LAyWgAUHIHsy5svryp82fO5zLrQmevo9pC7dhZF47rN2vyfl4OZl14fud5Pbz0cG6zLrDfMEuOOhmNoAsAAICpxawLAAAAmDkEXQAAAASJoAsAAIAgEXQBAAAQJIIuAAAAgkTQBQAAQJDmj+8CAGE7mHu0vdtWfbE+tXOPlnk7ylwb7h77F2V9DRB0Acy0/s2+Vi6tKNlJlPZSRZVI8VKs9QvrpfiQHlWZt6PMteHusX9R5tcAQxcAzLTWdkvJTqJuryuXq9vrKtlJ1NpuFV3aHSnzdpS5Ntw99i/K/Bog6AKYae3dttJeOtCW9lJ19joFVXQyZd6OMteGu8f+RZlfAwRdADOtvlhXVIkG2qJKpNpCraCKTqbM21Hm2nD32L8o82uAoAtgpjXPNhUvxapWqjKZqpWq4qVYzbPNoku7I2XejjLXhrvH/kWZXwPm7kXXcCKNRsO3traKLgNAAA7OFu7sdVRbqJXmbOE7VebtKHNtuHvsXxT5GjCzK+7eGPoYQRcAAADT6qigy9AFAAAABImgCwAAgCARdAEAABAkgi4AAACCRNAFAABAkMYedM3sjJn9gZm9aGZfN7OPDOnzqJl928w6+z8fG3ddAAAACNv8BNZxQ9IT7v4VM3uLpCtm9gV3/6Nb+l1298cmUA+AvPT7UqsltdtSvS41m9Icc2fm7WB+yvZuW/XF+m3npxy1X5mVfRtGra93o6e1y2vaeGlDyw8ua/WRVVXmKwVUPH3K/hrAdBl70HX3XUm7+7+/ZmYvSlqSdGvQBTBN+n1pZUVKEilNpSiS4lhaXyfs5qh/s6+VSytKdhKlvVRRJVK8FGv9wvrAl/+o/cqs7Nswan29Gz0tfHxB116/Jkl65pvP6MnnntTeE3uE3WOU/TWA6TPRMbpm9pCkuqRkyMM/ZGZfNbOWmX3fJOsCcAKtVhZyu13JPbtNkqwduWltt5TsJOr2unK5ur2ukp1Ere3WifqVWdm3YdT61i6vfSfkHrj2+jWtXV6bZLlTqeyvAUyfiQVdM6tK+qykn3L3V295+CuS3u7uPyDp1yX9/m2W8SEz2zKzratXr463YABHa7ezI7mHpanU6RRTT6Dau22lvcHnOe2l6ux1TtSvzMq+DaPWt/HSxtC/33x5c2y1haLsrwFMn4kEXTO7R1nI/bS7/96tj7v7q+7e3f/9aUn3mNnbhvT7pLs33L1x+vTpsdcN4Aj1ejZc4bAokmq1YuoJVH2xrqgy+DxHlUi1hdqJ+pVZ2bdh1PqWH1we+vfnz5wfW22hKPtrANNnErMumKRPSXrR3X/lNn0W9vvJzM7t1/Vn464NwF1oNrMxudWqZJbdxnHWjtw0zzYVL8WqVqoymaqVquKlWM2zzRP1K7Oyb8Oo9a0+sqpT954aaDt17ymtPrI6yXKnUtlfA5g+5u7jXYHZ/yLpsqQXJN3cb/45SQ9Kkrt/wsz+qaSfVDZDw3VJH3X3I/+Pp9Fo+NbW1tjqBjCCg1kXOp3sSC6zLozFwVnonb2Oagu1Y2ddOK5fmZV9G0at72DWhc2XN3X+zHlmXbgDZX8NoHzM7Iq7N4Y+Nu6gOy4EXQAAABwVdLkyGgAAAIJE0AUAAECQCLoAAAAIEkEXAAAAQSLoAgAAIEgEXQAAAARpvugCAOBOHcyz2d5tq75YL908m6PWV/btAIBpR9AFMFX6N/taubSiZCdR2ksVVSLFS7HWL6yXIiSOWl/ZtwMAQsDQBQBTpbXdUrKTqNvryuXq9rpKdhK1tltFlyZp9PrKvh0AEAKCLoCp0t5tK+2lA21pL1Vnr1NQRYNGra/s2wEAISDoApgq9cW6oko00BZVItUWagVVNGjU+sq+HQAQAoIugKnSPNtUvBSrWqnKZKpWqoqXYjXPNosuTdLo9ZV9OwAgBObuRddwIo1Gw7e2toouA0ABDmYr6Ox1VFuolW62glHrK/t2AMA0MLMr7t4Y+hhBFwAAANPqqKDL0AUAAAAEiaALAACAIBF0AQAAECSCLgAAAIJE0AUAAECQ5osuAEfo96VWS2q3pXpdajalOaYeAg6m5WrvtlVfrDMt174yPy9lrg1AuAi6ZdXvSysrUpJIaSpFkRTH0vo6YRczrX+zr5VLK0p2EqW9VFElUrwUa/3C+kwHpzI/L2WuDUDYGLpQVq1WFnK7Xck9u02SrB2YYa3tlpKdRN1eVy5Xt9dVspOotT3b740yPy9lrg1A2Ai6ZdVuZ0dyD0tTqdMpph6gJNq7baW9wfdG2kvV2Zvt90aZn5cy1wYgbATdsqrXs+EKh0WRVKsVUw9QEvXFuqLK4HsjqkSqLcz2e6PMz0uZawMQNoJuWTWb2ZjcalUyy27jOGsHZljzbFPxUqxqpSqTqVqpKl6K1Tw72++NMj8vZa4NQNjM3Yuu4UQajYZvbW0VXcZ4Hcy60OlkR3KZdQGQ9N0z+Dt7HdUWapzBv6/Mz0uZawMw3czsirs3hj5G0AUAAMC0OiroMnQBAAAAQSLoAgAAIEgEXQAAAASJoAsAAIAgEXQBAAAQJIIuAAAAgjRfdAEAgHwczFXb3m2rvlifyrlqQ9gGKZztAKYdQRcAAtC/2dfKpRUlO4nSXqqoEileirV+YX1qAlYI2yCFsx1ACBi6AAABaG23lOwk6va6crm6va6SnUSt7VbRpY0shG2QwtkOIAQEXQAIQHu3rbSXDrSlvVSdvU5BFd25ELZBCmc7gBAQdAEgAPXFuqJKNNAWVSLVFmoFVXTnQtgGKZztAEJA0AWAADTPNhUvxapWqjKZqpWq4qVYzbPNoksbWQjbIIWzHUAIzN2LruFEGo2Gb21tFV0GAJTGwZn+nb2Oagu1qTzTP4RtkMLZDmAamNkVd28MfYygCwAAgGl1VNBl6AIAAACCRNAFAABAkAi6AAAACBJBFwAAAEEi6AIAACBIBF0AAAAEiaALAACAIBF0AQAAECSCLgAAAIJE0AUAAECQCLoAAAAIEkEXAAAAQSLoAgAAIEgEXQAAAASJoAsAAIAgEXQBAAAQJIIuAAAAgkTQBQAAQJAIugAAAAjS2IOumZ0xsz8wsxfN7Otm9pEhfczMfs3Mts3sD83s3eOuCwAAAGGbn8A6bkh6wt2/YmZvkXTFzL7g7n90qE9T0vfs/8SSfmP/FgDGrn+zr9Z2S+3dtuqLdTXPNjX3prmiywIA3KWxB11335W0u//7a2b2oqQlSYeD7vsl/ba7u6Qvm9lbzWxx/28BYGz6N/taubSiZCdR2ksVVSLFS7HWL6wTdgFgyk10jK6ZPSSpLim55aElSS8fuv/KfhsAjFVru6VkJ1G315XL1e11lewkam23ii4NAHCXJhZ0zawq6bOSfsrdX7314SF/4kOW8SEz2zKzratXr46jTAAzpr3bVtpLB9rSXqrOXqegigAAeZlI0DWze5SF3E+7++8N6fKKpDOH7j8g6U9u7eTun3T3hrs3Tp8+PZ5iAcyU+mJdUSUaaIsqkWoLtYIqAgDkZRKzLpikT0l60d1/5TbdPifpx/dnX/hBSd9mfC6ASWiebSpeilWtVGUyVStVxUuxmmebRZcGALhLk5h1YVnSP5L0gpkd/F/gz0l6UJLc/ROSnpb0Pknbkv5S0sUJ1AUAmnvTnNYvrKu13VJnr6PaQo1ZFwAgEJZNdDB9Go2Gb21tFV0GAAAACmRmV9y9MewxrowGAACAIBF0AQAAECSCLgAAAIJE0AUAAECQCLoAAAAIEkEXAAAAQSLoAgAAIEgEXQAAAASJoAsAAIAgEXQBAAAQJIIuAAAAgmTuXnQNJ2JmVyX98YRX+zZJfzrhdeL22B/lwb4oF/ZHebAvyoN9US557o+3u/vpYQ9MbdAtgpltuXuj6DqQYX+UB/uiXNgf5cG+KA/2RblMan8wdAEAAABBIugCAAAgSATdO/PJogvAAPZHebAvyoX9UR7si/JgX5TLRPYHY3QBAAAQJI7oAgAAIEgE3RGY2f9jZt8ys68VXcusM7MzZvYHZvaimX3dzD5SdE2zzMzuNbPnzOyr+/vjF4quadaZ2ZyZtc3s80XXMuvM7Jtm9oKZdcxsq+h6ZpmZvdXM/q2ZfWP/++OHiq5pFpnZ395/Pxz8vGpmPzXWdTJ04Xhm9sOSupJ+293fWXQ9s8zMFiUtuvtXzOwtkq5I+vvu/kcFlzaTzMwkRe7eNbN7JH1J0kfc/csFlzazzOyjkhqS7nf3x4quZ5aZ2TclNdyduVsLZma/Jemyu/+mmVUkvdnd/6LoumaZmc1J2pEUu/vYrovAEd0RuPt/lvTnRdcByd133f0r+7+/JulFSUvFVjW7PNPdv3vP/g//ei6ImT0g6cck/WbRtQBlYWb3S/phSZ+SJHfvEXJL4b2S/v9xhlyJoIspZmYPSapLSoqtZLbt/1d5R9K3JH3B3dkfxflVST8t6WbRhUBS9o++/2RmV8zsQ0UXM8PeIemqpKf2h/X8pplFRRcFfVDS74x7JQRdTCUzq0r6rKSfcvdXi65nlrl7391rkh6QdM7MGN5TADN7TNK33P1K0bXgO5bd/d2SmpL+9/1hcJi8eUnvlvQb7l6XlEr6mWJLmm37w0cel/T/jXtdBF1Mnf2xoJ+V9Gl3/72i60Fm/78Cn5X09wouZVYtS3p8f1zoZyS9x8wuFVvSbHP3P9m//ZakfyfpXLEVzaxXJL1y6H+b/q2y4IviNCV9xd3/+7hXRNDFVNk/+elTkl50918pup5ZZ2anzeyt+7/fJ+lHJH2j2Kpmk7v/rLs/4O4PKfsvwWfc/ULBZc0sM4v2T5jV/n+T/11JzNxTAHffk/Symf3t/ab3SuIE5mL9Q01g2IKUHc7HMczsdyQ9KultZvaKpJ93908VW9XMWpb0jyS9sD8uVJJ+zt2fLrCmWbYo6bf2z559k6TfdXemtQKkvyXp32X/Nte8pP/X3f9jsSXNtA9L+vT+f5n/V0kXC65nZpnZmyX9qKT/dSLrY3oxAAAAhIihCwAAAAgSQRcAAABBIugCAAAgSARdAAAABImgCwAAgCARdAEAABAkgi4AAACCRNAFgCliZn9gZj+6//uamf1a0TUBQFlxZTQAmC4/L+kXzex/llSX9HjB9QBAaXFlNACYMmb2RUlVSY+6+2tm9g5J/4ek/8nd/0Gx1QFAeTB0AQCmiJm9S9KipL9y99ckyd3/q7v/k2IrA4DyIegCwJQws0VJn5b0fkmpma0UXBIAlBpBFwCmgJm9WdLvSXrC3V+U9EuS/s9CiwKAkmOMLgBMOTP7m5J+WdKPSvpNd//nBZcEAKVA0AUAAECQGLoAAACAIBF0AQAAECSCLgAAAIJE0AUAAECQCLoAAAAIEkEXAAAAQSLoAgAAIEgEXQAAAASJoAsAAIAg/Q97HcoohY8tZgAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] @@ -345,13 +346,13 @@ } ], "source": [ - "Ys, history = k_means(Xs, 2)\n", + "Ys, history = k_means_with_history(Xs, 2)\n", "fig = plot_clusters(Xs, Ys, 2, centroids=history[-1][0])," ] }, { "cell_type": "code", - "execution_count": 82, + "execution_count": 26, "metadata": { "slideshow": { "slide_type": "notes" @@ -372,14 +373,14 @@ " \n", "def interactive_kmeans(k):\n", " slider_steps = widgets.IntSlider(min=0, max=MAXSTEPS, step=1, value=0, description=r'steps', width=300)\n", - " _, history = k_means(Xs, k)\n", + " _, history = k_means_with_history(Xs, k)\n", " widgets.interact(interactive_kmeans_k, steps=slider_steps,\n", " history=widgets.fixed(history), k=widgets.fixed(k))" ] }, { "cell_type": "code", - "execution_count": 83, + "execution_count": 27, "metadata": { "slideshow": { "slide_type": "subslide" @@ -389,7 +390,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "d9ada8d382b34f43afa654e6a0b83ced", + "model_id": "fd7320b7bb1343d6aac106b900f9b0e9", "version_major": 2, "version_minor": 0 }, @@ -406,7 +407,7 @@ "" ] }, - "execution_count": 83, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } @@ -460,7 +461,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 28, "metadata": { "slideshow": { "slide_type": "subslide" @@ -715,7 +716,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 29, "metadata": { "slideshow": { "slide_type": "subslide" @@ -743,7 +744,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 30, "metadata": { "slideshow": { "slide_type": "subslide" @@ -782,6 +783,20 @@ "\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* – długość płatka, szerokość płatka itp.)." ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "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": { diff --git a/wyk/09_Sieci_neuronowe.ipynb b/wyk/09_Sieci_neuronowe.ipynb index 9500302..c541f36 100644 --- a/wyk/09_Sieci_neuronowe.ipynb +++ b/wyk/09_Sieci_neuronowe.ipynb @@ -775,7 +775,7 @@ } }, "source": [ - "### Sieć neuronowa jednokierunkowa (_feedforward_)\n", + "### Sieć neuronowa jednokierunkowa (*feedforward*)\n", "\n", "* Mając daną $n$-warstwową sieć neuronową oraz jej parametry $\\Theta^{(1)}, \\ldots, \\Theta^{(L)} $ oraz $\\beta^{(1)}, \\ldots, \\beta^{(L)} $ liczymy:

\n", "$$a^{(l)} = g^{(l)}\\left( a^{(l-1)} \\Theta^{(l)} + \\beta^{(l)} \\right). $$"