Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Michy01/982096a23c6c7ddde61ffeea1626415a to your computer and use it in GitHub Desktop.
Save Michy01/982096a23c6c7ddde61ffeea1626415a 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",
"# <center>K-Means Clustering</center>"
]
},
{
"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 the one of the simplest model among 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 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": {
"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": 16,
"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": [
"# k-Means on a randomly generated dataset\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": 17,
"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": 18,
"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": 19,
"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 0x7fdca446feb8>"
]
},
"execution_count": 19,
"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": [
"## Setting up K-Means\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": 20,
"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": 21,
"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": 21,
"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": 22,
"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": 22,
"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": 23,
"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": 23,
"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": [
"## Creating the Visual Plot\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": 24,
"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": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 3.70310165, 3.69627302],\n",
" [-0.80700142, -0.17035769],\n",
" [ 2.02030226, -2.94614399]])"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Inintialize K-means\n",
"k_means1 = KMeans(init = \"k-means++\", n_clusters = 3, n_init = 12)\n",
"\n",
"# Fit the KMeans model \n",
"k_means1.fit(X)\n",
"\n",
"# Grabs the labels for each point in the model using KMeans' .labels_ attribute\n",
"k_means_labels1 = k_means1.labels_\n",
"k_means_labels1\n",
"\n",
"# Get the coordinates of the cluster centers using KMeans' .cluster_centers_\n",
"k_means_cluster_centers1 = k_means1.cluster_centers_\n",
"k_means_cluster_centers1"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Creating the Visual Plot\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_labels1))))\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([[0,4], [-4, -2], [2, 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_members1 = (k_means_labels1 == k)\n",
" \n",
" # Define the centroid, or cluster center.\n",
" cluster_center1 = k_means_cluster_centers1[k]\n",
" \n",
" # Plots the datapoints with color col.\n",
" ax.plot(X[my_members1, 0], X[my_members1, 1], 'w', markerfacecolor=col, marker='.')\n",
" \n",
" # Plots the centroids with specified color, but with a darker outline\n",
" ax.plot(cluster_center1[0], cluster_center1[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()"
]
},
{
"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": [
"# Customer Segmentation with K-Means\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 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": 27,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"--2020-01-30 12:52:12-- https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/ML0101ENv3/labs/Cust_Segmentation.csv\n",
"Resolving s3-api.us-geo.objectstorage.softlayer.net (s3-api.us-geo.objectstorage.softlayer.net)... 67.228.254.196\n",
"Connecting to s3-api.us-geo.objectstorage.softlayer.net (s3-api.us-geo.objectstorage.softlayer.net)|67.228.254.196|:443... connected.\n",
"HTTP request sent, awaiting response... 200 OK\n",
"Length: 34276 (33K) [text/csv]\n",
"Saving to: ‘Cust_Segmentation.csv’\n",
"\n",
"Cust_Segmentation.c 100%[===================>] 33.47K --.-KB/s in 0.02s \n",
"\n",
"2020-01-30 12:52:12 (1.49 MB/s) - ‘Cust_Segmentation.csv’ saved [34276/34276]\n",
"\n"
]
}
],
"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": 28,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Customer Id</th>\n",
" <th>Age</th>\n",
" <th>Edu</th>\n",
" <th>Years Employed</th>\n",
" <th>Income</th>\n",
" <th>Card Debt</th>\n",
" <th>Other Debt</th>\n",
" <th>Defaulted</th>\n",
" <th>Address</th>\n",
" <th>DebtIncomeRatio</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>41</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>19</td>\n",
" <td>0.124</td>\n",
" <td>1.073</td>\n",
" <td>0.0</td>\n",
" <td>NBA001</td>\n",
" <td>6.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2</td>\n",
" <td>47</td>\n",
" <td>1</td>\n",
" <td>26</td>\n",
" <td>100</td>\n",
" <td>4.582</td>\n",
" <td>8.218</td>\n",
" <td>0.0</td>\n",
" <td>NBA021</td>\n",
" <td>12.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>3</td>\n",
" <td>33</td>\n",
" <td>2</td>\n",
" <td>10</td>\n",
" <td>57</td>\n",
" <td>6.111</td>\n",
" <td>5.802</td>\n",
" <td>1.0</td>\n",
" <td>NBA013</td>\n",
" <td>20.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4</td>\n",
" <td>29</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>19</td>\n",
" <td>0.681</td>\n",
" <td>0.516</td>\n",
" <td>0.0</td>\n",
" <td>NBA009</td>\n",
" <td>6.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5</td>\n",
" <td>47</td>\n",
" <td>1</td>\n",
" <td>31</td>\n",
" <td>253</td>\n",
" <td>9.308</td>\n",
" <td>8.908</td>\n",
" <td>0.0</td>\n",
" <td>NBA008</td>\n",
" <td>7.2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Customer Id Age Edu Years Employed Income Card Debt Other Debt \\\n",
"0 1 41 2 6 19 0.124 1.073 \n",
"1 2 47 1 26 100 4.582 8.218 \n",
"2 3 33 2 10 57 6.111 5.802 \n",
"3 4 29 2 4 19 0.681 0.516 \n",
"4 5 47 1 31 253 9.308 8.908 \n",
"\n",
" Defaulted Address DebtIncomeRatio \n",
"0 0.0 NBA001 6.3 \n",
"1 0.0 NBA021 12.8 \n",
"2 1.0 NBA013 20.9 \n",
"3 0.0 NBA009 6.3 \n",
"4 0.0 NBA008 7.2 "
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"cust_df = pd.read_csv(\"Cust_Segmentation.csv\")\n",
"cust_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Pre-processing"
]
},
{
"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": 29,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Customer Id</th>\n",
" <th>Age</th>\n",
" <th>Edu</th>\n",
" <th>Years Employed</th>\n",
" <th>Income</th>\n",
" <th>Card Debt</th>\n",
" <th>Other Debt</th>\n",
" <th>Defaulted</th>\n",
" <th>DebtIncomeRatio</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>41</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>19</td>\n",
" <td>0.124</td>\n",
" <td>1.073</td>\n",
" <td>0.0</td>\n",
" <td>6.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2</td>\n",
" <td>47</td>\n",
" <td>1</td>\n",
" <td>26</td>\n",
" <td>100</td>\n",
" <td>4.582</td>\n",
" <td>8.218</td>\n",
" <td>0.0</td>\n",
" <td>12.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>3</td>\n",
" <td>33</td>\n",
" <td>2</td>\n",
" <td>10</td>\n",
" <td>57</td>\n",
" <td>6.111</td>\n",
" <td>5.802</td>\n",
" <td>1.0</td>\n",
" <td>20.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4</td>\n",
" <td>29</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>19</td>\n",
" <td>0.681</td>\n",
" <td>0.516</td>\n",
" <td>0.0</td>\n",
" <td>6.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5</td>\n",
" <td>47</td>\n",
" <td>1</td>\n",
" <td>31</td>\n",
" <td>253</td>\n",
" <td>9.308</td>\n",
" <td>8.908</td>\n",
" <td>0.0</td>\n",
" <td>7.2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Customer Id Age Edu Years Employed Income Card Debt Other Debt \\\n",
"0 1 41 2 6 19 0.124 1.073 \n",
"1 2 47 1 26 100 4.582 8.218 \n",
"2 3 33 2 10 57 6.111 5.802 \n",
"3 4 29 2 4 19 0.681 0.516 \n",
"4 5 47 1 31 253 9.308 8.908 \n",
"\n",
" Defaulted DebtIncomeRatio \n",
"0 0.0 6.3 \n",
"1 0.0 12.8 \n",
"2 1.0 20.9 \n",
"3 0.0 6.3 \n",
"4 0.0 7.2 "
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"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 __tandardScaler()__ to normalize our dataset."
]
},
{
"cell_type": "code",
"execution_count": 30,
"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.74291541, 0.31212243, -0.37878978, ..., -0.59048916,\n",
" -0.52379654, -0.57652509],\n",
" [ 1.48949049, -0.76634938, 2.5737211 , ..., 1.51296181,\n",
" -0.52379654, 0.39138677],\n",
" [-0.25251804, 0.31212243, 0.2117124 , ..., 0.80170393,\n",
" 1.90913822, 1.59755385],\n",
" ...,\n",
" [-1.24795149, 2.46906604, -1.26454304, ..., 0.03863257,\n",
" 1.90913822, 3.45892281],\n",
" [-0.37694723, -0.76634938, 0.50696349, ..., -0.70147601,\n",
" -0.52379654, -1.08281745],\n",
" [ 2.1116364 , -0.76634938, 1.09746566, ..., 0.16463355,\n",
" -0.52379654, -0.2340332 ]])"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"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": [
"### Modeling"
]
},
{
"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": 31,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0 2 0 0 1 2 0 2 0 2 2 0 0 0 0 0 0 0 2 0 0 0 0 2 2 2 0 0 2 0 2 0 0 0 0 0 0\n",
" 0 0 2 0 2 0 1 0 2 0 0 0 2 2 0 0 2 2 0 0 0 2 0 2 0 2 2 0 0 2 0 0 0 2 2 2 0\n",
" 0 0 0 0 2 0 2 2 1 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 2 2 0 0 0 0 0 0 2 0\n",
" 0 0 0 0 0 0 0 2 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 2 0 2 0\n",
" 0 0 0 0 0 0 2 0 2 2 0 2 0 0 2 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 2 0 0 0 2 0\n",
" 0 0 0 0 2 0 0 2 0 2 0 0 2 1 0 2 0 0 0 0 0 0 1 2 0 0 0 0 2 0 0 2 2 0 2 0 2\n",
" 0 0 0 0 2 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 1 2 0 0 0 0 0 0 0 2 0 0 0 0\n",
" 0 0 2 0 0 2 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 0 2 0 2 0 2 2 0 0 0 0 0 0\n",
" 0 0 0 2 2 2 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 2 0 0 0 0 0 2 0 2 2 0\n",
" 0 0 0 0 2 0 0 0 0 0 0 2 0 0 2 0 0 2 0 0 0 0 0 2 0 0 0 1 0 0 0 2 0 2 2 2 0\n",
" 0 0 2 0 0 0 0 0 0 0 0 0 0 0 2 0 2 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0\n",
" 0 2 0 0 2 0 0 0 0 2 0 0 0 0 2 0 0 2 0 0 0 0 0 0 0 0 0 2 0 0 0 2 0 0 0 0 1\n",
" 0 0 0 0 0 0 2 0 0 0 1 0 0 0 0 2 0 1 0 0 0 0 2 0 2 2 2 0 0 2 2 0 0 0 0 0 0\n",
" 0 2 0 0 0 0 2 0 0 0 2 0 2 0 0 0 2 0 0 0 0 2 2 0 0 0 0 2 0 0 0 0 2 0 0 0 0\n",
" 0 2 2 0 0 0 0 0 0 0 0 0 0 0 1 2 0 0 0 0 0 0 2 0 0 0 0 2 0 0 2 0 0 1 0 1 0\n",
" 0 1 0 0 0 0 0 0 0 0 0 2 0 2 0 0 1 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 2 0 2\n",
" 0 0 0 0 0 0 2 0 0 0 0 2 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 2\n",
" 2 0 0 2 0 2 0 0 2 0 2 0 0 1 0 2 0 2 0 0 0 0 0 2 2 0 0 0 0 2 0 0 0 2 2 0 0\n",
" 2 0 0 0 2 0 1 0 0 2 0 0 0 0 0 0 0 2 0 0 0 2 0 0 0 0 0 2 0 0 2 0 0 0 0 0 0\n",
" 0 0 2 0 0 2 0 2 0 2 2 0 0 0 2 0 2 0 0 0 0 0 2 0 0 0 0 2 2 0 0 2 2 0 0 0 0\n",
" 0 2 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 2 0 2 2 0 2 0 2 2 0 0 2 0 0 0 0 0 2 2\n",
" 0 0 0 0 0 0 0 2 0 0 0 0 0 0 1 2 2 0 0 0 0 0 0 0 2 0 0 0 0 0 0 2 0 0 0 0 0\n",
" 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 2]\n"
]
}
],
"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": [
"### Insights\n",
"We assign the labels to each row in dataframe."
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Customer Id</th>\n",
" <th>Age</th>\n",
" <th>Edu</th>\n",
" <th>Years Employed</th>\n",
" <th>Income</th>\n",
" <th>Card Debt</th>\n",
" <th>Other Debt</th>\n",
" <th>Defaulted</th>\n",
" <th>DebtIncomeRatio</th>\n",
" <th>Clus_km</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>41</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>19</td>\n",
" <td>0.124</td>\n",
" <td>1.073</td>\n",
" <td>0.0</td>\n",
" <td>6.3</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2</td>\n",
" <td>47</td>\n",
" <td>1</td>\n",
" <td>26</td>\n",
" <td>100</td>\n",
" <td>4.582</td>\n",
" <td>8.218</td>\n",
" <td>0.0</td>\n",
" <td>12.8</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>3</td>\n",
" <td>33</td>\n",
" <td>2</td>\n",
" <td>10</td>\n",
" <td>57</td>\n",
" <td>6.111</td>\n",
" <td>5.802</td>\n",
" <td>1.0</td>\n",
" <td>20.9</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4</td>\n",
" <td>29</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>19</td>\n",
" <td>0.681</td>\n",
" <td>0.516</td>\n",
" <td>0.0</td>\n",
" <td>6.3</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5</td>\n",
" <td>47</td>\n",
" <td>1</td>\n",
" <td>31</td>\n",
" <td>253</td>\n",
" <td>9.308</td>\n",
" <td>8.908</td>\n",
" <td>0.0</td>\n",
" <td>7.2</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Customer Id Age Edu Years Employed Income Card Debt Other Debt \\\n",
"0 1 41 2 6 19 0.124 1.073 \n",
"1 2 47 1 26 100 4.582 8.218 \n",
"2 3 33 2 10 57 6.111 5.802 \n",
"3 4 29 2 4 19 0.681 0.516 \n",
"4 5 47 1 31 253 9.308 8.908 \n",
"\n",
" Defaulted DebtIncomeRatio Clus_km \n",
"0 0.0 6.3 0 \n",
"1 0.0 12.8 2 \n",
"2 1.0 20.9 0 \n",
"3 0.0 6.3 0 \n",
"4 0.0 7.2 1 "
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"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": 33,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Customer Id</th>\n",
" <th>Age</th>\n",
" <th>Edu</th>\n",
" <th>Years Employed</th>\n",
" <th>Income</th>\n",
" <th>Card Debt</th>\n",
" <th>Other Debt</th>\n",
" <th>Defaulted</th>\n",
" <th>DebtIncomeRatio</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Clus_km</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>432.006154</td>\n",
" <td>32.967692</td>\n",
" <td>1.613846</td>\n",
" <td>6.389231</td>\n",
" <td>31.204615</td>\n",
" <td>1.032711</td>\n",
" <td>2.108345</td>\n",
" <td>0.284658</td>\n",
" <td>10.095385</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>410.166667</td>\n",
" <td>45.388889</td>\n",
" <td>2.666667</td>\n",
" <td>19.555556</td>\n",
" <td>227.166667</td>\n",
" <td>5.678444</td>\n",
" <td>10.907167</td>\n",
" <td>0.285714</td>\n",
" <td>7.322222</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>403.780220</td>\n",
" <td>41.368132</td>\n",
" <td>1.961538</td>\n",
" <td>15.252747</td>\n",
" <td>84.076923</td>\n",
" <td>3.114412</td>\n",
" <td>5.770352</td>\n",
" <td>0.172414</td>\n",
" <td>10.725824</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Customer Id Age Edu Years Employed Income \\\n",
"Clus_km \n",
"0 432.006154 32.967692 1.613846 6.389231 31.204615 \n",
"1 410.166667 45.388889 2.666667 19.555556 227.166667 \n",
"2 403.780220 41.368132 1.961538 15.252747 84.076923 \n",
"\n",
" Card Debt Other Debt Defaulted DebtIncomeRatio \n",
"Clus_km \n",
"0 1.032711 2.108345 0.284658 10.095385 \n",
"1 5.678444 10.907167 0.285714 7.322222 \n",
"2 3.114412 5.770352 0.172414 10.725824 "
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"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": 34,
"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": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"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": [
"## Want to learn more?\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: [SPSS Modeler](http://cocl.us/ML0101EN-SPSSModeler).\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 [Watson Studio](https://cocl.us/ML0101EN_DSX)\n",
"\n",
"### Thanks for completing this lesson!\n",
"\n",
"Notebook created by: <a href = \"https://ca.linkedin.com/in/saeedaghabozorgi\">Saeed Aghabozorgi</a>\n",
"\n",
"<hr>\n",
"Copyright &copy; 2018 [Cognitive Class](https://cocl.us/DX0108EN_CC). This notebook and its source code are released under the terms of the [MIT License](https://bigdatauniversity.com/mit-license/).​"
]
}
],
"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