Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save shangbaba/2c93679658122a9dae19722cf056c3c6 to your computer and use it in GitHub Desktop.
Save shangbaba/2c93679658122a9dae19722cf056c3c6 to your computer and use it in GitHub Desktop.
Created on Cognitive Class Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"<a href=\"https://www.bigdatauniversity.com\"><img src=\"https://ibm.box.com/shared/static/cw2c7r3o20w9zn8gkecaeyjhgw3xdgbj.png\" width=\"400\" align=\"center\"></a>\n",
"\n",
"<h1><center>K-Means Clustering</center></h1>"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"## Introduction\n",
"\n",
"There are many models for **clustering** out there. In this notebook, we will be presenting the model that is considered one of the simplest models amongst them. Despite its simplicity, the **K-means** is vastly used for clustering in many data science applications, especially useful if you need to quickly discover insights from **unlabeled data**. In this notebook, you will learn how to use k-Means for customer segmentation.\n",
"\n",
"Some real-world applications of k-means:\n",
"- Customer segmentation\n",
"- Understand what the visitors of a website are trying to accomplish\n",
"- Pattern recognition\n",
"- Machine learning\n",
"- Data compression\n",
"\n",
"\n",
"In this notebook we practice k-means clustering with 2 examples:\n",
"- k-means on a random generated dataset\n",
"- Using k-means for customer segmentation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Table of contents</h1>\n",
"\n",
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
" <ul>\n",
" <li><a href=\"#random_generated_dataset\">k-Means on a randomly generated dataset</a></li>\n",
" <ol>\n",
" <li><a href=\"#setting_up_K_means\">Setting up K-Means</a></li>\n",
" <li><a href=\"#creating_visual_plot\">Creating the Visual Plot</a></li>\n",
" </ol>\n",
" <li><a href=\"#customer_segmentation_K_means\">Customer Segmentation with K-Means</a></li>\n",
" <ol>\n",
" <li><a href=\"#pre_processing\">Pre-processing</a></li>\n",
" <li><a href=\"#modeling\">Modeling</a></li>\n",
" <li><a href=\"#insights\">Insights</a></li>\n",
" </ol>\n",
" </ul>\n",
"</div>\n",
"<br>\n",
"<hr>"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"### Import libraries\n",
"Lets first import the required libraries.\n",
"Also run <b> %matplotlib inline </b> since we will be plotting in this section."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [],
"source": [
"import random \n",
"import numpy as np \n",
"import matplotlib.pyplot as plt \n",
"from sklearn.cluster import KMeans \n",
"from sklearn.datasets.samples_generator import make_blobs \n",
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"<h1 id=\"random_generated_dataset\">k-Means on a randomly generated dataset</h1>\n",
"Lets create our own dataset for this lab!\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"First we need to set up a random seed. Use <b>numpy's random.seed()</b> function, where the seed will be set to <b>0</b>"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [],
"source": [
"np.random.seed(0)"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Next we will be making <i> random clusters </i> of points by using the <b> make_blobs </b> class. The <b> make_blobs </b> class can take in many inputs, but we will be using these specific ones. <br> <br>\n",
"<b> <u> Input </u> </b>\n",
"<ul>\n",
" <li> <b>n_samples</b>: The total number of points equally divided among clusters. </li>\n",
" <ul> <li> Value will be: 5000 </li> </ul>\n",
" <li> <b>centers</b>: The number of centers to generate, or the fixed center locations. </li>\n",
" <ul> <li> Value will be: [[4, 4], [-2, -1], [2, -3],[1,1]] </li> </ul>\n",
" <li> <b>cluster_std</b>: The standard deviation of the clusters. </li>\n",
" <ul> <li> Value will be: 0.9 </li> </ul>\n",
"</ul>\n",
"<br>\n",
"<b> <u> Output </u> </b>\n",
"<ul>\n",
" <li> <b>X</b>: Array of shape [n_samples, n_features]. (Feature Matrix)</li>\n",
" <ul> <li> The generated samples. </li> </ul> \n",
" <li> <b>y</b>: Array of shape [n_samples]. (Response Vector)</li>\n",
" <ul> <li> The integer labels for cluster membership of each sample. </li> </ul>\n",
"</ul>\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [],
"source": [
"X, y = make_blobs(n_samples=5000, centers=[[4,4], [-2, -1], [2, -3], [1, 1]], cluster_std=0.9)"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Display the scatter plot of the randomly generated data."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7f6356844dd8>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(X[:, 0], X[:, 1], marker='.')"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"<h2 id=\"setting_up_K_means\">Setting up K-Means</h2>\n",
"Now that we have our random data, let's set up our K-Means Clustering."
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"The KMeans class has many parameters that can be used, but we will be using these three:\n",
"<ul>\n",
" <li> <b>init</b>: Initialization method of the centroids. </li>\n",
" <ul>\n",
" <li> Value will be: \"k-means++\" </li>\n",
" <li> k-means++: Selects initial cluster centers for k-mean clustering in a smart way to speed up convergence.</li>\n",
" </ul>\n",
" <li> <b>n_clusters</b>: The number of clusters to form as well as the number of centroids to generate. </li>\n",
" <ul> <li> Value will be: 4 (since we have 4 centers)</li> </ul>\n",
" <li> <b>n_init</b>: Number of time the k-means algorithm will be run with different centroid seeds. The final results will be the best output of n_init consecutive runs in terms of inertia. </li>\n",
" <ul> <li> Value will be: 12 </li> </ul>\n",
"</ul>\n",
"\n",
"Initialize KMeans with these parameters, where the output parameter is called <b>k_means</b>."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [],
"source": [
"k_means = KMeans(init = \"k-means++\", n_clusters = 4, n_init = 12)"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Now let's fit the KMeans model with the feature matrix we created above, <b> X </b>"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"KMeans(algorithm='auto', copy_x=True, init='k-means++', max_iter=300,\n",
" n_clusters=4, n_init=12, n_jobs=None, precompute_distances='auto',\n",
" random_state=None, tol=0.0001, verbose=0)"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"k_means.fit(X)"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Now let's grab the labels for each point in the model using KMeans' <b> .labels\\_ </b> attribute and save it as <b> k_means_labels </b> "
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([0, 3, 3, ..., 1, 0, 0], dtype=int32)"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"k_means_labels = k_means.labels_\n",
"k_means_labels"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"We will also get the coordinates of the cluster centers using KMeans' <b> .cluster&#95;centers&#95; </b> and save it as <b> k_means_cluster_centers </b>"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([[-2.03743147, -0.99782524],\n",
" [ 3.97334234, 3.98758687],\n",
" [ 0.96900523, 0.98370298],\n",
" [ 1.99741008, -3.01666822]])"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"k_means_cluster_centers = k_means.cluster_centers_\n",
"k_means_cluster_centers"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"<h2 id=\"creating_visual_plot\">Creating the Visual Plot</h2>\n",
"So now that we have the random data generated and the KMeans model initialized, let's plot them and see what it looks like!"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Please read through the code and comments to understand how to plot the model."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Initialize the plot with the specified dimensions.\n",
"fig = plt.figure(figsize=(6, 4))\n",
"\n",
"# Colors uses a color map, which will produce an array of colors based on\n",
"# the number of labels there are. We use set(k_means_labels) to get the\n",
"# unique labels.\n",
"colors = plt.cm.Spectral(np.linspace(0, 1, len(set(k_means_labels))))\n",
"\n",
"# Create a plot\n",
"ax = fig.add_subplot(1, 1, 1)\n",
"\n",
"# For loop that plots the data points and centroids.\n",
"# k will range from 0-3, which will match the possible clusters that each\n",
"# data point is in.\n",
"for k, col in zip(range(len([[4,4], [-2, -1], [2, -3], [1, 1]])), colors):\n",
"\n",
" # Create a list of all data points, where the data poitns that are \n",
" # in the cluster (ex. cluster 0) are labeled as true, else they are\n",
" # labeled as false.\n",
" my_members = (k_means_labels == k)\n",
" \n",
" # Define the centroid, or cluster center.\n",
" cluster_center = k_means_cluster_centers[k]\n",
" \n",
" # Plots the datapoints with color col.\n",
" ax.plot(X[my_members, 0], X[my_members, 1], 'w', markerfacecolor=col, marker='.')\n",
" \n",
" # Plots the centroids with specified color, but with a darker outline\n",
" ax.plot(cluster_center[0], cluster_center[1], 'o', markerfacecolor=col, markeredgecolor='k', markersize=6)\n",
"\n",
"# Title of the plot\n",
"ax.set_title('KMeans')\n",
"\n",
"# Remove x-axis ticks\n",
"ax.set_xticks(())\n",
"\n",
"# Remove y-axis ticks\n",
"ax.set_yticks(())\n",
"\n",
"# Show the plot\n",
"plt.show()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Practice\n",
"Try to cluster the above dataset into 3 clusters. \n",
"Notice: do not generate data again, use the same dataset as above."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"\n",
"'''# write your code here\n",
"k_means_3 = KMeans(init = \"k-means++\", n_clusters = 3, n_init = 12)\n",
"k_means_3.fit(X)\n",
"k_means_labels_3 = k_means_3.labels_\n",
"k_means_cluster_centers_3 = k_means_3.cluster_centers_\n",
"\n",
"# Initialize the plot with the specified dimensions.\n",
"fig = plt.figure(figsize=(6, 4))\n",
"\n",
"# Colors uses a color map, which will produce an array of colors based on\n",
"# the number of labels there are. We use set(k_means_labels) to get the\n",
"# unique labels.\n",
"colors = plt.cm.Spectral(np.linspace(0, 1, len(set(k_means_labels_3))))\n",
"\n",
"# Create a plot\n",
"ax = fig.add_subplot(1, 1, 1)\n",
"\n",
"# For loop that plots the data points and centroids.\n",
"# k will range from 0-3, which will match the possible clusters that each\n",
"# data point is in.\n",
"for k, col in zip(range(len(k_means_cluster_centers_3)), colors):\n",
"\n",
" # Create a list of all data points, where the data poitns that are \n",
" # in the cluster (ex. cluster 0) are labeled as true, else they are\n",
" # labeled as false.\n",
" my_members = (k_means_labels_3 == k)\n",
"\n",
" # Define the centroid, or cluster center.\n",
" cluster_center = k_means_cluster_centers_3[k]\n",
"\n",
" # Plots the datapoints with color col.\n",
" ax.plot(X[my_members, 0], X[my_members, 1], 'w', markerfacecolor=col, marker='.')\n",
"\n",
" # Plots the centroids with specified color, but with a darker outline\n",
" ax.plot(cluster_center[0], cluster_center[1], 'o', markerfacecolor=col, markeredgecolor='k', markersize=6)\n",
"\n",
"# Title of the plot\n",
"ax.set_title('KMeans')\n",
"\n",
"# Remove x-axis ticks\n",
"ax.set_xticks(())\n",
"\n",
"# Remove y-axis ticks\n",
"ax.set_yticks(())\n",
"\n",
"# Show the plot\n",
"plt.show()'''\n",
"\n",
"k_means3 = KMeans(init = \"k-means++\", n_clusters = 3, n_init = 12)\n",
"k_means3.fit(X)\n",
"fig = plt.figure(figsize=(6, 4))\n",
"colors = plt.cm.Spectral(np.linspace(0, 1, len(set(k_means3.labels_))))\n",
"ax = fig.add_subplot(1, 1, 1)\n",
"for k, col in zip(range(len(k_means3.cluster_centers_)), colors):\n",
" my_members = (k_means3.labels_ == k)\n",
" cluster_center = k_means3.cluster_centers_[k]\n",
" ax.plot(X[my_members, 0], X[my_members, 1], 'w', markerfacecolor=col, marker='.')\n",
" ax.plot(cluster_center[0], cluster_center[1], 'o', markerfacecolor=col, markeredgecolor='k', markersize=6)\n",
"plt.show()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Double-click __here__ for the solution.\n",
"\n",
"<!-- Your answer is below:\n",
"\n",
"k_means3 = KMeans(init = \"k-means++\", n_clusters = 3, n_init = 12)\n",
"k_means3.fit(X)\n",
"fig = plt.figure(figsize=(6, 4))\n",
"colors = plt.cm.Spectral(np.linspace(0, 1, len(set(k_means3.labels_))))\n",
"ax = fig.add_subplot(1, 1, 1)\n",
"for k, col in zip(range(len(k_means3.cluster_centers_)), colors):\n",
" my_members = (k_means3.labels_ == k)\n",
" cluster_center = k_means3.cluster_centers_[k]\n",
" ax.plot(X[my_members, 0], X[my_members, 1], 'w', markerfacecolor=col, marker='.')\n",
" ax.plot(cluster_center[0], cluster_center[1], 'o', markerfacecolor=col, markeredgecolor='k', markersize=6)\n",
"plt.show()\n",
"\n",
"\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"<h1 id=\"customer_segmentation_K_means\">Customer Segmentation with K-Means</h1>\n",
"Imagine that you have a customer dataset, and you need to apply customer segmentation on this historical data.\n",
"Customer segmentation is the practice of partitioning a customer base into groups of individuals that have similar characteristics. It is a significant strategy as a business can target these specific groups of customers and effectively allocate marketing resources. For example, one group might contain customers who are high-profit and low-risk, that is, more likely to purchase products, or subscribe for a service. A business task is to retaining those customers. Another group might include customers from non-profit organizations. And so on.\n",
"\n",
"Lets download the dataset. To download the data, we will use **`!wget`** to download it from IBM Object Storage. \n",
"__Did you know?__ When it comes to Machine Learning, you will likely be working with large datasets. As a business, where can you host your data? IBM is offering a unique opportunity for businesses, with 10 Tb of IBM Cloud Object Storage: [Sign up now for free](http://cocl.us/ML0101EN-IBM-Offer-CC)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [],
"source": [
"!wget -O Cust_Segmentation.csv https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/ML0101ENv3/labs/Cust_Segmentation.csv"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"### Load Data From CSV File \n",
"Before you can work with the data, you must use the URL to get the Cust_Segmentation.csv."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [],
"source": [
"import pandas as pd\n",
"cust_df = pd.read_csv(\"Cust_Segmentation.csv\")\n",
"cust_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"pre_processing\">Pre-processing</h2"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"As you can see, __Address__ in this dataset is a categorical variable. k-means algorithm isn't directly applicable to categorical variables because Euclidean distance function isn't really meaningful for discrete variables. So, lets drop this feature and run clustering."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [],
"source": [
"df = cust_df.drop('Address', axis=1)\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"#### Normalizing over the standard deviation\n",
"Now let's normalize the dataset. But why do we need normalization in the first place? Normalization is a statistical method that helps mathematical-based algorithms to interpret features with different magnitudes and distributions equally. We use __StandardScaler()__ to normalize our dataset."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [],
"source": [
"from sklearn.preprocessing import StandardScaler\n",
"X = df.values[:,1:]\n",
"X = np.nan_to_num(X)\n",
"Clus_dataSet = StandardScaler().fit_transform(X)\n",
"Clus_dataSet"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2 id=\"modeling\">Modeling</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"In our example (if we didn't have access to the k-means algorithm), it would be the same as guessing that each customer group would have certain age, income, education, etc, with multiple tests and experiments. However, using the K-means clustering we can do all this process much easier.\n",
"\n",
"Lets apply k-means on our dataset, and take look at cluster labels."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [],
"source": [
"clusterNum = 3\n",
"k_means = KMeans(init = \"k-means++\", n_clusters = clusterNum, n_init = 12)\n",
"k_means.fit(X)\n",
"labels = k_means.labels_\n",
"print(labels)"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"<h2 id=\"insights\">Insights</h2>\n",
"We assign the labels to each row in dataframe."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [],
"source": [
"df[\"Clus_km\"] = labels\n",
"df.head(5)"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"We can easily check the centroid values by averaging the features in each cluster."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [],
"source": [
"df.groupby('Clus_km').mean()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, lets look at the distribution of customers based on their age and income:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [],
"source": [
"area = np.pi * ( X[:, 1])**2 \n",
"plt.scatter(X[:, 0], X[:, 3], s=area, c=labels.astype(np.float), alpha=0.5)\n",
"plt.xlabel('Age', fontsize=18)\n",
"plt.ylabel('Income', fontsize=16)\n",
"\n",
"plt.show()\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from mpl_toolkits.mplot3d import Axes3D \n",
"fig = plt.figure(1, figsize=(8, 6))\n",
"plt.clf()\n",
"ax = Axes3D(fig, rect=[0, 0, .95, 1], elev=48, azim=134)\n",
"\n",
"plt.cla()\n",
"# plt.ylabel('Age', fontsize=18)\n",
"# plt.xlabel('Income', fontsize=16)\n",
"# plt.zlabel('Education', fontsize=16)\n",
"ax.set_xlabel('Education')\n",
"ax.set_ylabel('Age')\n",
"ax.set_zlabel('Income')\n",
"\n",
"ax.scatter(X[:, 1], X[:, 0], X[:, 3], c= labels.astype(np.float))\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"k-means will partition your customers into mutually exclusive groups, for example, into 3 clusters. The customers in each cluster are similar to each other demographically.\n",
"Now we can create a profile for each group, considering the common characteristics of each cluster. \n",
"For example, the 3 clusters can be:\n",
"\n",
"- AFFLUENT, EDUCATED AND OLD AGED\n",
"- MIDDLE AGED AND MIDDLE INCOME\n",
"- YOUNG AND LOW INCOME"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"<h2>Want to learn more?</h2>\n",
"\n",
"IBM SPSS Modeler is a comprehensive analytics platform that has many machine learning algorithms. It has been designed to bring predictive intelligence to decisions made by individuals, by groups, by systems – by your enterprise as a whole. A free trial is available through this course, available here: <a href=\"http://cocl.us/ML0101EN-SPSSModeler\">SPSS Modeler</a>\n",
"\n",
"Also, you can use Watson Studio to run these notebooks faster with bigger datasets. Watson Studio is IBM's leading cloud solution for data scientists, built by data scientists. With Jupyter notebooks, RStudio, Apache Spark and popular libraries pre-packaged in the cloud, Watson Studio enables data scientists to collaborate on their projects without having to install anything. Join the fast-growing community of Watson Studio users today with a free account at <a href=\"https://cocl.us/ML0101EN_DSX\">Watson Studio</a>\n",
"\n",
"<h3>Thanks for completing this lesson!</h3>\n",
"\n",
"<h4>Author: <a href=\"https://ca.linkedin.com/in/saeedaghabozorgi\">Saeed Aghabozorgi</a></h4>\n",
"<p><a href=\"https://ca.linkedin.com/in/saeedaghabozorgi\">Saeed Aghabozorgi</a>, PhD is a Data Scientist in IBM with a track record of developing enterprise level applications that substantially increases clients’ ability to turn data into actionable knowledge. He is a researcher in data mining field and expert in developing advanced analytic methods like machine learning and statistical modelling on large datasets.</p>\n",
"\n",
"<hr>\n",
"\n",
"<p>Copyright &copy; 2018 <a href=\"https://cocl.us/DX0108EN_CC\">Cognitive Class</a>. This notebook and its source code are released under the terms of the <a href=\"https://bigdatauniversity.com/mit-license/\">MIT License</a>.</p>"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python",
"language": "python",
"name": "conda-env-python-py"
},
"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"
},
"widgets": {
"state": {},
"version": "1.1.2"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment