From caad92b60a8a36ac484adc36eee654ba39007b66 Mon Sep 17 00:00:00 2001 From: Simar Kapoor Date: Sun, 23 Jun 2019 12:42:38 +0530 Subject: [PATCH] Simar Kapoor's commit --- .DS_Store | Bin 0 -> 6148 bytes simar/k-means.ipynb | 315 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 315 insertions(+) create mode 100644 .DS_Store create mode 100644 simar/k-means.ipynb diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..0013f393c6686985e355a23f8c54e5c0ae4a6ed3 GIT binary patch literal 6148 zcmeHKON-M`6h3#RqsbH`g2D(cF1XM|k=ECYxXILxAc%??W)?o;O%o=8G`A$_bWsYy zr3-(6kDZU5|G~$PaOZDu;abmq6xyky8xbk@z`5Vac_sG?xi=R8NP7^r02~0YPzBaj zarlLZxX?LS(jE~cvPS_FeAG?o&Se{iVZbo(zcC=b-IH(|IFt~<^!LjkgdIrGJB0HP zW4s6H&6Ib8lm}QPmW*qt=YB{*3t$C1B$&q_KalzI@XTOX^mWhgK|f83vf2DXmX>QP zM~+(dYTd3MtJ@E~m=C>@m4l+qa^E@aC1Dh>d^ZWpcst6r(r7=*?&P;v8Rhpy@;2uw zCMcT)J4rP3ofFr2RO5CtrBIav(T5MB?@aUwg~+>Oe=5^~xC+f^7%&XXGO(;J9kKs! z9e)0wEizYz0mHyTF+ge^uhYgU>AiJsa$>KgsE<*Fh`dUnEWtr<$I=j6@fxZWj8S1A Wx*98m=s__*0+I$Z7zX|+13v*v2b%@} literal 0 HcmV?d00001 diff --git a/simar/k-means.ipynb b/simar/k-means.ipynb new file mode 100644 index 0000000..415805f --- /dev/null +++ b/simar/k-means.ipynb @@ -0,0 +1,315 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "from matplotlib import pyplot as plt\n", + "from sklearn.datasets import make_blobs" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(1000, 2)\n" + ] + } + ], + "source": [ + "X, _ = make_blobs(n_samples=1000, centers=5)\n", + "print (X.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure()\n", + "plt.scatter(X[:,0],X[:,1])\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{0: {'center': array([-1.05190823, 0.68656204]), 'points': [], 'color': 'pink'}, 1: {'center': array([ 8.13716593, -4.31851921]), 'points': [], 'color': 'blue'}, 2: {'center': array([-4.35311897, 0.22164387]), 'points': [], 'color': 'green'}, 3: {'center': array([-6.37725298, -7.11288275]), 'points': [], 'color': 'red'}, 4: {'center': array([9.70698936, 3.58495927]), 'points': [], 'color': 'orange'}}\n" + ] + } + ], + "source": [ + "k = 5\n", + "\n", + "colors = ['pink','blue','green','red','orange']\n", + "\n", + "clusters = {}\n", + "\n", + "for ix in range(k):\n", + " center = 10.0*(2*np.random.random( (X.shape[1],) ) -1)\n", + " points = []\n", + " \n", + " cluster = {\n", + " \"center\" : center,\n", + " \"points\" : points,\n", + " \"color\" : colors[ix] \n", + " }\n", + " \n", + " clusters[ix] = cluster\n", + " \n", + "print (clusters)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure()\n", + "plt.scatter(X[:,0],X[:,1])\n", + "for ix in range(k):\n", + " plt.scatter(clusters[ix][\"center\"][0], clusters[ix][\"center\"][1], color = \"black\", marker = \"*\", s=100)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "def distance(v1,v2):\n", + " return np.sqrt( np.sum( (v1-v2)**2 ) )" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "for ix in range(X.shape[0]):\n", + " \n", + " dis = []\n", + " curr_p = X[ix]\n", + " \n", + " for kx in range(k):\n", + " d = distance(curr_p, clusters[kx][\"center\"])\n", + " dis.append(d)\n", + " \n", + " assined_cluster = np.argmin(dis)\n", + " \n", + " clusters[assined_cluster][\"points\"].append(curr_p)\n", + "\n", + " \n", + "for kx in range(k):\n", + " pnts = np.array(clusters[kx][\"points\"])\n", + " \n", + " clusters[kx][\"coords\"] = pnts\n", + " \n", + "plt.figure(0)\n", + "for kx in range(k):\n", + " pts = clusters[kx][\"coords\"]\n", + " \n", + " try:\n", + " plt.scatter(pts[:,0],pts[:,1], color = clusters[kx][\"color\"])\n", + " except:\n", + " pass\n", + " \n", + " plt.scatter(clusters[kx][\"center\"][0], clusters[kx][\"center\"][1], color = \"black\", marker = \"*\", s=100)\n", + " \n", + "\n", + "for kx in range(k):\n", + " \n", + " if clusters[kx][\"coords\"].shape[0]>0:\n", + " new_center = clusters[kx][\"coords\"].mean(axis=0)\n", + " else:\n", + " new_center = clusters[kx][\"center\"]\n", + " \n", + " clusters[kx][\"center\"] = new_center\n", + " clusters[kx][\"points\"] = []\n", + " \n", + "plt.figure(1)\n", + "for kx in range(k):\n", + " pts = clusters[kx][\"coords\"]\n", + " \n", + " try:\n", + " plt.scatter(pts[:,0],pts[:,1], color = clusters[kx][\"color\"])\n", + " except:\n", + " pass\n", + " \n", + " plt.scatter(clusters[kx][\"center\"][0], clusters[kx][\"center\"][1], color = \"black\", marker = \"*\", s=100)\n", + " \n", + "plt.show() " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## SKLEARN" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.cluster import KMeans" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "kmeans = KMeans(n_clusters=5)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "z = kmeans.fit_transform(X)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "cen = kmeans.cluster_centers_" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "Y = kmeans.labels_" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure()\n", + "\n", + "plt.scatter(X[:,0],X[:,1], c = Y)\n", + "plt.scatter(cen[:,0], cen[:,1], marker=\"*\",s=100,color='black')\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.6.7" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}