Skip to content

Instantly share code, notes, and snippets.

@Mrunal2014
Last active May 9, 2017 08:30
Show Gist options
  • Save Mrunal2014/3902a7102226244ffc93a6eaa4bd8c83 to your computer and use it in GitHub Desktop.
Save Mrunal2014/3902a7102226244ffc93a6eaa4bd8c83 to your computer and use it in GitHub Desktop.
Naive Bayes Algorithm
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Naive Bayes\n",
"-by TExT Team Persistent System (<a href='https://www.persistent.com/'>www.persistent.com</a>)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Problem\n",
"\n",
"Given dataset of eight individuals with values for features like gender, height, weight and foot-size. Use the dataset to construct a classifier that takes in the height, weight, and foot size of an individual and outputs a prediction for his/her gender.\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"<b>What is Naive Bayes Algorithm?</b>\n",
"\n",
"\n",
"It is a classification technique based on Bayes’ Theorem with an assumption of independence among predictors. In simple terms, a Naive Bayes classifier assumes that the presence of a particular feature in a class is unrelated to the presence of any other feature. For example, a fruit may be considered to be an apple if it is red, round, and about 3 inches in diameter. Even if these features depend on each other or upon the existence of the other features, all of these properties independently contribute to the probability that this fruit is an apple and that is why it is known as ‘Naive’.\n",
"\n",
"Naive Bayes model is easy to build and particularly useful for very large data sets. Along with simplicity, Naive Bayes is known to outperform even highly sophisticated classification methods."
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"### Bayes classifier \n",
"\n",
"The simple equation for Bayes theorem goes like this:"
]
},
{
"cell_type": "code",
"execution_count": 202,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nIiGEEMt33/1/GLYrOaMAwlcAAAAASUVORK5CYII=\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"execution_count": 202,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Image(filename=\"Images/Image_NaiveBayes_Bayes Theorem.png\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"In a <b>bayes classifier</b>, we calculate the numerator of the posterior for every class for each observation.\n",
"We classify the observation based on the class with the largest posterior value. \n",
"\n",
"In the example demonstrated below, we have one observation to predict and two possible classes, i.e. male and female.\n",
"Hence, we will calculate two posteriors: one for male and one for female. \n",
" \n",
"In that case the equation goes like this:"
]
},
{
"cell_type": "code",
"execution_count": 203,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\ni9jubOSWAAAAAElFTkSuQmCC\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"execution_count": 203,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Image(filename=\"Images/Image_NaiveBayes_Bayes Theorem elaborated.png\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"Here, <b>Gaussian Naive Bayes Classifier</b> is used. It is the most popular type of bayes classifier, for which the equation goes like this:"
]
},
{
"cell_type": "code",
"execution_count": 204,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nA/x/vA57rxSfO3oAAAAASUVORK5CYII=\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"execution_count": 204,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Image(filename=\"Images/Image_Gaussian_NaiveBayes_Classifier.png\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"<b>P(male)</b> - The probability an observation is male. This is just the number of males in the dataset divided by the \n",
"total number of people in the dataset.\n",
"\n",
"<b>p(height∣female)p(weight∣female)p(foot size∣female)</b> - is the likelihood. \n",
"\n",
"We have unpacked person's data so it is now every feature in the dataset. \n",
"\n",
"The <b>gaussian</b> and <b>naive</b> come from two assumptions present in this likelihood:\n",
" \n",
"<b>1.</b> Noice that we assume each feature is uncorrelated from each other. That is, foot size is independent \n",
" of weight or height etc. This is obviously not true, and is a naive assumption, hence the name naive bayes\n",
" \n",
"<b>2.</b> We assume that the value of the features like the height and weight of women are normally (gaussian) distributed.\n",
" In other words p(height∣female) is calculated by inputing the required parameters into the probability \n",
" density function of the normal distribution:\n",
" \n",
"The equation goes like this: "
]
},
{
"cell_type": "code",
"execution_count": 205,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n9u3b/wMMofbMgT7FxgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"execution_count": 205,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Image(filename=\"Images/Image_Gaussian_NaiveBayes_Classifier_Equation.png\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### How Naive Bayes algorithm works?\n",
"\n",
"This involves three steps\n",
"\n",
"<b>Step 1: </b> Convert the data set into a frequency table\n",
" \n",
"<b>Step 2: </b> Create Likelihood\n",
" \n",
"<b>Step 3: </b> Use Naive Bayesian equation to calculate the posterior probability for each class. The class with the highest posterior probability is the outcome of prediction.\n",
" \n",
" "
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"### Import required libraries"
]
},
{
"cell_type": "code",
"execution_count": 206,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"from IPython.display import Image"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"### Generate the dataset\n",
"The dataset contains data on eight persons. This dataset is used to construct a classifier that reads height, weight, and foot size of person and outputs a prediction for his/her gender."
]
},
{
"cell_type": "code",
"execution_count": 207,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Height</th>\n",
" <th>Weight</th>\n",
" <th>Foot_Size</th>\n",
" <th>Gender</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>5.00</td>\n",
" <td>100</td>\n",
" <td>6</td>\n",
" <td>female</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>5.50</td>\n",
" <td>150</td>\n",
" <td>8</td>\n",
" <td>female</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>5.42</td>\n",
" <td>130</td>\n",
" <td>7</td>\n",
" <td>female</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>5.75</td>\n",
" <td>150</td>\n",
" <td>9</td>\n",
" <td>male</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>6.00</td>\n",
" <td>180</td>\n",
" <td>12</td>\n",
" <td>male</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>5.92</td>\n",
" <td>190</td>\n",
" <td>11</td>\n",
" <td>male</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>5.58</td>\n",
" <td>170</td>\n",
" <td>12</td>\n",
" <td>male</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>5.92</td>\n",
" <td>165</td>\n",
" <td>10</td>\n",
" <td>male</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Height Weight Foot_Size Gender\n",
"0 5.00 100 6 female\n",
"1 5.50 150 8 female\n",
"2 5.42 130 7 female\n",
"3 5.75 150 9 male\n",
"4 6.00 180 12 male\n",
"5 5.92 190 11 male\n",
"6 5.58 170 12 male\n",
"7 5.92 165 10 male"
]
},
"execution_count": 207,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Create dataframe\n",
"data = pd.DataFrame()\n",
"\n",
"# Create our feature variables\n",
"data['Height'] = [5,5.5,5.42,5.75,6,5.92,5.58,5.92]\n",
"data['Weight'] = [100,150,130,150,180,190,170,165]\n",
"data['Foot_Size'] = [6,8,7,9,12,11,12,10]\n",
"\n",
"# Create our target variable\n",
"data['Gender'] = ['female','female','female','male','male','male','male','male']\n",
"\n",
"# View the data\n",
"data"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"### Create a new person to predict gender\n",
"The new person has values for features like height,weight & foot-size but not the gender. "
]
},
{
"cell_type": "code",
"execution_count": 208,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Height</th>\n",
" <th>Weight</th>\n",
" <th>Foot_Size</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>5.5</td>\n",
" <td>125</td>\n",
" <td>6</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Height Weight Foot_Size\n",
"0 5.5 125 6"
]
},
"execution_count": 208,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Create an empty dataframe\n",
"person = pd.DataFrame()\n",
"\n",
"# Create some feature values for this single row\n",
"person['Height'] = [5.5]\n",
"person['Weight'] = [125]\n",
"person['Foot_Size'] = [6]\n",
"\n",
"# View the data\n",
"person"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"### Calcualte Likelihood\n",
"This means that for each class like female and feature like height combination we need to calculate the variance and mean value from the data."
]
},
{
"cell_type": "code",
"execution_count": 209,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Number of males\n",
"no_male = data['Gender'][data['Gender'] == 'male'].count()\n",
"\n",
"# Number of females\n",
"no_female = data['Gender'][data['Gender'] == 'female'].count()\n",
"\n",
"# Total persons\n",
"total_persons = data['Gender'].count()\n",
"\n",
"# Number of males divided by the total rows\n",
"P_male = no_male/total_persons\n",
"\n",
"# Number of females divided by the total rows\n",
"P_female = no_female/total_persons"
]
},
{
"cell_type": "code",
"execution_count": 210,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Height</th>\n",
" <th>Weight</th>\n",
" <th>Foot_Size</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Gender</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>female</th>\n",
" <td>0.072133</td>\n",
" <td>633.333333</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>male</th>\n",
" <td>0.028480</td>\n",
" <td>230.000000</td>\n",
" <td>1.7</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Height Weight Foot_Size\n",
"Gender \n",
"female 0.072133 633.333333 1.0\n",
"male 0.028480 230.000000 1.7"
]
},
"execution_count": 210,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Group the data by gender and calculate the variance of each feature\n",
"data_variance = data.groupby('Gender').var()\n",
"\n",
"# View the values\n",
"data_variance"
]
},
{
"cell_type": "code",
"execution_count": 211,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Height</th>\n",
" <th>Weight</th>\n",
" <th>Foot_Size</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Gender</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>female</th>\n",
" <td>5.306667</td>\n",
" <td>126.666667</td>\n",
" <td>7.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>male</th>\n",
" <td>5.834000</td>\n",
" <td>171.000000</td>\n",
" <td>10.8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Height Weight Foot_Size\n",
"Gender \n",
"female 5.306667 126.666667 7.0\n",
"male 5.834000 171.000000 10.8"
]
},
"execution_count": 211,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Group the data by gender and calculate the means of each feature\n",
"data_means = data.groupby('Gender').mean()\n",
"\n",
"# View the values\n",
"data_means"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Creating a variable out of each cell in both of the tables above"
]
},
{
"cell_type": "code",
"execution_count": 212,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Means for male ---- Height ---- Weight ---- Foot Size\n",
"Values 5.834 171.0 10.8\n",
"Variance for male ---- Height ---- Weight ---- Foot Size\n",
"Values 0.02848 230.0 1.7\n",
"\n",
"\n",
"Means for female ---- Height ---------------- Weight -------- Foot Size\n",
"Values 5.30666666667 126.666666667 7.0\n",
"Variance for male ---- Height --------------- Weight -------- Foot Size\n",
"Values 0.0721333333333 633.333333333 1.0\n"
]
}
],
"source": [
"# Means for male\n",
"male_height_mean = data_means['Height'][data_variance.index == 'male'].values[0]\n",
"male_weight_mean = data_means['Weight'][data_variance.index == 'male'].values[0]\n",
"male_footsize_mean = data_means['Foot_Size'][data_variance.index == 'male'].values[0]\n",
"\n",
"# Variance for male\n",
"male_height_variance = data_variance['Height'][data_variance.index == 'male'].values[0]\n",
"male_weight_variance = data_variance['Weight'][data_variance.index == 'male'].values[0]\n",
"male_footsize_variance = data_variance['Foot_Size'][data_variance.index == 'male'].values[0]\n",
"\n",
"print \"Means for male ---- Height ---- Weight ---- Foot Size\"\n",
"print \"Values \" , male_height_mean , \" \" , male_weight_mean , \" \" , male_footsize_mean\n",
"\n",
"print \"Variance for male ---- Height ---- Weight ---- Foot Size\"\n",
"print \"Values \" , male_height_variance , \" \" , male_weight_variance , \" \" , male_footsize_variance\n",
"print\n",
"print\n",
"\n",
"# Means for female\n",
"female_height_mean = data_means['Height'][data_variance.index == 'female'].values[0]\n",
"female_weight_mean = data_means['Weight'][data_variance.index == 'female'].values[0]\n",
"female_footsize_mean = data_means['Foot_Size'][data_variance.index == 'female'].values[0]\n",
"\n",
"# Variance for female\n",
"female_height_variance = data_variance['Height'][data_variance.index == 'female'].values[0]\n",
"female_weight_variance = data_variance['Weight'][data_variance.index == 'female'].values[0]\n",
"female_footsize_variance = data_variance['Foot_Size'][data_variance.index == 'female'].values[0]\n",
"\n",
"print \"Means for female ---- Height ---------------- Weight -------- Foot Size\"\n",
"print \"Values \" , female_height_mean , \" \" , female_weight_mean , \" \" , female_footsize_mean\n",
"\n",
"print \"Variance for male ---- Height --------------- Weight -------- Foot Size\"\n",
"print \"Values \" , female_height_variance , \" \" , female_weight_variance , \" \" , female_footsize_variance"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Create a function to calculate the probability density of each of the terms of the likelihood i.e. p(height∣female))"
]
},
{
"cell_type": "code",
"execution_count": 213,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"### Create a function to calculate the probability density of each of the terms of the likelihood \n",
"### (e.g. p(height∣female))\n",
"\n",
"# Create a function that calculates p(x | y):\n",
"def p_x_given_y(x, mean_y, variance_y):\n",
"\n",
" # Input the arguments into a probability density function\n",
" p = 1/(np.sqrt(2*np.pi*variance_y)) * np.exp((-(x-mean_y)**2)/(2*variance_y))\n",
" return p"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Apply Bayes Classifier To New Data Point"
]
},
{
"cell_type": "code",
"execution_count": 214,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3.07658489448e-08\n"
]
}
],
"source": [
"P_male = \\\n",
"p_x_given_y(person['Height'][0], male_height_mean, male_height_variance) * \\\n",
"p_x_given_y(person['Weight'][0], male_weight_mean, male_weight_variance) * \\\n",
"p_x_given_y(person['Foot_Size'][0], male_footsize_mean, male_footsize_variance)\n",
"print P_male"
]
},
{
"cell_type": "code",
"execution_count": 215,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.00438758806579\n"
]
}
],
"source": [
"P_female = \\\n",
"p_x_given_y(person['Height'][0], female_height_mean, female_height_variance) * \\\n",
"p_x_given_y(person['Weight'][0], female_weight_mean, female_weight_variance) * \\\n",
"p_x_given_y(person['Foot_Size'][0], female_footsize_mean, female_footsize_variance)\n",
"print P_female"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"### As the numerator of the posterior for male is greater than female, we predict that the person is male"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### What are the Pros and Cons of Naive Bayes?\n",
"\n",
"<i><b>Pros:</b></i>\n",
" \n",
"<ul type=\"circle\">\n",
"<li>It is easy and fast to predict class of test data set. It also perform well in multi class prediction</li>\n",
"<li>When assumption of independence holds, a Naive Bayes classifier performs better compare to other models like logistic regression and you need less training data.</li>\n",
"<li>It perform well in case of categorical input variables compared to numerical variable(s). For numerical variable, normal distribution is assumed (bell curve, which is a strong assumption).</li>\n",
"</ul>\n",
"\n",
"\n",
"<i><b>Cons:</b></i>\n",
" \n",
"<ul type=\"circle\">\n",
"<li>If categorical variable has a category (in test data set), which was not observed in training data set, then model will assign a 0 (zero) probability and will be unable to make a prediction. This is often known as “Zero Frequency”. To solve this, we can use the smoothing technique. One of the simplest smoothing techniques is called Laplace estimation.</li>\n",
"<li>On the other side naive Bayes is also known as a bad estimator, so the probability outputs from predict_proba are not to be taken too seriously.</li>\n",
"<li>Another limitation of Naive Bayes is the assumption of independent predictors. In real life, it is almost impossible that we get a set of predictors which are completely independent.</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Applications of Naive Bayes Algorithms\n",
"\n",
"<ul type=\"circle\">\n",
"<li><b>Real time Prediction: </b>Naive Bayes is an eager learning classifier and it is sure fast. Thus, it could be used for making predictions in real time.\n",
" Multi class Prediction: This algorithm is also well known for multi class prediction feature. Here we can predict the probability of multiple classes of target variable.</li>\n",
"<li><b>Text classification/ Spam Filtering/ Sentiment Analysis: </b>Naive Bayes classifiers mostly used in text classification (due to better result in multi class problems and independence rule) have higher success rate as compared to other algorithms. As a result, it is widely used in Spam filtering (identify spam e-mail) and Sentiment Analysis (in social media analysis, to identify positive and negative customer sentiments)</li>\n",
"<li><b>Recommendation System: </b>Naive Bayes Classifier and Collaborative Filtering together builds a Recommendation System that uses machine learning and data mining techniques to filter unseen information and predict whether a user would like a given resource or not</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Tips to improve the power of Naive Bayes Model\n",
"\n",
"Here are some tips for improving power of Naive Bayes Model:\n",
"\n",
"<ul type=\"circle\">\n",
"<li>If continuous features do not have normal distribution, we should use transformation or different methods to convert it in normal distribution.</li>\n",
"<li>If test data set has zero frequency issue, apply smoothing techniques “Laplace Correction” to predict the class of test data set.</li>\n",
"<li>Remove correlated features, as the highly correlated features are voted twice in the model and it can lead to over inflating importance.</li>\n",
"<li>Naive Bayes classifiers has limited options for parameter tuning like alpha=1 for smoothing, fit_prior=[True|False] to learn class prior probabilities or not and some other options (look at detail here). I would recommend to focus on your pre-processing of data and the feature selection.</li>\n",
"<li>You might think to apply some classifier combination technique like ensembling, bagging and boosting but these methods would not help. Actually, “ensembling, boosting, bagging” won’t help since their purpose is to reduce variance. Naive Bayes has no variance to minimize.</li>\n",
"</ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### References\n",
"\n",
"https://en.wikipedia.org/wiki/Naive_Bayes_classifier\n",
" \n",
"https://www.analyticsvidhya.com/blog/2015/09/naive-bayes-explained/ \n",
"\n",
"https://chrisalbon.com/machine-learning/naive_bayes_classifier_from_scratch.html\n"
]
}
],
"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.13"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment