From cf691f303b0794c520bd5058caec7a9f935681e9 Mon Sep 17 00:00:00 2001 From: Sylvain Gugger Date: Thu, 23 Apr 2020 07:48:40 -0700 Subject: [PATCH] Treat TK --- 09_tabular.ipynb | 345 +++++++++++++++++++++++++-------------- clean/09_tabular.ipynb | 279 +++++++++++++++++++++---------- images/decision_tree.PNG | Bin 0 -> 65879 bytes 3 files changed, 408 insertions(+), 216 deletions(-) create mode 100644 images/decision_tree.PNG diff --git a/09_tabular.ipynb b/09_tabular.ipynb index e34984b..4352039 100644 --- a/09_tabular.ipynb +++ b/09_tabular.ipynb @@ -6,7 +6,15 @@ "metadata": { "hide_input": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warning: Your Kaggle API key is readable by other users on this system! To fix this, you can run 'chmod 600 /home/sgugger/.kaggle/kaggle.json'\n" + ] + } + ], "source": [ "#hide\n", "from utils import *\n", @@ -40,7 +48,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Tabular modelling takes data in the form of a table (like a spreadsheet or CSV--comma separated values). The objective is to predict the value in one column, based on the values in the other columns." + "Tabular modelling takes data in the form of a table (like a spreadsheet or CSV--comma separated values). The objective is to predict the value in one column, based on the values in the other columns. In this chapter we will not only look at deep learning but also more general machine learning techniques like random forests, as they can give better results depending on your problem.\n", + "\n", + "We will look at how we should preprocess and clean the data, how to interpret the result of our models after training, but first, we will see how we can feed columns that contain categories into a model that espects numbers by using embeddings." ] }, { @@ -93,7 +103,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "\"Entity" + "\"Entity" ] }, { @@ -111,7 +121,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "\"State" + "\"State" ] }, { @@ -127,7 +137,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "\"Store" + "\"Store" ] }, { @@ -141,7 +151,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "\"Date" + "\"Date" ] }, { @@ -314,7 +324,7 @@ { "data": { "text/plain": [ - "Path('/home/jhoward/.fastai/archive/bluebook')" + "Path('/home/sgugger/.fastai/archive/bluebook')" ] }, "execution_count": null, @@ -352,7 +362,7 @@ { "data": { "text/plain": [ - "(#7) [Path('TrainAndValid.csv'),Path('Machine_Appendix.csv'),Path('random_forest_benchmark_test.csv'),Path('Test.csv'),Path('median_benchmark.csv'),Path('ValidSolution.csv'),Path('Valid.csv')]" + "(#7) [Path('Valid.csv'),Path('Machine_Appendix.csv'),Path('ValidSolution.csv'),Path('TrainAndValid.csv'),Path('random_forest_benchmark_test.csv'),Path('Test.csv'),Path('median_benchmark.csv')]" ] }, "execution_count": null, @@ -539,10 +549,20 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Decision tree ensembles, as the name suggests, rely on decision trees. So let's start there! A decision tree asks a series of binary (that is, yes or no) questions about the data. After each question the data at that part of the tree is split between a \"yes\" and a \"no\" branch. After one or more questions, either a prediction can be made on the basis of all previous answers or another question is required.\n", - "\n", - "TK: Adding a figure here might be useful\n", - "\n", + "Decision tree ensembles, as the name suggests, rely on decision trees. So let's start there! A decision tree asks a series of binary (that is, yes or no) questions about the data. After each question the data at that part of the tree is split between a \"yes\" and a \"no\" branch as shown in <>. After one or more questions, either a prediction can be made on the basis of all previous answers or another question is required." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\"An" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "This sequence of questions is now a procedure for taking any data item, whether an item from the training set or a new one, and assigning that item to a group. Namely, after asking and answering the questions, we can say the item belongs to the group of all the other training data items which yielded the same set of answers to the questions. But what good is this? the goal of our model is to predict values for items, not to assign them into groups from the training dataset. The value of this is that we can now assign a prediction value for each of these groups--for regression, we take the target mean of the items in the group.\n", "\n", "Let's consider how we find the right questions to ask. Of course, we wouldn't want to have to create all these questions ourselves — that's what computers are for! The basic steps to train a decision tree can be written down very easily:\n", @@ -763,7 +783,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We can see that the data still is displayed as strings for categories..." + "We can see that the data still is displayed as strings for categories (we only show a few columns because the fulltable is too big to fit on a page)..." ] }, { @@ -828,20 +848,8 @@ " saleIs_quarter_start\n", " saleIs_year_end\n", " saleIs_year_start\n", - " SalesID_na\n", - " MachineID_na\n", - " ModelID_na\n", - " datasource_na\n", " auctioneerID_na\n", - " YearMade_na\n", " MachineHoursCurrentMeter_na\n", - " saleYear_na\n", - " saleMonth_na\n", - " saleWeek_na\n", - " saleDay_na\n", - " saleDayofweek_na\n", - " saleDayofyear_na\n", - " saleElapsed_na\n", " SalesID\n", " MachineID\n", " ModelID\n", @@ -914,32 +922,20 @@ " False\n", " False\n", " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " 1139246\n", - " 999089\n", - " 3157\n", - " 121\n", + " 1139246.0\n", + " 999089.0\n", + " 3157.0\n", + " 121.0\n", " 3.0\n", - " 2004\n", + " 2004.0\n", " 68.0\n", - " 2006\n", - " 11\n", - " 46\n", - " 16\n", - " 3\n", - " 320\n", - " 1163635200\n", + " 2006.0\n", + " 11.0\n", + " 46.0\n", + " 16.0\n", + " 3.0\n", + " 320.0\n", + " 1.163635e+09\n", " 11.097410\n", " \n", " \n", @@ -996,32 +992,20 @@ " False\n", " False\n", " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " 1139248\n", - " 117657\n", - " 77\n", - " 121\n", + " 1139248.0\n", + " 117657.0\n", + " 77.0\n", + " 121.0\n", " 3.0\n", - " 1996\n", + " 1996.0\n", " 4640.0\n", - " 2004\n", - " 3\n", - " 13\n", - " 26\n", - " 4\n", - " 86\n", - " 1080259200\n", + " 2004.0\n", + " 3.0\n", + " 13.0\n", + " 26.0\n", + " 4.0\n", + " 86.0\n", + " 1.080259e+09\n", " 10.950807\n", " \n", " \n", @@ -1078,32 +1062,20 @@ " False\n", " False\n", " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " 1139249\n", - " 434808\n", - " 7009\n", - " 121\n", + " 1139249.0\n", + " 434808.0\n", + " 7009.0\n", + " 121.0\n", " 3.0\n", - " 2001\n", + " 2001.0\n", " 2838.0\n", - " 2004\n", - " 2\n", - " 9\n", - " 26\n", - " 3\n", - " 57\n", - " 1077753600\n", + " 2004.0\n", + " 2.0\n", + " 9.0\n", + " 26.0\n", + " 3.0\n", + " 57.0\n", + " 1.077754e+09\n", " 9.210340\n", " \n", " \n", @@ -1118,14 +1090,69 @@ } ], "source": [ + "#hide_output\n", "to.show(3)" ] }, { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": null, "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stateProductGroupDrive_SystemEnclosureSalePrice
0AlabamaWL#na#EROPS w AC11.097410
1North CarolinaWL#na#EROPS w AC10.950807
2New YorkSSL#na#OROPS9.210340
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "TK too big to fit" + "#hide_input\n", + "to1 = TabularPandas(df, procs, ['state', 'ProductGroup', 'Drive_System', 'Enclosure'], [], y_names=dep_var, splits=splits)\n", + "to1.show(3)" ] }, { @@ -1234,9 +1261,85 @@ } ], "source": [ + "#hide_output\n", "to.items.head(3)" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stateProductGroupDrive_SystemEnclosure
01603
133603
232306
\n", + "
" + ], + "text/plain": [ + " state ProductGroup Drive_System Enclosure\n", + "0 1 6 0 3\n", + "1 33 6 0 3\n", + "2 32 3 0 6" + ] + }, + "execution_count": null, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#hide_input\n", + "to1.items[['state', 'ProductGroup', 'Drive_System', 'Enclosure']].head(3)" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -1502,13 +1605,6 @@ "Returning back to the top node after the first decision point, we can see that a second binary decision split has been made, based on asking whether `YearMade` is less than or equal to 1991.5. For the group where this is true (remember, this is now following two binary decisions, both `coupler_system`, and `YearMade`) the average value is 9.97, and there are 155,724 auction records in this group. For the group of auctions where this decision is false, the average value is 10.4, and there are 205,123 records. So again, we can see that the decision tree algorithm has successfully split our more expensive auction records into two more groups which differ in value significantly." ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**(TK AG: I think it would be useful here to have a figure which showed a circle or blob shape, which is carved by bisecting lines first into two groups, then into three, then four, as new bisections are introduced. This is a valuable intuition which we have not depicted.)**" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -8465,14 +8561,9 @@ "- Look for important predictors which don't make sense in practice\n", "- Look for partial dependence plot results which don't make sense in practice.\n", "\n", - "Thinking back to our bear detector, this mirrors the advice that we also provided there — it is often a good idea to build a model first, and then do your data cleaning, rather than vice versa. The model can help you identify potentially problematic data issues." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "TK Add transition" + "Thinking back to our bear detector, this mirrors the advice that we also provided there — it is often a good idea to build a model first, and then do your data cleaning, rather than vice versa. The model can help you identify potentially problematic data issues.\n", + "\n", + "It can also help you interpret which factors influences specific predictions, with tree interpreters." ] }, { @@ -8618,7 +8709,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "TK add a transition" + "Now that we covered some classic machine learning to solve this problem, let's see how deep learning can help!" ] }, { @@ -8632,7 +8723,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "TK add an introduction here before stacking header" + "A problem with random forests, like all machine learning or deep learning algorithms, is that they don't always generalize well to new data. Random forests can help us identify out-of-domain data, and we will see in which situations neural network generalize better, but first, let's look at the extrapolation problem that random forests have." ] }, { @@ -9469,14 +9560,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "TK add transition of make this an aside" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### fastai's Tabular classes" + "### Sidebar: fastai's Tabular classes" ] }, { @@ -9494,7 +9578,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Tk add transition" + "### End sidebar" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Another thing that can help with generalization is to use several models and average their predictions, a technique known as ensembling." ] }, { @@ -9602,14 +9693,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "TK add transition. Or maybe make this an aside?" + "A last technique that has gotten great results is to use embeddings learned by a neural net in a machine learning model." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## Combining embeddings with other methods" + "### Combining embeddings with other methods" ] }, { diff --git a/clean/09_tabular.ipynb b/clean/09_tabular.ipynb index 7825e04..b96b4e9 100644 --- a/clean/09_tabular.ipynb +++ b/clean/09_tabular.ipynb @@ -6,7 +6,15 @@ "metadata": { "hide_input": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warning: Your Kaggle API key is readable by other users on this system! To fix this, you can run 'chmod 600 /home/sgugger/.kaggle/kaggle.json'\n" + ] + } + ], "source": [ "#hide\n", "from utils import *\n", @@ -87,7 +95,7 @@ { "data": { "text/plain": [ - "Path('/home/jhoward/.fastai/archive/bluebook')" + "Path('/home/sgugger/.fastai/archive/bluebook')" ] }, "execution_count": null, @@ -118,7 +126,7 @@ { "data": { "text/plain": [ - "(#7) [Path('TrainAndValid.csv'),Path('Machine_Appendix.csv'),Path('random_forest_benchmark_test.csv'),Path('Test.csv'),Path('median_benchmark.csv'),Path('ValidSolution.csv'),Path('Valid.csv')]" + "(#7) [Path('Valid.csv'),Path('Machine_Appendix.csv'),Path('ValidSolution.csv'),Path('TrainAndValid.csv'),Path('random_forest_benchmark_test.csv'),Path('Test.csv'),Path('median_benchmark.csv')]" ] }, "execution_count": null, @@ -423,20 +431,8 @@ " saleIs_quarter_start\n", " saleIs_year_end\n", " saleIs_year_start\n", - " SalesID_na\n", - " MachineID_na\n", - " ModelID_na\n", - " datasource_na\n", " auctioneerID_na\n", - " YearMade_na\n", " MachineHoursCurrentMeter_na\n", - " saleYear_na\n", - " saleMonth_na\n", - " saleWeek_na\n", - " saleDay_na\n", - " saleDayofweek_na\n", - " saleDayofyear_na\n", - " saleElapsed_na\n", " SalesID\n", " MachineID\n", " ModelID\n", @@ -509,32 +505,20 @@ " False\n", " False\n", " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " 1139246\n", - " 999089\n", - " 3157\n", - " 121\n", + " 1139246.0\n", + " 999089.0\n", + " 3157.0\n", + " 121.0\n", " 3.0\n", - " 2004\n", + " 2004.0\n", " 68.0\n", - " 2006\n", - " 11\n", - " 46\n", - " 16\n", - " 3\n", - " 320\n", - " 1163635200\n", + " 2006.0\n", + " 11.0\n", + " 46.0\n", + " 16.0\n", + " 3.0\n", + " 320.0\n", + " 1.163635e+09\n", " 11.097410\n", " \n", " \n", @@ -591,32 +575,20 @@ " False\n", " False\n", " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " 1139248\n", - " 117657\n", - " 77\n", - " 121\n", + " 1139248.0\n", + " 117657.0\n", + " 77.0\n", + " 121.0\n", " 3.0\n", - " 1996\n", + " 1996.0\n", " 4640.0\n", - " 2004\n", - " 3\n", - " 13\n", - " 26\n", - " 4\n", - " 86\n", - " 1080259200\n", + " 2004.0\n", + " 3.0\n", + " 13.0\n", + " 26.0\n", + " 4.0\n", + " 86.0\n", + " 1.080259e+09\n", " 10.950807\n", " \n", " \n", @@ -673,32 +645,20 @@ " False\n", " False\n", " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " False\n", - " 1139249\n", - " 434808\n", - " 7009\n", - " 121\n", + " 1139249.0\n", + " 434808.0\n", + " 7009.0\n", + " 121.0\n", " 3.0\n", - " 2001\n", + " 2001.0\n", " 2838.0\n", - " 2004\n", - " 2\n", - " 9\n", - " 26\n", - " 3\n", - " 57\n", - " 1077753600\n", + " 2004.0\n", + " 2.0\n", + " 9.0\n", + " 26.0\n", + " 3.0\n", + " 57.0\n", + " 1.077754e+09\n", " 9.210340\n", " \n", " \n", @@ -716,6 +676,66 @@ "to.show(3)" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stateProductGroupDrive_SystemEnclosureSalePrice
0AlabamaWL#na#EROPS w AC11.097410
1North CarolinaWL#na#EROPS w AC10.950807
2New YorkSSL#na#OROPS9.210340
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "to1 = TabularPandas(df, procs, ['state', 'ProductGroup', 'Drive_System', 'Enclosure'], [], y_names=dep_var, splits=splits)\n", + "to1.show(3)" + ] + }, { "cell_type": "code", "execution_count": null, @@ -818,6 +838,80 @@ "to.items.head(3)" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stateProductGroupDrive_SystemEnclosure
01603
133603
232306
\n", + "
" + ], + "text/plain": [ + " state ProductGroup Drive_System Enclosure\n", + "0 1 6 0 3\n", + "1 33 6 0 3\n", + "2 32 3 0 6" + ] + }, + "execution_count": null, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "to1.items[['state', 'ProductGroup', 'Drive_System', 'Enclosure']].head(3)" + ] + }, { "cell_type": "code", "execution_count": null, @@ -8203,7 +8297,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### fastai's Tabular classes" + "### Sidebar: fastai's Tabular classes" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### End sidebar" ] }, { @@ -8254,7 +8355,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Combining embeddings with other methods" + "### Combining embeddings with other methods" ] }, { diff --git a/images/decision_tree.PNG b/images/decision_tree.PNG new file mode 100644 index 0000000000000000000000000000000000000000..5cef2c7d897c877b9178bd0f785e32e186aa91d5 GIT binary patch literal 65879 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 literal 0 HcmV?d00001