{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# CS-109A Introduction to Data Science"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"## Lab 9: Decision Trees (Part 1 of 2): Classification, Regression, Bagging, Random Forests\n",
"\n",
"**Harvard University** \n",
"**Fall 2019** \n",
"**Instructors:** Pavlos Protopapas, Kevin Rader, and Chris Tanner \n",
"**Lab Instructors:** Chris Tanner and Eleni Kaxiras \n",
"**Authors:** Kevin Rader, Rahul Dave, Chris Tanner"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n"
],
"text/plain": [
""
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"## RUN THIS CELL TO PROPERLY HIGHLIGHT THE EXERCISES\n",
"import requests\n",
"from IPython.core.display import HTML\n",
"styles = requests.get(\"https://raw.githubusercontent.com/Harvard-IACS/2018-CS109A/master/content/styles/cs109.css\").text\n",
"HTML(styles)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Learning Goals\n",
"\n",
"The goal of this lab is for students to:\n",
"\n",
"
\n",
"
Understand where Decision Trees fit into the larger picture of this class and other models
\n",
"
Understand what Decision Trees are and why we would care to use them
\n",
"
How decision trees work
\n",
"
Feel comfortable running sklearn's implementation of a decision tree
\n",
"
Understand the concepts of bagging and random forests
\n",
"
"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"# imports\n",
"%matplotlib inline\n",
"import numpy as np\n",
"import scipy as sp\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn import tree\n",
"from sklearn.model_selection import cross_val_score\n",
"from sklearn.utils import resample\n",
"from sklearn.tree import DecisionTreeClassifier\n",
"from sklearn.ensemble import RandomForestClassifier\n",
"import matplotlib as mpl\n",
"import matplotlib.cm as cm\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"pd.set_option('display.width', 500)\n",
"pd.set_option('display.max_columns', 100)\n",
"pd.set_option('display.notebook_repr_html', True)\n",
"import seaborn.apionly as sns"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Background\n",
"\n",
"Let's do a high-level recap of what we've learned in this course so far:\n",
"\n",
"Say we have input data $X = (X_1, X_2, ..., X_n)$ and corresponding class labels $Y = (Y_1, Y_2, ..., Y_n)$ where $n$ represents the number of observations/instances (i.e., unique samples). Much of statistical learning concerns trying to model this relationship between our data's $X$ and $Y$. In particular, we assert that the $Y$'s were produced/generated by some underlying function $f(X)$, and that there is inevitably some noise and systematic, implicit bias and error $\\epsilon$ that cannot be captured by any $f(X)$. Thus, we have:\n",
"\n",
"$Y = f(X) + \\epsilon$\n",
"\n",
"Statistical learning concerns either **prediction** or **inference**:\n",
"\n",
"**Prediction:** concerns trying to learn a function $\\hat{f}(X)$ that is as close as possible to the true function $f(X)$. This allows us to estimate $Y$ values for any new input data $X$.\n",
"\n",
"**Inference:** concerns trying to understand/model the _relationship_ between $X$ and $Y$, effectively learning how the data was generated.\n",
"\n",
"Independent of this, if you have access to gold truth labels $Y$, and you make use of them for your modelling, then you are working on a **supervised** learning task. If you do not have or make use of $Y$ values, and you are only concerned with the input data $X$, you are working on an **unsupervised** learning task.\n",
"\n",
" \n",
"
Q1: Using the above terms, what types of problems are linear regression, logistic regression, and PCA?
Q2: What is a decision tree? Why do we care to make a decision tree?
"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"# discussed in lab."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Understanding Decision Trees\n",
"\n",
"My goal is for none of the topics we learn in this class to seem like nebulus concepts or black-boxes of magic. In this course, it's important to understand the models that you can use to help you with your data, and this includes not only knowing how to invoke these as tools within Python libraries (e.g., ``sklearn``, ``statsmodels``), but to have an understanding of what each model is actually doing 'under the hood' -- how it actually works -- as this provides insights into why you should use one model vs another, and how you could adjust models and invent new ones!\n",
"\n",
"\n",
"### Entropy (aka Uncertainty)\n",
"\n",
"Remember, in the last lab, we mentioned that in data science and machine learning, our models are often just finding patterns in the data. For example, for classification, it is best when our data is separable by their $Y$ class lables (e.g., cancerous or benign). That is, hopefully the $X$ values for one class label (e.g., cancerous) is disjoint and separated from the $X$ values that correspond to another class label (e.g., benign). If so, our model would be able to easily discern if a given, new piece of data corresponds to the cancerous label or benign label, based on its $X$ values. If the data is not easily separable (i.e., the $X$ values corresponding to cancer looks very similar to $X$ values corresponding to benign), then our task is difficult and perhaps impossible. Along these lines, we can measure this element in terms of how messy/confusable/_uncertain_ a collection of data is.\n",
"\n",
"In the 1870s, physicists introduced a term ``Gibbs Entropy``, which was useful in statistical thermodynamics, as it effectively measured uncertainty. By the late 1920s, the foundational work in Information Theory had begun; pioneers John von Neumann and Claude Shannon conducted phenomenal work which paved the way for computation at large -- they heavily influenced the creation of computer science, and their work is still seen in modern day computers. Information theory concerns [entropy.](https://en.wikipedia.org/wiki/Entropy_(information_theory)) So let's look at an example to concretely address what entropy is (the information theoretic version of it).\n",
"\n",
"Say that we have a fair coin $X$, and each coin fliip is an observation. The coin is equally likely to yield heads or tails. The uncertainty is very high. In fact, it's the highest possible, as it's truly a 50/50 chance of either. Let $H(X)$ represent the entropy of $X$. Per the graphic below, we see that entropy is in fact highest when the probabilities of a 2-class variable are a 50/50 chance.\n",
"\n",
"
\n",
"\n",
"
\n",
"\n",
"If we had a cheating coin, whereby it was guaranteed to always be a head (or a tail), then our entropy would be 0, as there is no **uncertainty** about its outcome. Again, this term, entropy, predates decision trees and has vast applications. Alright, so we can see what entropy is measuring (the uncertainty), but how was it actually calculated?\n",
"\n",
"#### Definition:\n",
"Entropy factors in _all_ possible values/classes of a random variable (log base 2):\n",
"
\n",
"\n",
"
\n",
"\n",
"#### Fair-Coin Example\n",
"In our fair coin example, we only have 2 classes, both of which have a probability of 1/2. So, to calculate the overall entropy of the fair coin, we have Entropy(1+, 1-) =\n",
"
\n",
"\n",
"\n",
"### Worked Example\n",
"\n",
"Let's say that we have a small, 14-observation dataset that concerns if we will play tennis on a given day or not (Play Tennis will be our output $Y$), based on 4 features of the current weather:\n",
"
\n",
"
\n",
"\n",
"
\n",
"
\n",
"Completely independent of the features, we can calculate the overall entropy of playing tennis, Entropy for (9+, 5-) examples =\n",
"\n",
"
\n",
" \n",
"Okay, **0.94** is pretty horrible, as it's close to 1, which is the worst possible value. This means that a priori, if we use no features, it's hard to predict if we will play tennis or not. There's a lot of uncertainty (aka entropy). To improve this, could we segment our data in such a way that it's more clear if we will play tennis or not (i.e., by more clear, I mean we will have lower uncertainty... lower entropy).\n",
"\n",
"Let's start with looking at the ``Wind`` feature. There are 2 possible values for the Wind attribute, **weak** or **strong.** If we were to look at the subset of data that has weak wind, we see that there are 8 data samples (6 are 'Yes' for Play Tennis, 2 have 'No' for Play Tennis). Hmm, so if we know that the Wind is weak, it helps inform us that there's a 6/8 (75%) chance that we will Play Tennis. Let's put this in terms of entropy:\n",
"\n",
"When we look at ONLY the Wind is Weak subset of data, we have a Play Tennis entropy for (6+, 2-) examples, which calculates to:\n",
"
\n",
"\n",
"A value of 0.811 may seem sadly high, still, but our calculation was correct. If you reference the figure above that shows the entropy of a fair coin, we see that having a probability of 75% does in fact yield an entropy of 0.811.\n",
"\n",
"We're only looking at a subset of our data though (the subset for Wind is Weak). We now need to look at the rest of our data (the subset for Wind is Strong). When the Wind is Strong, we have 6 data points: 3 have Play Tennis is Yes, and 3 are No). In short-hand notation, we have (3+, 3-), which is a 0.5 probability, and we know already that this yields an Entropy of 1.\n",
"\n",
"When looking at this possible division of separating our data according to the value of Wind, the hope was that we'd have very low entropy in each subset of data. Imagine if the Wind attribute perfectly aligned with Playing Tennis or not (the values were identical). In that case, we would have an Entropy of 0 (no uncertainty), and thus, it would be INCREDIBLY useful to predict playing tennis or not based on the Wind attribute (it would tell us the exact answer).\n",
"\n",
"We saw that the Wind attribute didn't yield an entropy of 0; its two classes (weak and strong) had an entropy of 0.811 and 1, respectively. Is Wind a useful feature for us then? In order quantitatively measure its usefulness, we can use the entropy to calculate ``Information Gain``, which we saw in Lecture 15 on Slide 40:\n",
"\n",
"
\n",
"\n",
"Let $S$ represent our current data, and each $S_{i}$ is a subset of the data split according to each of the possible values. So, when considering splitting on Wind, our Information Gain is:\n",
"\n",
"
\n",
"\n",
"Okay, using Wind as a feature to split our data yields an Information Gain of 0.048. That looks like a low value. We want a high value because gain is good (we want to separate our data in a way that the increases our information). Is 0.048 bad? It all depends on the dataset.\n",
"\n",
"
\n",
"
Q3: Using our entire 14-observation dataset, calculate the Information Gain for the other 3 remaining features (Outlook, Temperature, Humidity). What are their values and which ones gives us the most information gain?
Q4: Now that we know which feature provides the most information gain, how should we use it to construct a decision tree? Let's start the construction of our tree and repeat the process of Q3 one more time.
Q7: What if we have outliers? How sensitive is our Decision Tree to outliers? Why?
"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"# %load solutions/q7.txt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Connection to Lecture\n",
"In Lecture 16, Pavlos started by presenting the tricky graph below which depicts a dataset with just 2 features: longitude and latitude.\n",
"\n",
"
\n",
"\n",
"
\n",
"\n",
"By drawing a straight line to separate our data, we would be doing the same exact process that we are doing here with our Play Tennis dataset. In our Play Tennis example, we are trying to segment our data into bins according to the possible _categories_ that a feature can be. In the lecture example (pictured above), we have continuous data, not discrete categories, so we have an infinite number of thresholds by which to segment our data.\n",
"\n",
"
\n",
"
Q8: How is it possible to segment continuous-valued data, since there are infinite number of possible splits? Do we try 1,000,000 possible values to split by? 100?
Q9: Is this tree identical to what we constructed above? If not, what differs in sklearn's implementation?
"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"# %load solutions/q8.txt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In the above example, we did not use the tree to do any classification. Our data was too small to consider such.\n",
"\n",
"Let's turn to a different dataset:\n",
"\n",
"## 2016 Election Data\n",
"We will be attempting to predict the presidential election results (at the county level) from 2016, measured as 'votergap' = (trump - clinton) in percentage points, based mostly on demographic features of those counties. Let's quick take a peak at the data:"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.hist(ytrain)\n",
"Xtrain.hist(column=['minority', 'population','hispanic','female']);"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(3066, 18)\n",
"(2452, 12)\n",
"(614, 12)\n"
]
}
],
"source": [
"print(elect_df.shape)\n",
"print(Xtrain.shape)\n",
"print(Xtest.shape)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Regression Trees\n",
"\n",
"We will start by using a simple Decision Tree Regressor to predict votergap. We'll run a few of these models without any cross-validation or 'regularization', just to illustrate what is going on.\n",
"\n",
"This is what you ought to keep in mind about decision trees.\n",
"\n",
"from the docs:\n",
"```\n",
"max_depth : int or None, optional (default=None)\n",
"The maximum depth of the tree. If None, then nodes are expanded until all leaves are pure or until all leaves contain less than min_samples_split samples.\n",
"min_samples_split : int, float, optional (default=2)\n",
"```\n",
"\n",
"- The deeper the tree, the more prone you are to overfitting.\n",
"- The smaller `min_samples_split`, the more the overfitting. One may use `min_samples_leaf` instead. More samples per leaf, the higher the bias."
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"
Q11: Class poll: When did the movie Titanic come out?
\n"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [],
"source": [
"# %load solutions/q11.txt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The basic idea:\n",
"- A Single Decision tree is likely to overfit.\n",
"- So lets introduce replication through Bootstrap sampling.\n",
"- **Bagging** uses bootstrap resampling to create different training datasets. This way each training will give us a different tree.\n",
"- Added bonus: the left off points can be used to as a natural \"validation\" set, so no need to \n",
"- Since we have many trees that we will **average over for prediction**, we can choose a large `max_depth` and we are ok as we will rely on the law of large numbers to shrink this large variance, low bias approach for each individual tree."
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"from sklearn.utils import resample\n",
"\n",
"ntrees = 500\n",
"estimators = []\n",
"R2s = []\n",
"yhats_test = np.zeros((Xtest.shape[0], ntrees))\n",
"\n",
"plt.plot(np.log(x),y,'.')\n",
"for i in range(ntrees):\n",
" simpletree = DecisionTreeRegressor(max_depth=3)\n",
" boot_xx, boot_y = resample(Xtrain[['logminority']], ytrain)\n",
" estimators = np.append(estimators,simpletree.fit(boot_xx, boot_y))\n",
" R2s = np.append(R2s,simpletree.score(Xtest[['logminority']], ytest))\n",
" yhats_test[:,i] = simpletree.predict(Xtest[['logminority']])\n",
" plt.plot(np.log(x), simpletree.predict(np.log(x).reshape(-1,1)), 'red', alpha=0.05)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(614, 500)"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"yhats_test.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
**Exercise 2**
\n",
"1. Edit the code below (which is just copied from above) to refit many bagged trees on the entire xtrain feature set (without the plot...lots of predictors now so difficult to plot). \n",
"2. Summarize how each of the separate trees performed (both numerically and visually) using $R^2$ as the metric. How do they perform on average?\n",
"3. Combine the trees into one prediction and evaluate it using $R^2$.\n",
"4. Briefly discuss the results. How will the results above change if 'max_depth=4' is increased? What if it is decreased?"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.metrics import r2_score\n",
"\n",
"\n",
"ntrees = 500\n",
"estimators = []\n",
"R2s = []\n",
"yhats_test = np.zeros((Xtest.shape[0], ntrees))\n",
"\n",
"for i in range(ntrees):\n",
" dtree = DecisionTreeRegressor(max_depth=3)\n",
" boot_xx, boot_y = resample(Xtrain[['logminority']], ytrain)\n",
" estimators = np.append(estimators,dtree.fit(boot_xx, boot_y))\n",
" R2s = np.append(R2s,dtree.score(Xtest[['logminority']], ytest))\n",
" yhats_test[:,i] = dtree.predict(Xtest[['logminority']])\n",
"\n",
"# your code here\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Your answer here"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Random Forests\n",
"\n",
"What's the basic idea?\n",
"\n",
"Bagging alone is not enough randomization, because even after bootstrapping, we are mainly training on the same data points using the same variablesn, and will retain much of the overfitting.\n",
"\n",
"So we will build each tree by splitting on \"random\" subset of predictors at each split (hence, each is a 'random tree'). This can't be done in with just one predcitor, but with more predictors we can choose what predictors to split on randomly and how many to do this on. Then we combine many 'random trees' together by averaging their predictions, and this gets us a forest of random trees: a **random forest**."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Below we create a hyper-param Grid. We are preparing to use the bootstrap points not used in training for validation.\n",
"\n",
"```\n",
"max_features : int, float, string or None, optional (default=”auto”)\n",
"- The number of features to consider when looking for the best split.\n",
"```\n",
"\n",
"- `max_features`: Default splits on all the features and is probably prone to overfitting. You'll want to validate on this. \n",
"- You can \"validate\" on the trees `n_estimators` as well but many a times you will just look for the plateau in the trees as seen below.\n",
"- From decision trees you get the `max_depth`, `min_samples_split`, and `min_samples_leaf` as well but you might as well leave those at defaults to get a maximally expanded tree."
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.ensemble import RandomForestRegressor"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"odict_values([[400, 600, 800], [0.2, 0.4, 0.6, 0.8]])"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# code from \n",
"# Adventures in scikit-learn's Random Forest by Gregory Saunders\n",
"from itertools import product\n",
"from collections import OrderedDict\n",
"param_dict = OrderedDict(\n",
" n_estimators = [400, 600, 800],\n",
" max_features = [0.2, 0.4, 0.6, 0.8]\n",
")\n",
"\n",
"param_dict.values()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Using the OOB score.\n",
"\n",
"We have been putting \"validate\" in quotes. This is because the bootstrap gives us left-over points! So we'll now engage in our very own version of a grid-search, done over the out-of-bag scores that `sklearn` gives us for free"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [],
"source": [
"from itertools import product"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(600, 0.6)"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#make sure ytrain is the correct data type...in case you have warnings\n",
"#print(yytrain.shape,ytrain.shape,Xtrain.shape)\n",
"#ytrain = np.ravel(ytrain)\n",
"\n",
"#Let's Cross-val. on the two 'hyperparameters' we based our grid on earlier\n",
"results = {}\n",
"estimators= {}\n",
"for ntrees, maxf in product(*param_dict.values()):\n",
" params = (ntrees, maxf)\n",
" est = RandomForestRegressor(oob_score=True, \n",
" n_estimators=ntrees, max_features=maxf, max_depth=50, n_jobs=-1)\n",
" est.fit(Xtrain, ytrain)\n",
" results[params] = est.oob_score_\n",
" estimators[params] = est\n",
"outparams = max(results, key = results.get)\n",
"outparams"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [],
"source": [
"rf1 = estimators[outparams]"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{(400, 0.2): 0.7539639690584528,\n",
" (400, 0.4): 0.7677805365253206,\n",
" (400, 0.6): 0.7699751622917039,\n",
" (400, 0.8): 0.7675383680731207,\n",
" (600, 0.2): 0.7547137231855866,\n",
" (600, 0.4): 0.7683114062482946,\n",
" (600, 0.6): 0.7707024796128402,\n",
" (600, 0.8): 0.7695227029080896,\n",
" (800, 0.2): 0.7543389426401441,\n",
" (800, 0.4): 0.7675397515655356,\n",
" (800, 0.6): 0.7704787398435397,\n",
" (800, 0.8): 0.7691255683564636}"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"results"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.8073817254966813"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rf1.score(Xtest, ytest)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Finally you can find the **feature importance** of each predictor in this random forest model. Whenever a feature is used in a tree in the forest, the algorithm will log the decrease in the splitting criterion (such as gini). This is accumulated over all trees and reported in `est.feature_importances_`"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"pd.Series(rf1.feature_importances_,index=list(Xtrain)).sort_values().plot(kind=\"barh\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Since our response isn't very symmetric, we may want to suppress outliers by using the `mean_absolute_error` instead. "
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"10.679048688925084"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.metrics import mean_absolute_error\n",
"mean_absolute_error(ytest, rf1.predict(Xtest))"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"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.5.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}