{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Problem in KMeans\n", "\n", "While KMeans is a good algorithm, the time complexity is very poor. Kmeans works in $O(n \\cdot K \\cdot I \\cdot f)$ Where \n", "n is number of records, K is number of clusters, I is number of iterations, f is number of features in particular record. Clearly, the algorithm will take forever to complete on a dataset of > 100,000 data points.\n", "\n", "## Minibatch KMeans\n", "\n", "Main features of Minibatch KMeans are:\n", "1. Instead of using the entire dataset at once, it operates in batches.\n", "2. Uses Gradient Descent update, which is way more faster than what KMeans does. \n", "\n", "How it works is, it takes batches of datasets and finds the centroids for the smaller dataset (minibatch) Then for the next batch, it uses the centroid found in previous batch and updates it using Gradient Descent. This simple method makes it faster by a magnitude of the input size. \n", "\n", "\n", "## Gotchas of using Minibatch KMeans\n", "1. While the performance is good, the result might or might not be good -- it totally depends on the __initial conditions__.\n", "2. The result might be somewhat different than what is obtained from KMeans. " ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
CustomerIDGenreAgeAnnual Income (k$)Spending Score (1-100)
01Male191539
12Male211581
23Female20166
34Female231677
45Female311740
\n", "
" ], "text/plain": [ " CustomerID Genre Age Annual Income (k$) Spending Score (1-100)\n", "0 1 Male 19 15 39\n", "1 2 Male 21 15 81\n", "2 3 Female 20 16 6\n", "3 4 Female 23 16 77\n", "4 5 Female 31 17 40" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "\n", "df = pd.read_csv('Mall_Customers.csv')\n", "X = df.iloc[:, [3, 4]].values\n", "df.head()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "from sklearn.cluster import MiniBatchKMeans\n", "\n", "clf = MiniBatchKMeans(n_clusters=5, init='k-means++', max_iter=300, n_init=10, random_state=0)\n", "y_minikmeans = clf.fit_predict(X)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize=(10, 8))\n", "plt.scatter(X[y_minikmeans == 0, 0], X[y_minikmeans == 0, 1], color='red', s=60, label='Cluster 1', edgecolors='black')\n", "plt.scatter(X[y_minikmeans == 1, 0], X[y_minikmeans == 1, 1], color='green', s=60, label='Cluster 2', edgecolors='black')\n", "plt.scatter(X[y_minikmeans == 2, 0], X[y_minikmeans == 2, 1], color='blue',s=60, label='Cluster 3', edgecolors='black')\n", "plt.scatter(X[y_minikmeans == 3, 0], X[y_minikmeans == 3, 1], color='yellow', s=60, label='Cluster 4', edgecolors='black')\n", "plt.scatter(X[y_minikmeans == 4, 0], X[y_minikmeans == 4, 1], color='cyan', s=60, label='Cluster 5', edgecolors='black')\n", "# cluster centres\n", "plt.scatter(clf.cluster_centers_[:, 0], clf.cluster_centers_[:, 1], color='magenta', s=100, label='Centroid',edgecolors='black')\n", "plt.legend()\n", "plt.title('Clusters using Minibatch KMeans')\n", "plt.ylabel('Annual Income (k$)')\n", "plt.xlabel('Spending Score (1-100)')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we can see the output is nearly the same as what's seen in last post on KMeans" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.14" } }, "nbformat": 4, "nbformat_minor": 2 }