-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathKMeansVisualization
159 lines (159 loc) · 41.5 KB
/
KMeansVisualization
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "markdown",
"source": [
"# **Author: KamelSenfro**"
],
"metadata": {
"id": "NtaXYEdCsfXU"
}
},
{
"cell_type": "code",
"source": [
"#Importing the required libraries\n",
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from sklearn.cluster import KMeans"
],
"metadata": {
"id": "PQWoLCylssBh"
},
"execution_count": 1,
"outputs": []
},
{
"cell_type": "code",
"source": [
"#Loading the dataset\n",
"iris_df = pd.read_csv(\"https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data\", header=None)\n",
"iris_df.columns = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'class']"
],
"metadata": {
"id": "dXS0LQpms0Aq"
},
"execution_count": 2,
"outputs": []
},
{
"cell_type": "code",
"source": [
"#Creating a list of features to be used for clustering\n",
"X = iris_df.iloc[:, :-1].values"
],
"metadata": {
"id": "w8xYRO8Es5I_"
},
"execution_count": 3,
"outputs": []
},
{
"cell_type": "code",
"source": [
"#Determining the optimum number of clusters using the elbow method\n",
"wcss = []\n",
"for i in range(1, 11):\n",
" kmeans = KMeans(n_clusters=i, init='k-means++', max_iter=300, n_init=10, random_state=0)\n",
" kmeans.fit(X)\n",
" wcss.append(kmeans.inertia_)\n",
"\n",
"#Plotting the results in a line graph\n",
"plt.plot(range(1, 11), wcss)\n",
"plt.title('The Elbow Method')\n",
"plt.xlabel('Number of clusters')\n",
"plt.ylabel('WCSS')\n",
"plt.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 295
},
"id": "nR48j7lgs_h6",
"outputId": "01d942a1-43c6-446d-932e-8adb359d626e"
},
"execution_count": 4,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEWCAYAAACJ0YulAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAAsTAAALEwEAmpwYAAAnq0lEQVR4nO3deZhldX3n8ffn1tpb1e2laLq7LjRLy24V2BLUgIlIAmqEUeMSDR2HSc8kBEXjGJJnMs8k42QwGhcSHzIIUUDjhiagEoSgoGJAG2kamrVtoPfuYqnqvWv7zh/n1O3bRXUtTd0699b9vJ7nPvec39m+5yr9qbP9jiICMzMzgFzWBZiZWeVwKJiZWZFDwczMihwKZmZW5FAwM7Mih4KZmRU5FKxiSfpfkr4yBdtZKikk1afj90j6L+Xe7lSYzH2R9GVJn5iMdVnlcihYZiTtLvkMStpXMv7+Sd7WlyX1Dtvmw5O5jSNVEkoPDWtfkNb87DjXMyUhatObQ8EyExGzhz7ABuB3Stq+WoZN/m3pNiOiowzbeCVmSjq9ZPz3gGeyKsZqk0PBKl2jpJsk7ZK0VtLyoQmSFkv6tqQuSc9I+tAkbvcEST+XtFPSrZLmlWz37Wkt3enpmVPS9g9K+m7JfE9L+lbJ+EZJnaNs82ZgRcn4pcBNpTMcbp8lXQj8BfCeEY6CjpV0X/ob3ilpwVj7kk47U9Iv0+W+ATSP65ezquZQsEr3duDrQB64DfgHAEk54LvAw8AS4HzgSkm/PUnbvRT4z8AioB+4Jt3uq4CvAVcCbcDtwHclNQL3AudKyklaDDQCr0uXOx6YDawZZZtfAd4rqU7Sqen8DwxNHG2fI+IO4G+Ab4xwFPR7wAeBo9KaPjbWvqT7868kQTUP+BbwzvH/fFatHApW6X4aEbdHxADJP1BD/9i9FmiLiL+OiN6IWA98EXjvKOv6WPoX8dDnxlHmvTkiHo2IPcBfAu+WVAe8B/h+RNwVEX3Ap4EZwOvTGnYBncB5wA+ALZJOBt4I/CQiBkfZ5ibgSeDNJKF087DpR7LPAF+KiKciYh/wzbQ+RtsX4BygAfhcRPRFxC3AL8bYjk0D9VkXYDaGbSXDe4Hm9C6hY4HFkrpLptcBPxllXZ+OiP8xzu1uLBl+juQfyAXA4nQcgIgYlLSR5C93SI4WfgM4MR3uJgmE16XjY7kJ+AOSf5jPBV5VMu1I9hle/hvOTodH25cBYHMc2mPmc9i051CwarUReCYilpVp/YWS4WOAPuB5YAtwxtAESUrn3Zw23Qv8DnAcyemcbuD9JKHwD+PY7rfT+R6MiA3pKZ4hY+3zRLs8Hm1fAlgiSSXBcAzwqwluw6qMTx9Ztfo5sEvSn0makZ6HP13Saydp/R+QdKqkmcBfA7ekp7C+CbxV0vmSGoA/BQ4AP0uXuxf4TWBGRGwi+Sv+QmA+8NDwjQyXnq56EzDSswVj7fN2YGl67WE8RtuX/yC5lvIhSQ2S3gGcPc71WhVzKFhVSv+BfhvJ+fFnSP6Kvx5oHWWxjw97TuH5Uea9GfgyyamXZuBD6XafBD4A/H26zd8huZW2N53+FLCb9JROROwE1gP3pTWPZ99WRcTL/iIfxz4P3en0gqRfjmM7h92XdH/eQXIq60WS6w/fGU/9Vt3kl+yYmdkQHymYmVmRQ8HMzIocCmZmVuRQMDOzoqp+TmHBggWxdOnSrMswM6sqDz744PMR0TbStLKFgqSTgG+UNB0P/E+SJza/ASwFngXeHREvpQ/OfB54C8lTl38QEaPeVrd06VJWrVo1+cWbmU1jkg77dHrZTh9FxJMR0RkRncBrSP6h/xfgKuDu9KnMu9NxgIuAZelnJXBtuWozM7ORTdU1hfOBX0XEc8DFwFBHZDcCl6TDFwM3ReJ+IC9p0RTVZ2ZmTF0ovJeki16AhRGxNR3eBixMh5dwaCdkmzjYyViRpJWSVkla1dXVVa56zcxqUtlDIe2X/e0cfAS/KO1oa0KPVEfEdRGxPCKWt7WNeJ3EzMyO0FQcKVwE/DIitqfj24dOC6XfO9L2zRzaM2U7B3ueNDOzKTAVofA+Dp46guTtWUOvHFwB3FrSfqkS5wA9JaeZzMxsCpT1OQVJs4ALgP9a0nw18E1Jl5G8tOPdafvtJLejriO5U+mD5azNzMxerqyhkPYNP39Y2wskdyMNnzeAy8tZz5BVz77I3U/s4OO/fRLJ4xFmZgY12s3F2i07ufaeX7G1Z3/WpZiZVZSaDIWOQh6Ahzd2Z1qHmVmlqclQOGXRHBrrcqze1J11KWZmFaUmQ6Gpvo5TFrewekN31qWYmVWUmgwFgM72Vh7Z3MPAoF9HamY2pGZDoaOQZ2/vAOt27M66FDOzilHToQC+2GxmVqpmQ+G4+bNoaa7nIYeCmVlRzYZCLic6CnkfKZiZlajZUADoaM/z5PZd7OsdyLoUM7OKUNuhUMgzMBis3dKTdSlmZhWhxkOhFYDVPoVkZgbUeCgcNaeZJfkZDgUzs1RNhwIkRwsPu7sLMzPAoUBnIc/GF/fxwu4DWZdiZpa5mg+FjvY8gI8WzMxwKHD6klZygtUbfQeSmVnNh8KspnpetXCOH2IzM8OhACTXFR7e1E3yRlAzs9rlUCB5iK17bx/PvbA361LMzDLlUMAXm83MhpQ1FCTlJd0i6QlJj0t6naR5ku6S9HT6PTedV5KukbRO0hpJZ5WztlKvWjibGQ11fojNzGpeuY8UPg/cEREnAx3A48BVwN0RsQy4Ox0HuAhYln5WAteWubai+rocZyxpdSiYWc0rWyhIagXOA24AiIjeiOgGLgZuTGe7EbgkHb4YuCkS9wN5SYvKVd9wHYVW1m7ZSW//4FRt0sys4pTzSOE4oAv4kqSHJF0vaRawMCK2pvNsAxamw0uAjSXLb0rbpkRHIU9v/yBPbts1VZs0M6s45QyFeuAs4NqIOBPYw8FTRQBEcg/ohO4DlbRS0ipJq7q6uiat2KGLzat9sdnMalg5Q2ETsCkiHkjHbyEJie1Dp4XS7x3p9M1AoWT59rTtEBFxXUQsj4jlbW1tk1Zs+9wZLJjdyOoN3ZO2TjOzalO2UIiIbcBGSSelTecDjwG3ASvSthXArenwbcCl6V1I5wA9JaeZyk4SHe1535ZqZjWtvszrvwL4qqRGYD3wQZIg+qaky4DngHen894OvAVYB+xN551SHYU8P3xyBzv399HS3DDVmzczy1xZQyEiVgPLR5h0/gjzBnB5OesZS2chTwQ8uqmH15+4IMtSzMwy4SeaS7y6PXk950N+XsHMapRDoUR+ZiPHLZjlHlPNrGY5FIbpaPfrOc2sdjkUhuks5Nm+8wBbe/ZlXYqZ2ZRzKAzTUcgD+BSSmdUkh8IwpyxqoaFOfj2nmdUkh8IwzQ11nLKoxUcKZlaTHAoj6CzkWbOpm4FBv57TzGqLQ2EEHe159vQO8Kuu3VmXYmY2pRwKIxi62OyX7phZrXEojOD4BbOY01zv6wpmVnMcCiPI5ZIeU32kYGa1xqFwGB2FVp7Ytov9fQNZl2JmNmUcCofR0Z5nYDBYu8XPK5hZ7XAoHEZn8WKzQ8HMaodD4TCOamlmcWuzryuYWU1xKIyio5D3HUhmVlMcCqPoKOTZ8OJeXtzTm3UpZmZTwqEwik73mGpmNcahMIozlrSSk59sNrPa4VAYxaymepYdNcdvYjOzmuFQGENHoZWHN3YT4R5TzWz6K2soSHpW0iOSVktalbbNk3SXpKfT77lpuyRdI2mdpDWSzipnbePVWZjLS3v72PDi3qxLMTMru6k4UvjNiOiMiOXp+FXA3RGxDLg7HQe4CFiWflYC105BbWPqKLQCvq5gZrUhi9NHFwM3psM3ApeUtN8UifuBvKRFGdR3iJMWzqG5IcfDfrLZzGpAuUMhgDslPShpZdq2MCK2psPbgIXp8BJgY8mym9K2Q0haKWmVpFVdXV3lqruovi7HGUtafbHZzGpCuUPh1yPiLJJTQ5dLOq90YiRXbyd0BTcirouI5RGxvK2tbRJLPbyO9jyPbu6hb2BwSrZnZpaVsoZCRGxOv3cA/wKcDWwfOi2Ufu9IZ98MFEoWb0/bMtdRyHOgf5Ant+3KuhQzs7IqWyhImiVpztAw8FvAo8BtwIp0thXArenwbcCl6V1I5wA9JaeZMtXp13OaWY0o55HCQuCnkh4Gfg58PyLuAK4GLpD0NPDmdBzgdmA9sA74IvDHZaxtQtrnzmD+rEZ3d2Fm0159uVYcEeuBjhHaXwDOH6E9gMvLVc8rIYmOgl/PaWbTn59oHqeO9jzrunaza39f1qWYmZWNQ2GcOgqtRMAjm/28gplNXw6FcfLFZjOrBQ6FccrPbGTp/Jm+2Gxm05pDYQKS13P69JGZTV8OhQnoLOTZtnM/23r2Z12KmVlZOBQmoMPXFcxsmnMoTMCpi1qoz8md45nZtOVQmIDmhjpOWdTii81mNm05FCaos5BnzaYeBgf9ek4zm34cChPUUciz+0A/v+ranXUpZmaTzqEwQZ1+PaeZTWMOhQk6fsFs5jTV+2KzmU1LDoUJyuXEqwutfojNzKYlh8IR6GjP8/jWnezvG8i6FDOzSeVQOAIdhTz9g8HaLTuzLsXMbFI5FI7AmemTzX5ewcymG4fCETiqpZlFrc2+A8nMph2HwhHqaM/7DiQzm3YcCkeoo5DnuRf28tKe3qxLMTObNA6FIzT0JjYfLZjZdFL2UJBUJ+khSd9Lx4+T9ICkdZK+IakxbW9Kx9el05eWu7ZX4oz2ViQ/2Wxm08tUHCl8GHi8ZPyTwGcj4kTgJeCytP0y4KW0/bPpfBVrdlM9y46a7TuQzGxaKWsoSGoH3gpcn44LeBNwSzrLjcAl6fDF6Tjp9PPT+StWcrG5hwj3mGpm00O5jxQ+B3wcGEzH5wPdEdGfjm8ClqTDS4CNAOn0nnT+Q0haKWmVpFVdXV1lLH1sncfkeXFPL5te2pdpHWZmk6VsoSDpbcCOiHhwMtcbEddFxPKIWN7W1jaZq56wjvY8AA/5FJKZTRPlPFJ4A/B2Sc8CXyc5bfR5IC+pPp2nHdicDm8GCgDp9FbghTLW94qddPQcmupzvq5gZtPGqKEg6bWSji4Zv1TSrZKukTRvtGUj4s8joj0ilgLvBX4YEe8HfgS8K51tBXBrOnxbOk46/YdR4SfrG+pynL6k1aFgZtPGWEcK/w/oBZB0HnA1cBPJ+f7rjnCbfwZ8VNI6kmsGN6TtNwDz0/aPAlcd4fqnVGchz6NbeugbGBx7ZjOzClc/xvS6iHgxHX4PcF1EfBv4tqTV491IRNwD3JMOrwfOHmGe/cDvjnedlaKjkOeGnz7Dk9t2cfqS1qzLMTN7RcY6UqgrOf9/PvDDkmljBUpN6EwvNvvJZjObDsYKha8B90q6FdgH/ARA0okkp5BqXmHeDObNavR1BTObFkb9az8i/o+ku4FFwJ0lF35zwBXlLq4aSKKjvdXdXZjZtDBqKEiaCTwYEX3p+EnAW4DnIuI7U1BfVego5LnnqS52H+hndpPPqplZ9Rrr9NEdwFIonjL6D+B44HJJ/7e8pVWPjkKeCHhkk8+omVl1GysU5kbE0+nwCuBrEXEFcBHwtrJWVkV8sdnMpouxQqH04bE3AXcBREQvB/szqnlzZzVy7PyZrN7QnXUpZmavyFgnwNdI+jRJFxQnAncCSMqXua6q09Ge5xfPvjj2jGZmFWysI4U/BJ4nua7wWxGxN20/Ffh0GeuqOh2FPFt79rN95/6sSzEzO2JjhcJs4LsR8eGIeLikvYfkIrSliq/n9K2pZlbFxgqFv2eEdxoA80h6PLXUaYtbqM/JzyuYWVUbKxROjIgfD2+MiJ8Ary5PSdWpuaGOkxfN8R1IZlbVxgqFOaNMa5jMQqaDzkKeNRt7GBys6B6/zcwOa6xQWCfpLcMbJV0ErC9PSdWroz3PrgP9rH9+T9almJkdkbFuSb0S+L6kdwNDr9VcDrwOP7z2MkMXm1dv7ObEo2ZnW4yZ2REY60jhrcAHgPuAY9PPvcCrI+KpMtdWdY5vm83spnrfgWRmVWusI4V24HPAKcAaknDYAcwEfEP+MHU58er2Vl9sNrOqNeqRQkR8LCJeDywE/hx4Efgg8Kikx6agvqrTUcjz+Nad7O8byLoUM7MJG+v00ZAZQAvQmn62AA+Uq6hq1tGep28geGzrzqxLMTObsLHep3AdcBqwiyQEfgZ8JiJemoLaqlLpk81nHTM322LMzCZorCOFY4AmYBtJp3ibgO4y11TVjm5t5uiWZl9sNrOqNNY1hQuB13Kw87s/BX4h6U5JfzXaspKaJf1c0sOS1g7NL+k4SQ9IWifpG5Ia0/amdHxdOn3pK967jHQU/HpOM6tOY15TiMSjwO3Av5HcgXQC8OExFj0AvCkiOoBO4EJJ5wCfBD4bEScCLwGXpfNfBryUtn82na8qdRTyPPvCXrr39mZdipnZhIwaCpI+JOnrkjaQPJ/wNuAJ4B0kneIdVhomu9PRhvQTJC/ruSVtvxG4JB2+OB0nnX6+JE1obyrEwTex+fWcZlZdxjpSWAp8C/i1iDghIn4/Iq6NiIcjYsw3r0mqk7Sa5NmGu4BfAd0R0Z/OsglYkg4vATYCpNN7GKGHVkkrJa2StKqrq2vMHczCGe2tSO5G28yqz6h3H0XER1/JyiNiAOhM39T2L8DJr2R96TqvA64DWL58eUX2PDenuYET22b7uoKZVZ3xPqfwikREN/Ajkj6T8pKGwqid5K4m0u8CQDq9FXhhKuorh45Cnoc3dhNRkbllZjaisoWCpLahdzlLmgFcADxOEg7vSmdbAdyaDt+WjpNO/2FU8b+onYU8L+zpZdNL+7Iuxcxs3Mbq++iVWATcKKmOJHy+GRHfS7vH+LqkTwAPATek898A3CxpHUl3Gu8tY21lV3yIbVM3hXkzsy3GzGycyhYKEbEGOHOE9vXA2SO07wd+t1z1TLWTjp5DY32O1Ru6edurF2ddjpnZuEzJNYVa1FCX4/TFLe4x1cyqikOhjDoLc3lkcw/9A2PevWtmVhEcCmXUUWhlf98gT27flXUpZmbj4lAoo4M9pvrJZjOrDg6FMjpm3kzmzmzwk81mVjUcCmUkKXmIzRebzaxKOBTKrKM9z1Pbd7HnQP/YM5uZZcyhUGadhTyDAY9s9nUFM6t8DoUy6yh5PaeZWaVzKJTZvFmNHDNvpq8rmFlVcChMgY5CntUburMuw8xsTA6FKdDR3sqWnv3s2Lk/61LMzEblUJgCZx6TB/x6TjOrfA6FKXDa4lbqcmL1xpeyLsXMbFQOhSnQ3FDHyUfPcXcXZlbxHApTZOjJ5sHBqn2ZnJnVAIfCFOks5Nm1v59nXtiTdSlmZoflUJgiQz2m+tZUM6tkDoUpckLbbGY11vkhNjOraA6FKVKXE2e0t7q7CzOraA6FKdRZmMtjW3dyoH8g61LMzEZUtlCQVJD0I0mPSVor6cNp+zxJd0l6Ov2em7ZL0jWS1klaI+msctWWlc5CK30DwWNbdmZdipnZiMp5pNAP/GlEnAqcA1wu6VTgKuDuiFgG3J2OA1wELEs/K4Fry1hbJtxjqplVurKFQkRsjYhfpsO7gMeBJcDFwI3pbDcCl6TDFwM3ReJ+IC9pUbnqy8Ki1hksbGlydxdmVrGm5JqCpKXAmcADwMKI2JpO2gYsTIeXABtLFtuUtg1f10pJqySt6urqKl/RZdLRnveRgplVrLKHgqTZwLeBKyPikJPpERHAhB7xjYjrImJ5RCxva2ubxEqnRkchz/rn99Czty/rUszMXqasoSCpgSQQvhoR30mbtw+dFkq/d6Ttm4FCyeLtadu0MvQQm59XMLNKVM67jwTcADweEZ8pmXQbsCIdXgHcWtJ+aXoX0jlAT8lppmnjjPZWJF9sNrPKVF/Gdb8B+H3gEUmr07a/AK4GvinpMuA54N3ptNuBtwDrgL3AB8tYW2Zamhs4oW02qx0KZlaByhYKEfFTQIeZfP4I8wdwebnqqSQd7XnufWoHEUFyQGVmVhn8RHMGOgutPL+7l83d+7IuxczsEA6FDHQW5gL4pTtmVnEcChk46eg5NNbn/HpOM6s4DoUMNNbnOG1xi48UzKziOBQy0lnI88jmHvoHBrMuxcysyKGQkc5Cnn19Azy9Y3fWpZiZFTkUMtLRngfw8wpmVlEcChk5dv5M8jMb/GSzmVUUh0JGJNHRnufuJ3bwyw2+C8nMKoNDIUMfueBVNOTEu679GZ/43mPs6/VrOs0sWw6FDHUW8vzgI+fxvrOP4fqfPsOFn/8x969/IeuyzKyGORQyNqe5gf/zn87gn//w14iA9153P//jXx9h94H+rEszsxrkUKgQrz9hAXdceS6X/fpxfPWBDfz2Z3/MvU9V35vlzKy6ORQqyMzGev7ybadyy397Pc0NOVb808/579962G9pM7Mp41CoQK85di7f/9C5/PFvnMB3HtrMmz97L3eu3ZZ1WWZWAxwKFaq5oY6PX3gyt17+BubPamTlzQ9yxdce4oXdB7IuzcymMYdChTt9SSu3/cmv89ELXsUdj27lgs/+mO8+vIXknURmZpPLoVAFGutzfOj8ZXzvinMpzJ3BFV97iJU3P8iOnfuzLs3MphmHQhU56eg5fPuPXs9fvOVkfvxUF2/+zL18a9VGHzWY2aRxKFSZ+rocK887gX/78LmcdPQc/vsta1jxpV/41Z5mNikcClXq+LbZfGPl6/irt5/Gqmdf5Lc+cy833/8cg4M+ajCzI1e2UJD0T5J2SHq0pG2epLskPZ1+z03bJekaSeskrZF0Vrnqmk5yObHi9Uv5wZXnceYxc/nLf32U933xfp59fk/WpZlZlSrnkcKXgQuHtV0F3B0Ry4C703GAi4Bl6WclcG0Z65p2CvNmcvNlZ/PJd57BY1t2cuHnf8z1P1nPgI8azGyCyhYKEfFj4MVhzRcDN6bDNwKXlLTfFIn7gbykReWqbTqSxHteewx3ffSNvOGEBXzi+4/zrn/8GU9v35V1aWZWRab6msLCiNiaDm8DFqbDS4CNJfNtSttsgo5ubeb6Fcv5/Hs7eeb5Pbz1mp/yhR+to8/vgjazccjsQnMk91FO+PyGpJWSVkla1dXlDuNGIomLO5dw10feyAWnLuRTP3iSS75wH2u39GRdmplVuKkOhe1Dp4XS7x1p+2agUDJfe9r2MhFxXUQsj4jlbW1tZS222rXNaeIL7z+Lf/zAWWzfeYCL/+E+/u7OJznQ75f5mNnIpjoUbgNWpMMrgFtL2i9N70I6B+gpOc1kr9CFpy/i3z96Hm/vXMzf/3Adb7vmpzzkV4Ca2QjKeUvq14D/AE6StEnSZcDVwAWSngbenI4D3A6sB9YBXwT+uFx11ar8zEY+8+5OvvQHr2X3gX7eee3P+JvbH/crQM3sEKrmLhKWL18eq1atyrqMqrNrfx//99+e4J8f2MDS+TP55Dtfza8dPz/rssxsikh6MCKWjzjNoVC7frbuef7sO2vY+OI+zl22gI72PKctbuH0Ja20z52BpKxLNLMycCjYYe3t7eeau9dxz5M7eHrH7uIDby3N9Zy6uIXTF7dy2pLk+/i22dTlHBRm1c6hYOOyv2+AJ7ftYu2WnTy6pYe1W3byxNadHOhPnnFobshxyqKW5GhicSunLW7lVUfPpqm+LuPKzWwiHAp2xPoHBvlV1x7Wbunh0c07Wbulh8e27GTXgX4A6nNi2cI5aVC0cNqSVk5Z1MLspvqMKzezw3Eo2KQaHAw2vrQ3OaLYnBxRrN3Sw/O7ewGQ4Lj5s5LTT0taOW1xC6ctbmXerMaMKzczGD0U/OecTVguJ46dP4tj58/iLWckXVRFBDt2HTjkiOKhDd18b83Bx00WtzZzWhoSQ9cqjm5p9gVtswriULBJIYmFLc0sbGnmTScvLLZ37+0tHkkMHVn8++PbGTpAnTersXgkcdriFo6ZN5OjWppYMLuJhjq/7sNsqjkUrKzyMxt5w4kLeMOJC4ptew7088S2nUlYbE4uat/w0/X0DRx6KnPerEbaZjdxVEsTbXOSz1FzmtPvpuL37KZ6H22YTRKHgk25WU31vObYebzm2HnFtt7+QZ7esYut3fvZsesAXbsOsGPX/vT7AOu79tC16wC9I/T2OqOh7mVBUQyQlqZisMyf1eRbas3G4FCwitBYn0tPIbUedp6IoGdfXzEoiqGx8wBdu5Pvp7bv4r51z7Nzf//Lls8J5s8+THgMG5/R6NtsrTY5FKxqSCI/s5H8zEaWLZwz6rz7+waK4dFVcsRRGiiPb93J87t7R3xDXWN9jvyMBlpnNJCfmXy3zmhMv0va0u+heVtnNFDvayFWxRwKNi01N9RRmDeTwryZo843MBi8tLeXHTsPHnl07T5Az94+uvf20bMv+Wzu3s/jW3fRvbeXPWN0Iji7qb4YEIeGSmmINB4yrWVGA3Oa6sn59JZlzKFgNa0uJxbMTu52OpWWcS3TNzBYDIvuvX3sLA730rOvn+59vcn0NFTW7dhNdzo+0jWRITlBS8lRR8uMBmY21jGzsZ7mhrp0uI4ZjXXMbEjbi8Npe2M9MxqGhuuY0VDnoLEJcSiYTVBDXa4YJBMREezvSwKle19vMTS69yXB0l0yPhQ6O3YeYG9fP/t6B9jbO8C+vgEm+rxpc0NuxLA4bOA01jEjnX+orbk+/W7IMaOhjuaGpK25MUdjXc53f00jDgWzKSKJGek/ske3Nh/ROoaCZV/fAHt7D4bF3t4B9vcNDfen00vb+5NQKQmX53f3srd3b9KWzt/bP/F3eUsUg2JGQx1NDbmXhUhTOq35kGlDn5KgacgV22cc8p2jsT5HfS5HQ50cQmXkUDCrIqXBUo5uQwYG42WBs68vCZbkM8i+3gH29yfDQ+1Dbft6B9nfP8CBvqHlBnlpT18yf+8A+/sPLv9Ketipy4n6nGioy1Ffp2JY1NeJhtzwttxh5s3RkEuWOTicO2QdDemy9XXpMsV1H1zvUC3J98HpQ+N1OdFQVzI+tPyw8aH1ZB14DgUzK6rLidlN9WXv0DAi6B0YZH8aIgdDJQ2bYoikQdM3QO/AIP0Dg/QNBP2Dg/QPRHG4byDoHxikfzDoG0imFdvT7729/en0UeYdGKRvMPke4aa0KVE3LGga6nLDgicJpA+fv4zf6Vg86dt3KJjZlJNEU30dTfV1tNKQdTkjGhwM+tLw6R8oGS5+BwODyfhAGjal4/2DyXIDg4MH5x1avmR8IN3OwCHrTJY7uM6D6xlaJj+zPL+bQ8HMbAS5nGjK1VFrvcD7KRszMytyKJiZWZFDwczMiioqFCRdKOlJSeskXZV1PWZmtaZiQkFSHfAF4CLgVOB9kk7Ntiozs9pSMaEAnA2si4j1EdELfB24OOOazMxqSiWFwhJgY8n4prTtEJJWSlolaVVXV9eUFWdmVgsqKRTGJSKui4jlEbG8ra0t63LMzKaVSnosYzNQKBlvT9sO68EHH3xe0nNlrar8FgDPZ11EBfHvcZB/i0P59zjUK/k9jj3cBMUr6ZVqEkmqB54CzicJg18AvxcRazMtrMwkrYqI5VnXUSn8exzk3+JQ/j0OVa7fo2KOFCKiX9KfAD8A6oB/mu6BYGZWaSomFAAi4nbg9qzrMDOrVVV3oXkaui7rAiqMf4+D/Fscyr/Hocrye1TMNQUzM8uejxTMzKzIoWBmZkUOhYxIKkj6kaTHJK2V9OGsa8qapDpJD0n6Xta1ZE1SXtItkp6Q9Lik12VdU5YkfST97+RRSV+T1Jx1TVNF0j9J2iHp0ZK2eZLukvR0+j13srbnUMhOP/CnEXEqcA5wuTsA5MPA41kXUSE+D9wREScDHdTw7yJpCfAhYHlEnE5yy/p7s61qSn0ZuHBY21XA3RGxDLg7HZ8UDoWMRMTWiPhlOryL5D/6l/X1VCsktQNvBa7PupasSWoFzgNuAIiI3ojozrSo7NUDM9KHXGcCWzKuZ8pExI+BF4c1XwzcmA7fCFwyWdtzKFQASUuBM4EHMi4lS58DPg4MZlxHJTgO6AK+lJ5Ou17SrKyLykpEbAY+DWwAtgI9EXFntlVlbmFEbE2HtwELJ2vFDoWMSZoNfBu4MiJ2Zl1PFiS9DdgREQ9mXUuFqAfOAq6NiDOBPUzi6YFqk54vv5gkLBcDsyR9INuqKkckzxVM2rMFDoUMSWogCYSvRsR3sq4nQ28A3i7pWZL3aLxJ0leyLSlTm4BNETF05HgLSUjUqjcDz0REV0T0Ad8BXp9xTVnbLmkRQPq9Y7JW7FDIiCSRnDN+PCI+k3U9WYqIP4+I9ohYSnIB8YcRUbN/CUbENmCjpJPSpvOBxzIsKWsbgHMkzUz/uzmfGr7wnroNWJEOrwBunawVOxSy8wbg90n+Kl6dft6SdVFWMa4AvippDdAJ/E225WQnPWK6Bfgl8AjJv1s10+WFpK8B/wGcJGmTpMuAq4ELJD1NciR19aRtz91cmJnZEB8pmJlZkUPBzMyKHApmZlbkUDAzsyKHgpmZFTkUrKJJCkl/VzL+MUn/a5LW/WVJ75qMdY2xnd9Nezr9UTnrkrRU0u9NvEKzgxwKVukOAO+QtCDrQkqlHbON12XAH0bEb5arntRSYEKhMMH9sBrgULBK10/yoNJHhk8Y/he1pN3p929IulfSrZLWS7pa0vsl/VzSI5JOKFnNmyWtkvRU2gfT0HsdPiXpF5LWSPqvJev9iaTbGOEJY0nvS9f/qKRPpm3/E/h14AZJnxphmT9Ll3lY0sseQJL07FAgSlou6Z50+I0lDz0+JGkOyQNM56ZtHxnvfkiaJen7aQ2PSnrPeP6HsenJfyVYNfgCsEbS305gmQ7gFJIuh9cD10fE2UpeZnQFcGU631LgbOAE4EeSTgQuJemJ87WSmoD7JA31ynkWcHpEPFO6MUmLgU8CrwFeAu6UdElE/LWkNwEfi4hVw5a5iKSjt1+LiL2S5k1g/z4GXB4R96WdKu4n6TTvYxExFG4rx7Mfkt4JbImIt6bLtU6gDptmfKRgFS/tPfYmkhetjNcv0ndWHAB+BQz9Y/gISRAM+WZEDEbE0yThcTLwW8ClklaTdGc+H1iWzv/z4YGQei1wT9ppWz/wVZJ3IozmzcCXImJvup/D+8wfzX3AZyR9CMin2xxuvPvxCEmXCZ+UdG5E9EygDptmHApWLT5Hcm6+9L0C/aT/H5aUAxpLph0oGR4sGR/k0CPk4f28BCDgiojoTD/HlfTfv+eV7MQRKO4jUHwFZURcDfwXYAbJEcDJIyw7rv2IiKdIjhweAT6RnvKyGuVQsKqQ/hX9TZJgGPIsyekagLcDDUew6t+VlEuvMxwPPAn8APijtGtzJL1KY7/k5ufAGyUtkFQHvA+4d4xl7gI+KGlmup2RTh89y8F9fOdQo6QTIuKRiPgk8AuSI5xdwJySZce1H+mpr70R8RXgU9R2N901z9cUrJr8HfAnJeNfBG6V9DBwB0f2V/wGkn/QW4D/FhH7JV1Pcorpl5JE8ha0S0ZbSURslXQV8COSv9C/HxGjdmccEXdI6gRWSeoFbgf+Ythsf0Vykfp/A/eUtF8p6TdJjnzWAv+WDg+kv8eXSd7zPJ79OAP4lKRBoA/4o9HqtunNvaSamVmRTx+ZmVmRQ8HMzIocCmZmVuRQMDOzIoeCmZkVORTMzKzIoWBmZkX/H7RZZgrF5dWbAAAAAElFTkSuQmCC\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"source": [
"#Fitting K-Means to the dataset with the optimum number of clusters\n",
"kmeans = KMeans(n_clusters=3, init='k-means++', max_iter=300, n_init=10, random_state=0)\n",
"y_kmeans = kmeans.fit_predict(X)"
],
"metadata": {
"id": "M25IyA_AtGSC"
},
"execution_count": 5,
"outputs": []
},
{
"cell_type": "code",
"source": [
"#Visualizing the clusters\n",
"plt.scatter(X[y_kmeans == 0, 0], X[y_kmeans == 0, 1], s = 100, c = 'red', label = 'Iris-setosa')\n",
"plt.scatter(X[y_kmeans == 1, 0], X[y_kmeans == 1, 1], s = 100, c = 'blue', label = 'Iris-versicolour')\n",
"plt.scatter(X[y_kmeans == 2, 0], X[y_kmeans == 2, 1], s = 100, c = 'green', label = 'Iris-virginica')\n",
"plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], s = 100, c = 'yellow', label = 'Centroids')\n",
"plt.title('Clusters of Iris')\n",
"plt.xlabel('Sepal Length')\n",
"plt.ylabel('Sepal Width')\n",
"plt.legend()\n",
"plt.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 295
},
"id": "wWjs3xsEtKay",
"outputId": "719d16b1-af83-402e-d0da-c9ccaacade0c"
},
"execution_count": 6,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
],
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
}
]
}