From 55ed4b3e2c60533e63cd2ddb2b3a3d5527195841 Mon Sep 17 00:00:00 2001 From: Kate Hodesdon Date: Thu, 13 Sep 2018 14:13:20 +0100 Subject: [PATCH 1/3] introducing GridSearchCV --- .../house-prices-random-forest.ipynb | 317 ++++++++++++++++++ 1 file changed, 317 insertions(+) create mode 100644 house-prices-py/house-prices-random-forest.ipynb diff --git a/house-prices-py/house-prices-random-forest.ipynb b/house-prices-py/house-prices-random-forest.ipynb new file mode 100644 index 0000000..abcae58 --- /dev/null +++ b/house-prices-py/house-prices-random-forest.ipynb @@ -0,0 +1,317 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "from sklearn.cross_validation import train_test_split\n", + "import matplotlib.pyplot as plt\n", + "%matplotlib inline\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We are using a housing price dataset sourced from Bay Area Home Sales Database and Zillow. This dataset was based on the homes sold between January 2013 and December 2015. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "inputs = [pd.read_csv('./agent1/bay_area_zillow_agent1.csv'), pd.read_csv('./agent2/bay_area_zillow_agent2.csv')]\n", + "df = pd.concat(f for f in inputs)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# randomise my dataframe rows to remove any ordering in the data\n", + "# TODO fix seed to preserve reproducibility\n", + "df = df.sample(frac=1).reset_index(drop=True)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df.describe(include = \"all\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# drop unneeded columns\n", + "df.drop(df.columns[[0, 1, 2, 3, 11, 13, 14, 15, 16, 17, 18]], axis=1, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df.describe(include = \"all\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# check none of our data is null or NaN\n", + "df.isnull().any()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df.dtypes\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df['bathrooms'] = df['bathrooms'].astype('int64', copy=False)\n", + "df['lastsolddate'] = pd.to_datetime(df['lastsolddate'])\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df.dtypes" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We hypothesise that `finishedsqft`, `bathrooms` and `bedrooms` are positively correlated with `lastsoldprice`. Let's plot these to see." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df.plot(x='finishedsqft', y='lastsoldprice', style='o')\n", + "df.plot(x='bathrooms', y='lastsoldprice', style='o')\n", + "df.plot(x='bedrooms', y='lastsoldprice', style='o')\n", + "df.plot(x='totalrooms', y='lastsoldprice', style='o')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's try a random forest model on those features to predict `lastsoldprice`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "X = df[['bathrooms', 'bedrooms', 'finishedsqft', 'totalrooms', 'longitude', 'latitude']]\n", + "Y = df['lastsoldprice']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "These are our features:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "X.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Split data into test and training set. Use random_state for reproducibility\n", + "X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.3, random_state=0)\n", + "\n", + "from sklearn.ensemble import RandomForestRegressor\n", + "from sklearn.model_selection import GridSearchCV\n", + "\n", + "param_grid = [\n", + " {'n_estimators': [3, 10, 12, 14], 'max_features': [1,2, 3, 4, 5, 6]},\n", + " {'bootstrap': [False]}\n", + "]\n", + "\n", + "rand_forest_regressor = RandomForestRegressor()\n", + "\n", + "# grid_search = GridSearchCV(rand_forest_regressor, param_grid, cv=5, scoring='neg_mean_squared_error')\n", + "\n", + "# grid_search.fit(X_train, y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "rand_forest_regressor.get_params().keys()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "grid_search = GridSearchCV(rand_forest_regressor, param_grid, cv=5, scoring='neg_mean_squared_error')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#rand_forest_regressor.fit(X_train, y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "grid_search.fit(X_train, y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "grid_search.best_params_" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "y_pred = grid_search.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#rand_forest_regressor.score(X_test, y_test)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "grid_search.score(X_test, y_test)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Linear Regression coefficient of determination (R squared): %.4f' % grid_search.score(X_test, y_test))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.metrics import mean_squared_error\n", + "lin_mse = mean_squared_error(y_pred, y_test)\n", + "lin_rmse = np.sqrt(lin_mse)\n", + "print('Linear Regression RMSE: %.4f' % lin_rmse)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "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.6.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 8bf2288e7e8751b840bcc4a2724b29a64f42bb86 Mon Sep 17 00:00:00 2001 From: Kate Hodesdon Date: Thu, 13 Sep 2018 15:27:25 +0100 Subject: [PATCH 2/3] trying out GridSearchCV --- .../house-prices-random-forest.ipynb | 928 +++++++++++++++++- 1 file changed, 887 insertions(+), 41 deletions(-) diff --git a/house-prices-py/house-prices-random-forest.ipynb b/house-prices-py/house-prices-random-forest.ipynb index abcae58..700f988 100644 --- a/house-prices-py/house-prices-random-forest.ipynb +++ b/house-prices-py/house-prices-random-forest.ipynb @@ -2,9 +2,18 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/kate/anaconda3/lib/python3.6/site-packages/sklearn/cross_validation.py:41: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.\n", + " \"This module will be removed in 0.20.\", DeprecationWarning)\n" + ] + } + ], "source": [ "import pandas as pd\n", "import numpy as np\n", @@ -22,7 +31,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -32,7 +41,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -43,25 +52,401 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, - "outputs": [], + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0addressinfoz_addressbathroomsbedroomsfinishedsqftlastsolddatelastsoldpricelatitudelongitudeneighborhoodtotalroomsusecodeyearbuiltzestimatezindexvaluezipcodezpid
count11330.00000011330113301133011330.00000011330.00000011330.000000113301.133000e+0411330.00000011330.0000001133011330.0000001133011330.0000001.133000e+041.133000e+0411330.0000001.133000e+04
uniqueNaN107301123210684NaNNaNNaN954NaNNaNNaN71NaN10NaNNaNNaNNaNNaN
topNaNAddress: 1300 Eddy StreetSan FranciscoSales price: 725000Sales date: 02...1300 Eddy StNaNNaNNaN08/30/2013NaNNaNNaNMissionNaNSingleFamilyNaNNaNNaNNaNNaN
freqNaN535NaNNaNNaN46NaNNaNNaN540NaN5803NaNNaNNaNNaNNaN
mean9171.729214NaNNaNNaN1.9802292.6144751585.420918NaN1.263928e+0637.759711-122.436518NaN6.111562NaN1948.4981471.565695e+061.320205e+0694116.9120043.689973e+07
std4921.941074NaNNaNNaN1.0473581.299457921.978245NaN1.042079e+060.0255780.030743NaN12.125819NaN37.9111961.229417e+065.848170e+059.4008777.800741e+07
min2.000000NaNNaNNaN0.5000000.0000001.000000NaN5.350000e+0237.708170-122.510726NaN1.000000NaN1860.0000004.323850e+056.881000e+0594102.0000001.506329e+07
25%5039.750000NaNNaNNaN1.0000002.0000001019.000000NaN7.292500e+0537.739286-122.455157NaN4.000000NaN1916.0000009.052375e+059.829000e+0594110.0000001.510847e+07
50%9198.500000NaNNaNNaN2.0000002.0000001362.000000NaN9.900000e+0537.760513-122.432510NaN5.000000NaN1940.0000001.230758e+061.211900e+0694115.0000001.515697e+07
75%13374.750000NaNNaNNaN2.0000003.0000001876.000000NaN1.450000e+0637.781386-122.413359NaN7.000000NaN1986.0000001.731170e+061.480400e+0694123.0000005.970040e+07
max17632.000000NaNNaNNaN14.00000020.00000027275.000000NaN2.388900e+0737.806083-122.381201NaN1264.000000NaN2016.0000001.553325e+075.333500e+0694158.0000002.146999e+09
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 address \\\n", + "count 11330.000000 11330 \n", + "unique NaN 10730 \n", + "top NaN Address: 1300 Eddy Street \n", + "freq NaN 5 \n", + "mean 9171.729214 NaN \n", + "std 4921.941074 NaN \n", + "min 2.000000 NaN \n", + "25% 5039.750000 NaN \n", + "50% 9198.500000 NaN \n", + "75% 13374.750000 NaN \n", + "max 17632.000000 NaN \n", + "\n", + " info z_address \\\n", + "count 11330 11330 \n", + "unique 11232 10684 \n", + "top San FranciscoSales price: 725000Sales date: 02... 1300 Eddy St \n", + "freq 3 5 \n", + "mean NaN NaN \n", + "std NaN NaN \n", + "min NaN NaN \n", + "25% NaN NaN \n", + "50% NaN NaN \n", + "75% NaN NaN \n", + "max NaN NaN \n", + "\n", + " bathrooms bedrooms finishedsqft lastsolddate lastsoldprice \\\n", + "count 11330.000000 11330.000000 11330.000000 11330 1.133000e+04 \n", + "unique NaN NaN NaN 954 NaN \n", + "top NaN NaN NaN 08/30/2013 NaN \n", + "freq NaN NaN NaN 46 NaN \n", + "mean 1.980229 2.614475 1585.420918 NaN 1.263928e+06 \n", + "std 1.047358 1.299457 921.978245 NaN 1.042079e+06 \n", + "min 0.500000 0.000000 1.000000 NaN 5.350000e+02 \n", + "25% 1.000000 2.000000 1019.000000 NaN 7.292500e+05 \n", + "50% 2.000000 2.000000 1362.000000 NaN 9.900000e+05 \n", + "75% 2.000000 3.000000 1876.000000 NaN 1.450000e+06 \n", + "max 14.000000 20.000000 27275.000000 NaN 2.388900e+07 \n", + "\n", + " latitude longitude neighborhood totalrooms usecode \\\n", + "count 11330.000000 11330.000000 11330 11330.000000 11330 \n", + "unique NaN NaN 71 NaN 10 \n", + "top NaN NaN Mission NaN SingleFamily \n", + "freq NaN NaN 540 NaN 5803 \n", + "mean 37.759711 -122.436518 NaN 6.111562 NaN \n", + "std 0.025578 0.030743 NaN 12.125819 NaN \n", + "min 37.708170 -122.510726 NaN 1.000000 NaN \n", + "25% 37.739286 -122.455157 NaN 4.000000 NaN \n", + "50% 37.760513 -122.432510 NaN 5.000000 NaN \n", + "75% 37.781386 -122.413359 NaN 7.000000 NaN \n", + "max 37.806083 -122.381201 NaN 1264.000000 NaN \n", + "\n", + " yearbuilt zestimate zindexvalue zipcode zpid \n", + "count 11330.000000 1.133000e+04 1.133000e+04 11330.000000 1.133000e+04 \n", + "unique NaN NaN NaN NaN NaN \n", + "top NaN NaN NaN NaN NaN \n", + "freq NaN NaN NaN NaN NaN \n", + "mean 1948.498147 1.565695e+06 1.320205e+06 94116.912004 3.689973e+07 \n", + "std 37.911196 1.229417e+06 5.848170e+05 9.400877 7.800741e+07 \n", + "min 1860.000000 4.323850e+05 6.881000e+05 94102.000000 1.506329e+07 \n", + "25% 1916.000000 9.052375e+05 9.829000e+05 94110.000000 1.510847e+07 \n", + "50% 1940.000000 1.230758e+06 1.211900e+06 94115.000000 1.515697e+07 \n", + "75% 1986.000000 1.731170e+06 1.480400e+06 94123.000000 5.970040e+07 \n", + "max 2016.000000 1.553325e+07 5.333500e+06 94158.000000 2.146999e+09 " + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "df.describe(include = \"all\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['Unnamed: 0', 'address', 'info', 'z_address', 'bathrooms', 'bedrooms',\n", + " 'finishedsqft', 'lastsolddate', 'lastsoldprice', 'latitude',\n", + " 'longitude', 'neighborhood', 'totalrooms', 'usecode', 'yearbuilt',\n", + " 'zestimate', 'zindexvalue', 'zipcode', 'zpid'],\n", + " dtype='object')" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "df.columns" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -71,18 +456,227 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, - "outputs": [], + "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", + " \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", + " \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", + " \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", + "
bathroomsbedroomsfinishedsqftlastsolddatelastsoldpricelatitudelongitudetotalrooms
count11330.00000011330.00000011330.000000113301.133000e+0411330.00000011330.00000011330.000000
uniqueNaNNaNNaN954NaNNaNNaNNaN
topNaNNaNNaN08/30/2013NaNNaNNaNNaN
freqNaNNaNNaN46NaNNaNNaNNaN
mean1.9802292.6144751585.420918NaN1.263928e+0637.759711-122.4365186.111562
std1.0473581.299457921.978245NaN1.042079e+060.0255780.03074312.125819
min0.5000000.0000001.000000NaN5.350000e+0237.708170-122.5107261.000000
25%1.0000002.0000001019.000000NaN7.292500e+0537.739286-122.4551574.000000
50%2.0000002.0000001362.000000NaN9.900000e+0537.760513-122.4325105.000000
75%2.0000003.0000001876.000000NaN1.450000e+0637.781386-122.4133597.000000
max14.00000020.00000027275.000000NaN2.388900e+0737.806083-122.3812011264.000000
\n", + "
" + ], + "text/plain": [ + " bathrooms bedrooms finishedsqft lastsolddate lastsoldprice \\\n", + "count 11330.000000 11330.000000 11330.000000 11330 1.133000e+04 \n", + "unique NaN NaN NaN 954 NaN \n", + "top NaN NaN NaN 08/30/2013 NaN \n", + "freq NaN NaN NaN 46 NaN \n", + "mean 1.980229 2.614475 1585.420918 NaN 1.263928e+06 \n", + "std 1.047358 1.299457 921.978245 NaN 1.042079e+06 \n", + "min 0.500000 0.000000 1.000000 NaN 5.350000e+02 \n", + "25% 1.000000 2.000000 1019.000000 NaN 7.292500e+05 \n", + "50% 2.000000 2.000000 1362.000000 NaN 9.900000e+05 \n", + "75% 2.000000 3.000000 1876.000000 NaN 1.450000e+06 \n", + "max 14.000000 20.000000 27275.000000 NaN 2.388900e+07 \n", + "\n", + " latitude longitude totalrooms \n", + "count 11330.000000 11330.000000 11330.000000 \n", + "unique NaN NaN NaN \n", + "top NaN NaN NaN \n", + "freq NaN NaN NaN \n", + "mean 37.759711 -122.436518 6.111562 \n", + "std 0.025578 0.030743 12.125819 \n", + "min 37.708170 -122.510726 1.000000 \n", + "25% 37.739286 -122.455157 4.000000 \n", + "50% 37.760513 -122.432510 5.000000 \n", + "75% 37.781386 -122.413359 7.000000 \n", + "max 37.806083 -122.381201 1264.000000 " + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "df.describe(include = \"all\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "bathrooms False\n", + "bedrooms False\n", + "finishedsqft False\n", + "lastsolddate False\n", + "lastsoldprice False\n", + "latitude False\n", + "longitude False\n", + "totalrooms False\n", + "dtype: bool" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# check none of our data is null or NaN\n", "df.isnull().any()" @@ -90,16 +684,35 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "bathrooms float64\n", + "bedrooms int64\n", + "finishedsqft int64\n", + "lastsolddate object\n", + "lastsoldprice int64\n", + "latitude float64\n", + "longitude float64\n", + "totalrooms int64\n", + "dtype: object" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "df.dtypes\n" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -109,9 +722,28 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "bathrooms int64\n", + "bedrooms int64\n", + "finishedsqft int64\n", + "lastsolddate datetime64[ns]\n", + "lastsoldprice int64\n", + "latitude float64\n", + "longitude float64\n", + "totalrooms int64\n", + "dtype: object" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "df.dtypes" ] @@ -125,9 +757,60 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAERCAYAAACAbee5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3XuUVNWZ9/Hv01hK44XGQBJpJaAhkCgC2lEiOhGyIipGSYyjRuNlkrjiJJkxb+QNZByDie9o4ho1F0cXvjETlTFEQ1pnvE3ygktHA4ZLIxq8oQmhMRHFJgKNNs3z/lGnmurqc6pOVVfX5fTvs1Yvqk+dqtqnq3lq997Pfra5OyIikiwN1W6AiIiUn4K7iEgCKbiLiCSQgruISAIpuIuIJJCCu4hIAlU1uJvZHWb2upk9G+Pcm8ysLfh60cw6KtFGEZF6ZNXMczezvwG2A3e6+1FFPO5rwFR3/7sBa5yISB2ras/d3R8HtmYfM7MjzOwRM1tlZk+Y2cSQh54P3FORRoqI1KF9qt2AEAuBL7v7S2Z2PPBvwMzMnWb2AWAcsLRK7RMRqXk1FdzN7ADgBOBeM8sc3i/ntPOA+9y9u5JtExGpJzUV3EkPE3W4+5Q855wHfKVC7RERqUs1lQrp7n8FXjWzcwAsbXLmfjObAIwAflulJoqI1IVqp0LeQzpQTzCzTWb2BeAC4AtmthZ4Djgr6yHnAz93lbIUEcmrYCqkmR0G3Am8H9gDLHT3H+ScczJwP/BqcGiJu3+n7K0VEZFY4oy57wa+4e6rzexAYJWZ/drdf59z3hPufkb5mygiIsUqGNzd/TXgteD222a2HmgGcoN7UUaOHOljx47tz1OIiAw6q1atesPdRxU6r6hsGTMbC0wFVoTc/bFgnHwzcKW7Pxfy+MuAywDGjBnDypUri3l5EZFBz8z+GOe82BOqQQ76L4ErgqyWbKuBD7j7ZOBHQGvYc7j7QndvcfeWUaMKfvCIiEiJYgV3M0uRDuyL3H1J7v3u/ld33x7cfghImdnIsrZURERiKxjcLb1U9CfAene/MeKc9wfnYWbHBc/7ZjkbKiIi8cUZc58OfB5YZ2ZtwbFvAWMA3P024LPA5Wa2G+gEzlMuukh96urqYtOmTezatavaTRnUhg4dyqGHHkoqlSrp8XGyZf4HsALn/Bj4cUktEJGasmnTJg488EDGjh1LVo0nqSB3580332TTpk2MGzeupOeotdoyMki0rmnnhkdfYHNHJ6ObGpk7awJzpjZXu1kC7Nq1S4G9ysyM97znPWzZsqXk51Bwl4prXdPO/CXr6OxKF/Zs7+hk/pJ1AArwNUKBvfr6+x7UVOEwGRxuePSFnsCe0dnVzQ2PvlClFokkj4K7VNzmjs6ijsvgc8ABB5T0uJtvvpmdO3eW9NhLLrmE++67r8/xxx57jDPOKL6yygknnFBSO8pFwV0qbnRTY1HHpba1rmln+vVLGTfvQaZfv5TWNe1Va0t/gnu5dHen/yp96qmnqtoOBXepuLmzJtCYGtLrWGNqCHNnTahSi6RUmfmT9o5OnL3zJ+UK8Nu3b+cTn/gExxxzDJMmTeL+++8HYMeOHcyePZvJkydz1FFHsXjxYn74wx+yefNmZsyYwYwZM+ju7uaSSy7hqKOOYtKkSdx0000AtLW1MW3aNI4++mg+/elP89Zbb/V53UceeYSJEydy4oknsmTJ3nWbCxYs4POf/zwzZ85k/Pjx3H777UC6dz9jxgw+97nPMWnSJKD3Xx/f//73mTRpEpMnT2bevHkAbNiwgVNPPZVjjz2Wk046ieeff74sP7MMTahKxWUmTZUtU//yzZ+U4/0cOnQov/rVrzjooIN44403mDZtGmeeeSaPPPIIo0eP5sEHHwRg27ZtDB8+nBtvvJFly5YxcuRIVq1aRXt7O88++ywAHR0dAFx00UX86Ec/4uMf/zhXX30111xzDTfffHPPa+7atYsvfelLLF26lA9+8IOce+65vdr0zDPPsHz5cnbs2MHUqVOZPXs2AE8//TTPPvtsn9TFhx9+mNbWVlasWMGwYcPYunUrAJdddhm33XYb48ePZ8WKFfz93/89S5eWb2toBXepijlTmxXME2Cg50/cnW9961s8/vjjNDQ00N7ezl/+8hcmTZrElVdeyTe/+U3OOOMMTjrppD6PPfzww3nllVf42te+xuzZsznllFPYtm0bHR0dfPzjHwfg4osv5pxzzun1uOeff55x48Yxfvx4AC688EIWLlzYc/9ZZ51FY2MjjY2NzJgxg6effpqmpiaOO+640Jz03/zmN1x66aUMGzYMgIMPPpjt27fz1FNP9Xrtd955p/8/sCwalhGRkg30/MmiRYvYsmULq1atoq2tjfe9733s2rWLD33oQ6xatYpJkyYxf/58vvOdvnsDjRgxgrVr13LyySdzyy238MUvfjH26+ZLQ8y9L/P9/vvvH3q+u/d5zJ49e2hqaqKtra3na/369bHbF4eCu4iUbKDnT7Zt28Z73/teUqkUy5Yt449/TFe73bx5M8OGDePCCy/kyiuvZPXq1QAceOCBvP322wC88cYb7Nmzh7PPPpvvfve7rF69muHDhzNixAieeOIJAO66666eXnzGxIkTefXVV9mwYQMA99xzT6/777//fnbt2sWbb77JY489xkc/+tG813DKKadwxx139Ez0bt26lYMOOohx48Zx7733AukPgLVr1/bnR9WHhmVEpGQDPX9ywQUX8KlPfYqWlhamTJnCxIkTAVi3bh1z586loaGBVCrFrbfeCqTHsU877TQOOeQQbr75Zi699FL27NkDwHXXXQfAz372M7785S+zc+dODj/8cH7605/2es2hQ4eycOFCZs+ezciRIznxxBN7xu0BjjvuOGbPns3GjRv553/+Z0aPHs2LL74YeQ2nnnoqbW1ttLS0sO+++3L66afzL//yLyxatIjLL7+ca6+9lq6uLs477zwmT55clp8bxNhDdaC0tLS4NusQqT3r16/nwx/+cLWbUZMWLFjAAQccwJVXXlmR1wt7L8xslbu3FHqshmVERBJIwzIiIjEtWLCg2k2ITT13EelD2zFUX3/fAwV3Eell6NChvPnmmwrwVZSp5z506NCSn0PDMiLSy6GHHsqmTZv6VUtc+i+zE1OpFNxFpJdUKlXy7j9SOzQsIyKSQAruIiIJpOAuIpJACu4iIgmk4C4ikkAK7iIiCaTgLiKSQAruIiIJpOAuIpJACu4iIgmk4C4ikkAK7iIiCaTgLiKSQAruIiIJVDC4m9lhZrbMzNab2XNm9o8h55iZ/dDMXjazZ8zsmIFproiIxBGnnvtu4BvuvtrMDgRWmdmv3f33WeecBowPvo4Hbg3+FRGRKijYc3f319x9dXD7bWA90Jxz2lnAnZ62HGgys0PK3loREYmlqDF3MxsLTAVW5NzVDPwp6/tN9P0AwMwuM7OVZrZSW3iJiAyc2MHdzA4Afglc4e5/zb075CF9dtd194Xu3uLuLaNGjSqupSIiElus4G5mKdKBfZG7Lwk5ZRNwWNb3hwKb+988EREpRZxsGQN+Aqx39xsjTnsAuCjImpkGbHP318rYThERKUKcbJnpwOeBdWbWFhz7FjAGwN1vAx4CTgdeBnYCl5a/qSIiElfB4O7u/0P4mHr2OQ58pVyNEhGR/tEKVRGRBFJwFxFJIAV3EZEEUnAXEUkgBXcRkQRScBcRSSAFdxGRBFJwFxFJoDgrVEX6aF3Tzg2PvsDmjk5GNzUyd9YE5kztUwhURKpEwV2K1rqmnflL1tHZ1Q1Ae0cn85esA1CAF6kRGpaRot3w6As9gT2js6ubGx59oUotEpFcCu5StM0dnUUdF5HKU3CXoo1uaizquIhUnoK7FG3urAk0pob0OtaYGsLcWROq1CIRyaUJVSlaZtJU2TIitUvBPcEGMl1xztRmBXORGqbgnlBKVxQZ3DTmnlBKVxQZ3NRzT6j+pCtq9alI/VPPPaFKTVfMDOe0d3Ti7B3OaV3TPgCtFJGBouCeUKWmK2o4RyQZNCyTUKWmK2r1qUgyKLgnWCnpiqObGmkPCeRafSpSXzQsI71o9alIMqjnLr1o9alIMii4Sx9afSpS/zQsIyKSQAruIiIJpOAuIpJACu4iIgmk4C4ikkAK7iIiCaTgLiKSQAWDu5ndYWavm9mzEfefbGbbzKwt+Lq6/M0UEZFixFnE9O/Aj4E785zzhLufUZYWiYhIvxXsubv748DWCrRFRETKpFxj7h8zs7Vm9rCZHRl1kpldZmYrzWzlli1byvTSIiKSqxzBfTXwAXefDPwIaI060d0XunuLu7eMGjWqDC8tIiJh+h3c3f2v7r49uP0QkDKzkf1umYiIlKzfwd3M3m9mFtw+LnjON/v7vCIiUrqC2TJmdg9wMjDSzDYB3wZSAO5+G/BZ4HIz2w10Aue5uw9Yi0VEpKCCwd3dzy9w/49Jp0pKP7SuadcGGSJSNtqsowa0rmln/pJ1dHZ1A9De0cn8JesAFOBFpCQqP1ADbnj0hZ7AntHZ1c0Nj75QpRaJSL1TcK8Bmzs6izouIlKIgnsNGN3UWNRxEZFCFNxrwNxZE2hMDel1rDE1hLmzJlSpRSJS7zShWgMyk6bKlhGRclFwrxFzpjYrmItI2Si4S1koT1+ktii4S78pT1+k9mhCVfpNefoitUfBXfpNefoitUfDMlKUsLH10U2NtIcEcuXpi1SPeu4SW2Zsvb2jE2fv2PqMiaOUpy9SYxTcJbaosfVlz2/hus9MormpEQOamxq57jOTNJkqUkUalpHY8o2tK09fpLao5y6xqQaOSP1Qz72GlLIQqJKLh+bOmtArnx00ti5SqxTca0QpC4EqvXhINXBE6oeCe43ItxAoKniW8pj+0ti6SH3QmHuNKGUhkBYPiUgUBfca0LqmnQaz0PvyTVZqglNEoii4V1lm3Lzbvc99hSYrtcmHiETRmHuVhY2bAwwxK7gQSBOcIhJFwb3KosbH97jHCtKa4BSRMAruZRSWcw75e9blLrqlTTNEBBTcyyYs53zufWvBoWuP9xzLzUMv58IgbZohIhmaUC2TsLHzrm7vCewZuZtYzJnaXLaiW9o0Q0Qy1HMvk2Jyy3PPLde4ufLeRSRDPfcyKWaMfKDy0JX3LiIZCu5lEpZznhpipBp6L04ayDx05b2LSIaGZcokKuc87NhA1n2p5OuJSO0yD1kZWQktLS2+cuXKqrx2kij1UWRwMbNV7t5S6LyCPXczuwM4A3jd3Y8Kud+AHwCnAzuBS9x9dfFNloy4Abt1TTtz71tLV/feVMu5960FlPooMtjFGXP/d+DUPPefBowPvi4Dbu1/swavqE2oW9e09zpn+vVLuWJxW09gz+jqdq75z+cq3GoRqTUFg7u7Pw5szXPKWcCdnrYcaDKzQ8rVwMGmUK56dvCP8tbOrgFto4jUvnJMqDYDf8r6flNw7LXcE83sMtK9e8aMGVOGl65vYcMvhXLVowqN1QPND4hUTjmCe1gh8tBZWndfCCyE9IRqGV67KsoRpKJKBTQNS4X2vDO56nEWJDU1popqS742lmtPV5VGEKmscgT3TcBhWd8fCmwuw/PWpHIFqajhl/32aaAxNSSy1kxUobGMVIOx4MwjY7cjSrn3dK3GloAig1k5FjE9AFxkadOAbe7eZ0gmKcpVvyWqB76tsytvrZm5syaE/qkE6RrwN5wzuSzBspTrzPcYlUYQqaw4qZD3ACcDI81sE/BtIAXg7rcBD5FOg3yZdCrkpQPV2FpQriCVr9Rvvlozc6Y2c8XittD74taAj6Pce7qWu7SxiOQXJ1vmfHc/xN1T7n6ou//E3W8LAjtBlsxX3P0Id5/k7olemVSu+i39KRXQXIEaMk3DwsftS93TVaURRCpLtWWKVK4g1Z9SvzMmjirqeLFa17SzfdfuPsdTQ6zoPV0Bdr6bfq5ylTYWkcJUW6ZI5azfUmqp32XPbynqeLFuePSFPnXoAfbfd5/IlbKZn8fwxhSGs7NrT8/9b+3sYv6SdVz3mUk8OW9mWdooIvkpuJeg1KCcL7WwmLTDgZ6czDfZmys3Q6ajsyt0wleZMSKVpeBeIfnSBIG89+UG/XJNTkZ9oBTz/GEZMlELGJQZI1I5Cu4x9XfhUqHUwrD7rvnP59jVtadX0L9icRv77zuEVIP1Gjopdtw/34fNjImjuHv5xj6PCRvTLyZgKzNGpHIU3GMox8KlUoZSomrE7Hi3m9QQo6kxxbbOrgH5sAkTNqYf1cs3evfglRkjUlnKlomhHAuX8qUJltKj7ep29t9vH169fjZPzptZ9Fh2vg+bYj6IorKHLpg2RpkxIlWknnsM/ZnAzAzntHd05u3NZv9lkLlvv30a6AiZxCzm9aMUGlePO+au3Z9EapOCewzDG1OhQXZ4SIGu7LH5pmEptu/a3TM2nh3YmxpTLDjzyF5BMGyLvrn3rg1NS4T+jWHPnTUh9AMl34dN1LBKqdlDIjJwEh3cy1Vi1iKKueQezx2bz1dX/Z3de/PA81VSjCok098x7Dg9bvXGRepXYvdQzQ20kA6IpYz9jpv3YGh6nwGvXj+75/vp1y/NW7ExSthwzXWfmdQznJNriBn/+rflKRBWKtVmF6mOuHuoJnZCtVzVGyF+PZlSx8BzPzgKVVIsZ4GwUsTZClBEqiuxwzKFJkGval3HPSv+RLc7Q8w4//jDuHbOpD7Hpx0+gh3v9K2zEjYsUqjWerHtj3o+J/1XQjG95XL2tFWbXaT2Jbbnnq+3fVXrOu5evpHuYEiq2527l2/kkzc+1uf4kxu29plMHTEsFTq8E1U4q9T253u+YnrL5e5pqza7SO1LbHDPV73xnhV/Cn3MS6/viPXcwyIKaM2Z2szZxzZHbqYRV6rBenrWmUqKYeIOM5VziArKV/ZYRAZOYoN7VEldoKdnXqrNHZ20rmln+vVLGTfvQaZfv7SnF7zs+S2RtVXiOmDo3g+POVObeXLezMgPjDi95XL3tFWbXaT2JXbMHfrmX7euaWfuvWv7/bzDG1Oh5QhW/nFrWcbcOyI2yA577rBc+2yta9ppMAv9QCu1p62FSyK1L9HBPdeCB56LXBAEMP69+xccmmlMDcEsvNDXopBiW6UIC7pzZ00IXdC0493dtK5pj6yzPn/JutDAXo48eQVzkdqV2GGZbFe1ruOI+Q/lXcrfmGrgKzPGc+G0MQyJWLVkwNnHNof2rCG61K3l/JtPVNCdM7WZA4b2/Szu6na+8Yu1oZOjYWPtkM6TV60XkWRLfHDPzYyJ0tm1h/lL1tHygYPZcN3poZOYTnpMvdjhjBOOOJg/XD+bm86dkve8YamGvEE36kOl2z00+yVqiKi7ynnyIjLwEh/cozJjwmRnkOSbhAybUMzXK39yw1Y+eeNjBbNTdnbt4YrFbVzVuq7PfZmx8zhtz4j8C6SIdJ6oiWMRqW2JD+7FZsZkgnq+dL+wTJwLpo3J+7wvvb4j9mTr3cs3cuTVj/QE0nxj52Ftz4g6352q5MeLSOUkfkJ1SESmSJRMUC9UNTFsQjFs96JS7Xi3u2dDkKix81y5H0hNEdUsM89ZaGhGK1FF6lfig/v5xx8WGnSnH3Ewqzduyxu8IX+6X+6S/nIrVGMmW+5EbOuadna827dsQkY18uNFpHISH9yvnZNeuJSpF2PAsH2H8NSGrTQNS7HfPg2RW9Vl984zgfzri9sY3dTIjImj+OWq9l657rnVHcshX40ZC14wqlxvV3d0a+J8GJVrI24RqbzEj7lDOsBvuO50bj53CkNTQ9jxbjdOut76O7v3cNO5U/JuVRc29rxo+cY+QxZOvHTHYmQCd6qh7zPv02CRbc/Xu46b466VqCL1a1AE94xSa6yEPS6qT+wQWQsmWzE57/ly3KPaHtW7LibHPaqEg8bbRWpf4odlssfFowJyoTHkYseY42TFxBm+yQ6kUTnuUW2LmhAuNjhrJapIfUp0cA/bjSnM8MYUU7/z3z3b4uXub1rOOu1xXThtTK+gGtWGBjPGzXuwz7h7oQlh7aQkkmyJ3WYP4m17l2ow9gDdITVnLgxy1/9jxUbylKQZEI2pBnZ17emZvH3wmdfy7smafky8nnk5tyAUkcoa9NvsQbzhlN3uoYEd0nnrdy+vfGCHdDmEzOTt3cs3Fgzs6cdUp767iNSeRAf3qEnF7MnMKv3hMmCUvy4iEDO4m9mpZvaCmb1sZvNC7r/EzLaYWVvw9cXyN7V4UTVgEhbPe4mbv17qY0WkPhScUDWzIcAtwCeBTcDvzOwBd/99zqmL3f2rA9DGkoVNKlZ6YrTS2js6GTvvQQy4YNqYnkVc2cJqw2e29is3TdyKVEecbJnjgJfd/RUAM/s5cBaQG9xrUm4qX5xJ1iRw9ta6CQvwfRLty736ir4Tt5nCY4ACvMgAizMs0wxk183dFBzLdbaZPWNm95nZYWVpXZHilKeNWnV54bQxjBiWf8u6ehRW8jisNEG+BVGl0sStSPXECe5hfbrcYev/BMa6+9HAb4CfhT6R2WVmttLMVm7ZsqW4lhYQViLgisVtTLnmv3sF+dxVl02NKYamGli0fCPD9t2H6UccXNZ2VVtYRcxKTahq4lakeuIE901Adk/8UGBz9gnu/qa7vxN8eztwbNgTuftCd29x95ZRo0aV0t5IUWVxOzq7mHvv2j4B/sl5M7np3Cm8s3sPb+3s6vlAeHLD1rK2q9rCNuyo1ISqJm5FqidOcP8dMN7MxpnZvsB5wAPZJ5jZIVnfngmsL18T48nXG+za4yx44Lk+x+PWSa+UYnZIiuv84/uOkFWqIJgKj4lUT8Hg7u67ga8Cj5IO2r9w9+fM7DtmdmZw2j+Y2XNmthb4B+CSgWpwlEK9wY7Orj5j8LU2PFDunPsLI7JlKlUQTIXHRKonMeUH4tSRyU0PTELmzM3nTlEpAZFBZNCVH8j0EkPKnvdwYNHyjT09+BkTyzvuX4qmxtIzdBpTDUX1jrXZtcjgkZjgDukAf+PfTiE1JDrCO/D1xW1ccPtvy7rnaal2vFO4ZkyU3Xuc1jXtzJnazIyJo2gwo72jk2/8Yi1Xta7rda42uxYZXBIV3CEd4I8bOyLvOQ41kxXTtacfjw1y069qXcfdyzf2pD12u3P38o29ArxyzkUGl8QF96ta19VM4K6EzR2doQuVoPcCJuWciwwuiQvuUYEuqUY3NYYuVILeC5iUcy4yuCRuJ6aoQJdEmZzxKxa3RZ4z/fqlbO7opGlYilSD9SoWFpZzrkJfIsmQuJ570mWmiuPmjGcmUN/a2QWWzs6JyqrRpKtIciSu555k+cr4xtHV7ey/3z60ffuU0PvzTbqq9y5SX9RzryMOLHu+b8G1YqpZ5ptA1aSrSHIouNeZsED77U8dmTe3P1u+CVRNuookR+KCe2MqcZfUi0Of1aVzpjZzw2cn91qleuG0MUUX7VKhL5HkSMyYeybLo7M/q4LqRNiORiv/uJU/b9uFA3/etguA6z4zqU/mC+zNoMnNhgnbllDZMiL1KRGFw+IUDUui5qZGnpw3s2eFaq7cqpBhPycVGROpL4OqcFit1WWvlMz4e5wVqqASBCKDSSKC+2DN5shMdMZZoQrKhhEZTBIR3AdjNkf2RGfYVnphx5UNIzJ4JCK4h2V5JFGmVn3u6tKwrfTCjisbRmTwqKvgHrXZxJypzZx9bPInBPf43mCcPQF67ZxJXDhtTE9PfYhZ6BZ7uRt7NDWmGJpq4OuL27R5h0jC1E0qZG6mR2464H+tfa2azauY3HIAxRb6mjO1mTlTmwv+PEWkvtVNz71QpkdHZ+k7GtWbzL6vYYW+vr64jbExttFT5oxIstVNcFemx15G9qKt3gE6kx9TqKJj1M+tvaNTQzQiCVA3wT1fpkfrmnbiVVZJhsw+sO0FPtjy9cTzZcio1K9I/aub4D5j4qjQ48P2TU8IDp4tOtLiXm9UD71QhpGGaETqW91MqIaVugV46fUdFW5JfYnqoWfXkYn6C2AwDnmJJEXd9NwLDUFIX4Vy2OdMbebJeTNp1uImkcSpm+AuhWXK/UZtoxdFi5tEkqduhmWksFK34FOpX5HkUXBPgP7urQp7FzeJSDIouCfA6KbGfgV2EamMYleU94eCewIoq0Wk9lW65IcmVBNAWS0ita/SJT8U3OucslpE6kOlS6jUTXBPenmB5qZG/nD97Mic8zAjhqW0/6lInaj0ZjmxgruZnWpmL5jZy2Y2L+T+/cxscXD/CjMbW+6GXjBtTLmfsqZkPr2L2Xhk2L77KLCL1IlKrycpGNzNbAhwC3Aa8BHgfDP7SM5pXwDecvcPAjcB3yt3Q3M3pKhXUa3PfHrnbqiRryeviVSR+hH2f3sg//I2j9hcuecEs48BC9x9VvD9fAB3vy7rnEeDc35rZvsAfwZGeZ4nb2lp8ZUrV5bU6AlXPcw7u/eU9NhKyOSd37PiT3S7M8SM848/jGvnTOozYw7pT+98b/L065eGll9obmrkyXkzB+oyRKQGmdkqd28pdF6cVMhm4E9Z328Cjo86x913m9k24D3AGzmNugy4DGDMmNKHWb539tH8r1+0sadGS0Fm8s7Dcs9LWQ06d9aE0A8ETaSKSJQ4wT1sJCE3rMY5B3dfCCyEdM89xmuHilPRsFriBN1iV4OqPICIFCtOcN8EHJb1/aHA5ohzNgXDMsOBrWVpYYTsAHlV6zruXr5xIF+OBmD4sBQdO7toGpZi+67ddOX86TBiWIpvf+rIAQm6Kg8gIsWIE9x/B4w3s3FAO3Ae8Lmccx4ALgZ+C3wWWJpvvL3cMsMfmTHufFINMHbk/r3qwI9/7/5sefvdnn1YRwxLMfvoQ1j2/JbInnIllxGLiBSr4IQqgJmdDtwMDAHucPf/Y2bfAVa6+wNmNhS4C5hKusd+nru/ku85+zOhKiIyWJVzQhV3fwh4KOfY1Vm3dwHnFNtIEREZGHWzQlVEROJTcBcRSSAFdxGRBFJwFxFJoFjZMgPywmZbgD+W+PCR5Kx+TRhdX33T9dWveri2D7j7qEInVS2494eZrYyTClSvdH31TddXv5J0bRqWERFJIAV3EZG5vlb9AAAGtklEQVQEqtfgvrDaDRhgur76puurX4m5troccxcRkfzqtecuIiJ5KLiLiCRQ3QX3Qpt11yoz+4OZrTOzNjNbGRw72Mx+bWYvBf+OCI6bmf0wuMZnzOyYrOe5ODj/JTO7uIrXc4eZvW5mz2YdK9v1mNmxwc/r5eCxFd08N+L6FphZe/AetgXVUjP3zQ/a+oKZzco6Hvr7ambjgs3kXwo2l9+3clcHZnaYmS0zs/Vm9pyZ/WNwvO7fwzzXlpj3LxZ3r5sv0iWHNwCHA/sCa4GPVLtdMdv+B2BkzrHvA/OC2/OA7wW3TwceJr3D1TRgRXD8YOCV4N8Rwe0RVbqevwGOAZ4diOsBngY+FjzmYeC0Gri+BcCVIed+JPhd3A8YF/yODsn3+wr8gnRpbIDbgMsrfH2HAMcEtw8EXgyuo+7fwzzXlpj3L85XvfXcjwNedvdX3P1d4OfAWVVuU3+cBfwsuP0zYE7W8Ts9bTnQZGaHALOAX7v7Vnd/C/g1cGqlGw3g7o/Td7etslxPcN9B7v5bT//vuTPruSoi4vqinAX83N3fcfdXgZdJ/66G/r4GPdiZwH3B47N/VhXh7q+5++rg9tvAetJ7Idf9e5jn2qLU3fsXR70F97DNuutl+yMH/tvMVll6o3CA97n7a5D+hQTeGxyPus5av/5yXU9zcDv3eC34ajAscUdmyILir+89QIe77845XhVmNpb0RjsrSNh7mHNtkMD3L0q9BfdYG3HXqOnufgxwGvAVM/ubPOdGXWe9Xn+x11Or13krcAQwBXgN+NfgeN1en5kdAPwSuMLd/5rv1JBjNX2NIdeWuPcvn3oL7nE2665J7r45+Pd14Fek/+T7S/DnK8G/rwenR11nrV9/ua5nU3A793hVuftf3L3b3fcAt5N+D6H463uD9LDGPjnHK8rMUqSD3yJ3XxIcTsR7GHZtSXv/Cqm34N6zWXcwO30e6c25a5qZ7W9mB2ZuA6cAz7J3Y3GCf+8Pbj8AXBRkKEwDtgV/Ij8KnGJmI4I/KU8JjtWKslxPcN/bZjYtGN+8KOu5qiYT9AKfJv0eQvr6zjOz/Sy9kfx40pOJob+vwRj0MtKbyUPvn1VFBD/XnwDr3f3GrLvq/j2MurYkvX+xVHtGt9gv0rP2L5Kexf6narcnZpsPJz3TvhZ4LtNu0mN3/w94Kfj34OC4AbcE17gOaMl6rr8jPeHzMnBpFa/pHtJ/2naR7uF8oZzXA7SQ/s+3AfgxwWrqKl/fXUH7nyEdEA7JOv+fgra+QFZWSNTva/A78XRw3fcC+1X4+k4kPZTwDNAWfJ2ehPcwz7Ul5v2L86XyAyIiCVRvwzIiIhKDgruISAIpuIuIJJCCu4hIAim4i4gkkIK71Dwz+4egwt9bVqASqJmNNrP78tw/1rIqPZbYnu0lPm5UUElwjZmdZGbf6k87RPJRKqTUPDN7nnTu8atleK6xwH+5+1H9eI7t7n5ACY87j/R1XNyf5xGJY5/Cp4hUj5ndRnrByANmdgdwhLt/1cz+Hfgr6YUy7wf+t7vflx28zexI4Keky7U2AGeTXpQ0xMxuB04A2oGz3L3TzI4gvVBnFLAT+JK7Px+sWvwP0v9fHslq2yHAYuCg4L7L3f0JM7sUmE96EdSLwDvA/yVdTrfRzNpIr+zM3H7O3S8YgB+fDGIalpGa5u5fJl23YwbwVs7dh5BejXgGcH3Iw78M/MDdp5D+EMhUKRwP3OLuRwIdpIM+pDdH/pq7HwtcCfxbcPwHwK3u/lHgz1nP/znSS+2nAJOBtiDgXwNMBz5JulY47t4GXA0sdvcp7v5NoDO4rcAuZaeeu9SzVk8Xgfq9mb0v5P7fAv9kZocCS9z9pXTZEV4Ngi3AKmBsUEHwBOBe27th0H7Bv9PZ+wFwF/C94PbvgDuCIlWt7t5mZp8AHnP3LQBmthj4UJmuVyQ29dylnr2TdbtPGVZ3/w/gTKATeNTMZoY8rpt0J6eBdI3uKVlfH85+upDnf5z0jk3twF1mdlHUuSKVpuAuiWVmhwOvuPsPSReKOjrqXE/X+37VzM4JHmtmNjm4+0nSFQEBeoZQzOwDwOvufjvpKoTHkN4U4mQze0/Qoz8nTxO7gnNEyk7BXZLsXODZYNJyIumt3vK5APiCmWWqd2a2cPxH0hus/A4YnnX+yaTH2deQHrb5gadL3S4gPST0G2B1ntdbCDxjZouKuSiROJQKKTKAzOwS0uVxv1rttsjgop67iEgCqecuIpJA6rmLiCSQgruISAIpuIuIJJCCu4hIAim4i4gk0P8HFzqFAZwtjuEAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "df.plot(x='finishedsqft', y='lastsoldprice', style='o')\n", "df.plot(x='bathrooms', y='lastsoldprice', style='o')\n", @@ -144,7 +827,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -161,16 +844,109 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, - "outputs": [], + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
bathroomsbedroomsfinishedsqfttotalroomslongitudelatitude
02311076-122.50553537.735935
11317505-122.50526837.761630
22314528-122.38145437.728354
32314227-122.46559537.779585
42321549-122.40482137.723132
\n", + "
" + ], + "text/plain": [ + " bathrooms bedrooms finishedsqft totalrooms longitude latitude\n", + "0 2 3 1107 6 -122.505535 37.735935\n", + "1 1 3 1750 5 -122.505268 37.761630\n", + "2 2 3 1452 8 -122.381454 37.728354\n", + "3 2 3 1422 7 -122.465595 37.779585\n", + "4 2 3 2154 9 -122.404821 37.723132" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "X.head()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, "metadata": {}, "outputs": [], "source": [ @@ -194,16 +970,27 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 29, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "dict_keys(['bootstrap', 'criterion', 'max_depth', 'max_features', 'max_leaf_nodes', 'min_impurity_decrease', 'min_impurity_split', 'min_samples_leaf', 'min_samples_split', 'min_weight_fraction_leaf', 'n_estimators', 'n_jobs', 'oob_score', 'random_state', 'verbose', 'warm_start'])" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "rand_forest_regressor.get_params().keys()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 30, "metadata": {}, "outputs": [], "source": [ @@ -212,7 +999,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 31, "metadata": {}, "outputs": [], "source": [ @@ -221,25 +1008,57 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 32, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "GridSearchCV(cv=5, error_score='raise',\n", + " estimator=RandomForestRegressor(bootstrap=True, criterion='mse', max_depth=None,\n", + " max_features='auto', max_leaf_nodes=None,\n", + " min_impurity_decrease=0.0, min_impurity_split=None,\n", + " min_samples_leaf=1, min_samples_split=2,\n", + " min_weight_fraction_leaf=0.0, n_estimators=10, n_jobs=1,\n", + " oob_score=False, random_state=None, verbose=0, warm_start=False),\n", + " fit_params=None, iid=True, n_jobs=1,\n", + " param_grid=[{'n_estimators': [3, 10, 12, 14], 'max_features': [1, 2, 3, 4, 5, 6]}, {'bootstrap': [False]}],\n", + " pre_dispatch='2*n_jobs', refit=True, return_train_score='warn',\n", + " scoring='neg_mean_squared_error', verbose=0)" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "grid_search.fit(X_train, y_train)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "{'max_features': 1, 'n_estimators': 14}" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "grid_search.best_params_" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 34, "metadata": {}, "outputs": [], "source": [ @@ -248,7 +1067,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 35, "metadata": {}, "outputs": [], "source": [ @@ -257,27 +1076,54 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 36, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "-285759695700.31354" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "grid_search.score(X_test, y_test)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 37, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Linear Regression coefficient of determination (R squared): 285759695700.3135\n" + ] + } + ], "source": [ - "print('Linear Regression coefficient of determination (R squared): %.4f' % grid_search.score(X_test, y_test))" + "print('Linear Regression coefficient of determination (R squared): %.4f' % (0 - grid_search.score(X_test, y_test))) # since score is negative" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Linear Regression RMSE: 515079.9922\n" + ] + } + ], "source": [ "from sklearn.metrics import mean_squared_error\n", "lin_mse = mean_squared_error(y_pred, y_test)\n", From dce5294cca14db5a06132e56fdec8ae50003905f Mon Sep 17 00:00:00 2001 From: Kate Hodesdon Date: Thu, 13 Sep 2018 17:33:44 +0100 Subject: [PATCH 3/3] extracts param values for each param combo tried in GridSearchCV --- .../house-prices-random-forest.ipynb | 708 ++++++++++++++---- 1 file changed, 556 insertions(+), 152 deletions(-) diff --git a/house-prices-py/house-prices-random-forest.ipynb b/house-prices-py/house-prices-random-forest.ipynb index 700f988..f9330fa 100644 --- a/house-prices-py/house-prices-random-forest.ipynb +++ b/house-prices-py/house-prices-random-forest.ipynb @@ -2,24 +2,36 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "from sklearn.cross_validation import train_test_split\n", + "import matplotlib.pyplot as plt\n", + "%matplotlib inline\n" + ] + }, + { + "cell_type": "code", + "execution_count": 28, "metadata": {}, "outputs": [ { - "name": "stderr", + "name": "stdout", "output_type": "stream", "text": [ - "/Users/kate/anaconda3/lib/python3.6/site-packages/sklearn/cross_validation.py:41: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.\n", - " \"This module will be removed in 0.20.\", DeprecationWarning)\n" + "DOTSCIENCE_INPUTS=[\"agent1\", \"agent2\"]\n", + "DOTSCIENCE_OUTPUTS=[\"model\"]\n", + "DOTSCIENCE_LABELS={\"model_type\": \"random_forest\"}\n" ] } ], "source": [ - "import pandas as pd\n", - "import numpy as np\n", - "from sklearn.cross_validation import train_test_split\n", - "import matplotlib.pyplot as plt\n", - "%matplotlib inline\n" + "print('DOTSCIENCE_INPUTS=[\"agent1\", \"agent2\"]')\n", + "print('DOTSCIENCE_OUTPUTS=[\"model\"]')\n", + "print('DOTSCIENCE_LABELS={\"model_type\": \"random_forest\"}')\n" ] }, { @@ -31,7 +43,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 29, "metadata": {}, "outputs": [], "source": [ @@ -41,7 +53,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 30, "metadata": {}, "outputs": [], "source": [ @@ -52,7 +64,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 31, "metadata": {}, "outputs": [ { @@ -146,7 +158,7 @@ " top\n", " NaN\n", " Address: 1300 Eddy Street\n", - " San FranciscoSales price: 725000Sales date: 02...\n", + " San FranciscoSales price: 850000Sales date: 02...\n", " 1300 Eddy St\n", " NaN\n", " NaN\n", @@ -361,7 +373,7 @@ " info z_address \\\n", "count 11330 11330 \n", "unique 11232 10684 \n", - "top San FranciscoSales price: 725000Sales date: 02... 1300 Eddy St \n", + "top San FranciscoSales price: 850000Sales date: 02... 1300 Eddy St \n", "freq 3 5 \n", "mean NaN NaN \n", "std NaN NaN \n", @@ -411,7 +423,7 @@ "max 2016.000000 1.553325e+07 5.333500e+06 94158.000000 2.146999e+09 " ] }, - "execution_count": 4, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } @@ -422,7 +434,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 32, "metadata": {}, "outputs": [ { @@ -435,7 +447,7 @@ " dtype='object')" ] }, - "execution_count": 5, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" } @@ -446,7 +458,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 33, "metadata": {}, "outputs": [], "source": [ @@ -456,7 +468,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 34, "metadata": {}, "outputs": [ { @@ -644,7 +656,7 @@ "max 37.806083 -122.381201 1264.000000 " ] }, - "execution_count": 7, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -655,7 +667,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 35, "metadata": {}, "outputs": [ { @@ -672,7 +684,7 @@ "dtype: bool" ] }, - "execution_count": 8, + "execution_count": 35, "metadata": {}, "output_type": "execute_result" } @@ -684,7 +696,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 36, "metadata": {}, "outputs": [ { @@ -701,7 +713,7 @@ "dtype: object" ] }, - "execution_count": 9, + "execution_count": 36, "metadata": {}, "output_type": "execute_result" } @@ -712,7 +724,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 37, "metadata": {}, "outputs": [], "source": [ @@ -722,7 +734,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 38, "metadata": {}, "outputs": [ { @@ -739,7 +751,7 @@ "dtype: object" ] }, - "execution_count": 11, + "execution_count": 38, "metadata": {}, "output_type": "execute_result" } @@ -757,22 +769,22 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 12, + "execution_count": 39, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -782,7 +794,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -792,7 +804,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -802,7 +814,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAERCAYAAACAbee5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAHRZJREFUeJzt3X90VdWd9/H3lxgl+Cso2PJDC7QU6hgBm1K0Ooo+BRQqtJYl1l84tSy19Zl2BqbETi1aV7VlljJaRwanturwUKvFSK3KtAOOTq0oP4LBIoo6agKjEQyKBBuS7/PHOaE34Sb33HCTe8+5n9daWbl3n33P3fckfDjZZ5+9zd0REZFk6ZPvBoiISO4p3EVEEkjhLiKSQAp3EZEEUriLiCSQwl1EJIHyGu5mdo+ZvWNmmyLUvc3MasKvl82ssTfaKCISR5bPce5m9tfAbuA+dz8pi9ddC4xz97/pscaJiMRYXs/c3f0pYGdqmZl90syeMLN1Zva0mY1O89KLgGW90kgRkRg6JN8NSGMJcJW7v2Jmnwf+BTi7baOZfQIYDqzKU/tERApeQYW7mR0BnAY8aGZtxYd1qDYLeMjdW3qzbSIicVJQ4U7QTdTo7mO7qDML+GYvtUdEJJYKaiiku78PvG5mMwEsMKZtu5mNAvoDf8xTE0VEYiHfQyGXEQT1KDOrM7OvAxcDXzezjcCLwPSUl1wE/NI1laWISJcyDoU0s+OB+4CPA63AEnf/5w51zgIeAV4Pi5a7+405b62IiEQSpc99H/D37r7ezI4E1pnZ79z9Tx3qPe3u03LfRBERyVbGcHf37cD28PEHZrYZGAJ0DPesDBgwwIcNG3YwuxARKTrr1q17190HZqqX1WgZMxsGjAPWpNl8athPvg2Y6+4vpnn9HGAOwAknnMDatWuzeXsRkaJnZm9EqRf5gmo4Bv3XwLfDUS2p1gOfcPcxwB1Adbp9uPsSd69098qBAzP+xyMiIt0UKdzNrJQg2Je6+/KO2939fXffHT5+DCg1swE5bamIiESWMdwtuFX0Z8Bmd7+1kzofD+thZuPD/e7IZUNFRCS6KH3uXwAuBWrNrCYsuw44AcDdFwNfBa42s31AEzBLY9FF4qm5uZm6ujr27t2b76YUtb59+zJ06FBKS0u79fooo2X+G7AMdX4K/LRbLRCRglJXV8eRRx7JsGHDSJnjSXqRu7Njxw7q6uoYPnx4t/ZRaHPLdFv1hnoWrtzCtsYmBpeXMW/yKGaMG5LvZonEzt69exXseWZmHHvssTQ0NHR7H4kI9+oN9VQtr6WpOZgosr6xiarltQAKeJFuULDn38H+DApq4rDuWrhyy/5gb9PU3MLClVvy1CIRkfxKRLhva2zKqlxECtsRRxzRrdctWrSIPXv2dOu1s2fP5qGHHjqg/Mknn2TatOxnVjnttNO61Y5cSUS4Dy4vy6pcRHKnekM9X7hlFcPn/5Yv3LKK6g31eWvLwYR7rrS0BL0IzzzzTF7bkYhwnzd5FGWlJe3KykpLmDd5VJ5aJFIc2q531Tc24fzleleuAn737t2cc845nHLKKVRUVPDII48A8OGHHzJ16lTGjBnDSSedxAMPPMDtt9/Otm3bmDhxIhMnTqSlpYXZs2dz0kknUVFRwW233QZATU0NEyZM4OSTT+bLX/4y77333gHv+8QTTzB69GhOP/10li//y32bCxYs4NJLL+Xss89m5MiR3H333UBwdj9x4kS+9rWvUVFRAbT/6+MnP/kJFRUVjBkzhvnz5wPw6quvMmXKFD772c9yxhln8NJLL+XkmLVJxAXVtoumGi0j0ru6ut6Vi39/ffv25eGHH+aoo47i3XffZcKECZx//vk88cQTDB48mN/+9rcA7Nq1i6OPPppbb72V1atXM2DAANatW0d9fT2bNm0CoLGxEYDLLruMO+64gzPPPJPrr7+eG264gUWLFu1/z7179/KNb3yDVatW8alPfYoLL7ywXZteeOEFnn32WT788EPGjRvH1KlTAXjuuefYtGnTAUMXH3/8caqrq1mzZg39+vVj586dAMyZM4fFixczcuRI1qxZwzXXXMOqVblbGjoR4Q5BwCvMRXpXT1/vcneuu+46nnrqKfr06UN9fT1vv/02FRUVzJ07l+9+97tMmzaNM84444DXjhgxgtdee41rr72WqVOnMmnSJHbt2kVjYyNnnnkmAJdffjkzZ85s97qXXnqJ4cOHM3LkSAAuueQSlixZsn/79OnTKSsro6ysjIkTJ/Lcc89RXl7O+PHj045J//3vf88VV1xBv379ADjmmGPYvXs3zzzzTLv3/uijjw7+gKVIRLeMiORHT1/vWrp0KQ0NDaxbt46amho+9rGPsXfvXj796U+zbt06KioqqKqq4sYbD1wbqH///mzcuJGzzjqLO++8kyuvvDLy+3Y1DLHjtrbnhx9+eNr67n7Aa1pbWykvL6empmb/1+bNmyO3LwqFu4h0W09f79q1axfHHXccpaWlrF69mjfeCGa73bZtG/369eOSSy5h7ty5rF+/HoAjjzySDz74AIB3332X1tZWLrjgAn74wx+yfv16jj76aPr378/TTz8NwP3337//LL7N6NGjef3113n11VcBWLZsWbvtjzzyCHv37mXHjh08+eSTfO5zn+vyM0yaNIl77rln/4XenTt3ctRRRzF8+HAefPBBIPgPYOPGjQdzqA6QmG4ZEel9PX296+KLL+ZLX/oSlZWVjB07ltGjRwNQW1vLvHnz6NOnD6Wlpdx1111A0I997rnnMmjQIBYtWsQVV1xBa2srADfffDMA9957L1dddRV79uxhxIgR/PznP2/3nn379mXJkiVMnTqVAQMGcPrpp+/vtwcYP348U6dO5c033+T73/8+gwcP5uWXX+70M0yZMoWamhoqKys59NBDOe+88/jRj37E0qVLufrqq7nppptobm5m1qxZjBkzJifHDSKsodpTKisrXYt1iBSezZs385nPfCbfzShICxYs4IgjjmDu3Lm98n7pfhZmts7dKzO9Vt0yIiIJpG4ZEZGIFixYkO8mRKYzdxE5gJZjyL+D/Rko3EWknb59+7Jjxw4FfB61zefet2/fbu9D3TIi0s7QoUOpq6s7qLnE5eC1rcTUXQp3EWmntLS026v/SOFQt4yISAIp3EVEEkjhLiKSQAp3EZEEUriLiCSQwl1EJIEU7iIiCaRwFxFJIIW7iEgCKdxFRBJI4S4ikkAKdxGRBFK4i4gkkMJdRCSBMoa7mR1vZqvNbLOZvWhmf5umjpnZ7Wa21cxeMLNTeqa5IiISRZT53PcBf+/u683sSGCdmf3O3f+UUudcYGT49XngrvC7iIjkQcYzd3ff7u7rw8cfAJuBIR2qTQfu88CzQLmZDcp5a0VEJJKs+tzNbBgwDljTYdMQ4K2U53Uc+B8AZjbHzNaa2Vot4SUi0nMih7uZHQH8Gvi2u7/fcXOalxywuq67L3H3SnevHDhwYHYtFRGRyCKFu5mVEgT7UndfnqZKHXB8yvOhwLaDb56IiHRHlNEyBvwM2Ozut3ZSbQVwWThqZgKwy92357CdIiKShSijZb4AXArUmllNWHYdcAKAuy8GHgPOA7YCe4Arct9UERGJKmO4u/t/k75PPbWOA9/MVaNEROTg6A5VEZEEUriLiCSQwl1EJIEU7iIiCaRwFxFJIIW7iEgCKdxFRBJI4S4ikkBR7lAtaNUb6lm4cgvbGpsYXF7GvMmjmDHugAkpRUSKSqzDvXpDPVXLa2lqbgGgvrGJquW1AAp4ESlqse6WWbhyy/5gb9PU3MLClVvy1CIRkcIQ63Df1tiUVbmISLGIdbgPLi/LqlxEpFjEOtznTR5FWWlJu7Ky0hLmTR6VpxaJiBSGWF9QbbtoqtEyIiLtxTbcOw6BvO3CsQp1EZFQLMNdQyBFRLoWyz53DYEUEelaLMNdQyBFRLoWy3A/uqw0q3IRkWITy3C3Tpbr7qxcRKTYxDLcG/c0Z1UuIlJsYhnuujNVRKRrsQx33ZkqItK1WI5z152pIiJdi2W4QxDwCnMRkfRi2S0jIiJdU7iLiCSQwl1EJIEU7iIiCaRwFxFJIIW7iEgCKdxFRBIoY7ib2T1m9o6Zbepk+1lmtsvMasKv63PfTBERyUaUm5h+AfwUuK+LOk+7+7SctEhERA5axjN3d38K2NkLbRERkRzJVZ/7qWa20cweN7O/6qySmc0xs7VmtrahoSFHby0iIh3lItzXA59w9zHAHUB1ZxXdfYm7V7p75cCBA3Pw1iIiks5Bh7u7v+/uu8PHjwGlZjbgoFsmIiLddtDhbmYfNwsWuDOz8eE+dxzsfkVEpPsyjpYxs2XAWcAAM6sDfgCUArj7YuCrwNVmtg9oAma5u/dYi0VEJKOM4e7uF2XY/lOCoZK9qnpDvRbrEBHpRCwX66jeUE/V8lqamlsAqG9somp5LYACXkSEmE4/sHDllv3B3qapuYWFK7fkqUUiIoUlluG+rbEpq3IRkWITy3AfXF6WVbmISLGJZbjPmzyKstKSdmVlpSXMmzwqTy0SESkssbyg2nbRVKNlRETSi2W4QxDwCnMRkfRiG+6gse4iIp2JbbhrrLuISOdieUEVNNZdRKQrsQ13jXUXEelcbMNdY91FRDoX23CfODr9Yh+dlYuIFJPYhvvql9Iv09dZuYhIMYltuKvPXUSkc7ENd/W5i4h0Lrbhnq5vvbTENL+MiAgxDffqDfU88PxbB5S3tGh1PxERiGm4L1y5heY0Qd4abhMRKXaxDPeuLprqgqqISEzDvbxfaafbdEFVRCSG4V69oZ7de/el3VbaRxdURUQghuG+cOUWmlsP7G83YOHMMZoRUkSEGIZ7V33qCnYRkUDswr2rPvXqDfW92BIRkcIVu3DvbGIwB+Y9uFEBLyJCDMO9q4nBmltd49xFRIhhuGcax65x7iIiMQz3TOPYNc5dRCSG4T5v8ihK+1jabRrnLiISiF24zxg3hIUzx1Be1v4u1fKyUo1zFxEJxS7cIQj4mh9MYtGFYxlSXoYBhx92SL6bJSJSMDImopndA0wD3nH3k9JsN+CfgfOAPcBsd1+f64amqt5Qz4IVL9LY1Ly/rL6xiXkPbQR0M5OISJQz918AU7rYfi4wMvyaA9x18M3qXPWGeqqW17YL9jbNLc4Nv3mxJ99eRCQWMoa7uz8F7OyiynTgPg88C5Sb2aBcNbCjhSu30NTc0un29/YcGPoiIsUmF33uQ4DUZZHqwrIDmNkcM1trZmsbGjq/GakrUcax6y5VESl2uQj3dOMS06535+5L3L3S3SsHDkw/jUAmUcaxVy2vVcCLSFHLRbjXAcenPB8KbMvBftPqbG6ZVE3NLZqGQESKWi7CfQVwmQUmALvcfXsO9ptWV3PLpNI0BCJSzKIMhVwGnAUMMLM64AdAKYC7LwYeIxgGuZVgKOQVPdVYiB7amoZARIpZxnB394sybHfgmzlrUQaDy8uozxDwZaUlmoZARIpa7O5QzdTnXlbah5u/UqEbmUSkqMXunv2u+txLDDb/8NxebI2ISGGK3Zl7V33uLa4x7iIiEMNwz3ShVEMgRURiGO6ZLpRmutgqIlIMYhfumS6Ullj6hTxERIpJ7MI9kxZPO/OBiEhRiV24Z7pgOkQ3L4mIxCvc2+Zy74puXhIRiVm4Z5rLXUREArEK9yjzymgopIhIzMI9ymRgGgopIhKzcI/Sn66hkCIiMQv3tW90tZRrQEMhRURiFu7L1ryVsY7O3EVEYhbuUc7KdeYuIhKzcI9yVq6bmEREYhbuF33++Ix1oiygLSKSdLEK95tmVGSs8+jGHlubW0QkNmIV7v9Y3fXUAwCNTc1asENEil6swj3KaBnQXaoiIrEK96gjYXSXqogUu1iFe9Qx7BrpLiLFLlbhHmW0DICjhbJFpLjFKtyjjJZpo353ESlmsQr3bESZHlhEJKkSG+5RpgcWEUmqRIZ7WWmJltsTkaIWq3CPcpG0xIybv1LBjHFDeqFFIiKFKVbhfsNvXsxYZ8KI/gp2ESl6sQn36g31vLenOWO9P76WeUEPEZGki024Rx3a2Ooa4y4iEinczWyKmW0xs61mNj/N9tlm1mBmNeHXlbluaDZDGzXGXUSK3SGZKphZCXAn8EWgDnjezFa4+586VH3A3b/VA20EgqGNUeeM0Rh3ESl2Uc7cxwNb3f01d/8z8Etges8260DZDG3UGHcRKXZRwn0IkDrXbl1Y1tEFZvaCmT1kZtEmgcnCjHFDGHnc4ZHqaoy7iBS7KOGebpLFjnPv/gYY5u4nA78H7k27I7M5ZrbWzNY2NDRk11Kg4YM/R6qnoZAiUuyihHsdkHomPhTYllrB3Xe4+0fh07uBz6bbkbsvcfdKd68cODD7tU4bmzIPhRQRkWjh/jww0syGm9mhwCxgRWoFMxuU8vR8YHPumigiItnKOFrG3feZ2beAlUAJcI+7v2hmNwJr3X0F8H/N7HxgH7ATmN2Dbe5S1AU9RESSLGO4A7j7Y8BjHcquT3lcBVTltmndE3VBDxGRJIvNHaoAUU7Ks1nQQ0QkqWIV7lHWx7747j/2fENERApcrMI9ij+8upN/rK7NdzNERPIqceEO8O/PvqnJw0SkqCUy3AGqltcq4EWkaCU23JuaWyIt7iEikkSJDXeA9/Y06+xdRIpSosMdNLe7iBSnxIe75nYXkWKU+HDX3O4iUowSHe5lpSWa211EilKkuWXiaEh5GfMmj9Lc7iJSlBIZ7n0M/jD/7Hw3Q0QkbxLZLdMaYQ4aEZEkS2S4i4gUO4W7iEgCKdxFRBIoseGuaQdEpJglNtz/7lc1CngRKVqJDfdW17wyIlK8EhvuAPWaV0ZEilRswr07XSwlUVbUFhFJoNjcobpgRfYLb7REWVFbRKSXVG+oZ+HKLWxrbGJwD0+REptwb2xqzvo1QzQjpIgUiOoN9VQtr6WpuQUIuo2rltcC9EjAx6ZbJlulfUwzQopIwVi4csv+YG/T1NzSYwM/YhPu/fuVZlV/4cwxmhFSRApGZwsH9dSCQrEJ96knD8qqvoJdRApJZwsH9dSCQrEJ90c3bs+qvm5gEpFCMm/yKMpKS9qV9eSCQrEJ92wvqOoGJhEpJDPGDeHmr1QwpLwMIxjwcfNXKjRaJltaGFtECs2McUN6rcs4seF+dFl2F2B7c/ypiEhPS2y4Z3Nzam+PPxUR6Wmx6XPPVuOe6H30vT3+VESkp0UKdzObYmZbzGyrmc1Ps/0wM3sg3L7GzIbluqHZymZ4UW+PPxUR6WkZw93MSoA7gXOBE4GLzOzEDtW+Drzn7p8CbgN+nOuGZsMgq+FFvT3+VESkp0U5cx8PbHX319z9z8Avgekd6kwH7g0fPwScY5a/KRkvnnBCVn3lvT3+VESkp0UJ9yHAWynP68KytHXcfR+wCzi2447MbI6ZrTWztQ0NDVk19JIJJ0SqV15Wyk0zKrLad2+PPxUR6WlRRsukOwPvOJdulDq4+xJgCUBlZWVW8/HeNKOCf3/2zYz1Fpz/V9nsdr/eHH8qItLTopy51wHHpzwfCmzrrI6ZHQIcDezMRQOzcUmW3TEiIkkVJdyfB0aa2XAzOxSYBazoUGcFcHn4+KvAKvfcr5TxP7dM7XTbogvHZt0dIyKSVBm7Zdx9n5l9C1gJlAD3uPuLZnYjsNbdVwA/A+43s60EZ+yzeqrBXQW8iIgEIt2h6u6PAY91KLs+5fFeYGZumyYiIt2V2DtURUSKmcJdRCSBFO4iIgmkcBcRSSDrgRGL0d7YrAF4o5svHwC8m8Pm9La4tx/i/xnU/vxS+7vvE+4+MFOlvIX7wTCzte5eme92dFfc2w/x/wxqf36p/T1P3TIiIgmkcBcRSaC4hvuSfDfgIMW9/RD/z6D255fa38Ni2ecuIiJdi+uZu4iIdEHhLiKSQLEL90yLdRcCMzvezFab2WYze9HM/jYsP8bMfmdmr4Tf+4flZma3h5/pBTM7Jb+fIGBmJWa2wcweDZ8PDxdAfyVcEP3QsLzgFkg3s3Ize8jMXgp/DqfG6fib2XfC351NZrbMzPoW+vE3s3vM7B0z25RSlvUxN7PLw/qvmNnl6d6rF9u/MPwdesHMHjaz8pRtVWH7t5jZ5JTywsgod4/NF8GUw68CI4BDgY3AifluV5p2DgJOCR8fCbxMsLj4T4D5Yfl84Mfh4/OAxwlWtJoArMn3Zwjb9XfA/wMeDZ//CpgVPl4MXB0+vgZYHD6eBTxQAG2/F7gyfHwoUB6X40+wbOXrQFnKcZ9d6Mcf+GvgFGBTSllWxxw4Bngt/N4/fNw/j+2fBBwSPv5xSvtPDPPnMGB4mEslhZRRefsF7ubBPxVYmfK8CqjKd7sitPsR4IvAFmBQWDYI2BI+/lfgopT6++vlsc1Dgf8EzgYeDf8Rvpvyi77/Z0Ew1/+p4eNDwnqWx7YfFYajdSiPxfHnL2sSHxMez0eByXE4/sCwDuGY1TEHLgL+NaW8Xb3ebn+HbV8GloaP22VP28+gkDIqbt0yURbrLijhn8jjgDXAx9x9O0D4/biwWiF+rkXAPwCt4fNjgUYPFkCH9m2MtEB6LxoBNAA/D7uV/s3MDicmx9/d64F/At4EthMcz3XE5/inyvaYF9TPooO/IfhrA2LQ/riFe6SFuAuFmR0B/Br4tru/31XVNGV5+1xmNg14x93XpRanqeoRtuXDIQR/Xt/l7uOADwm6BDpTUO0P+6WnE/y5Pxg4HDg3TdVCPf5RdNbmgvwsZvY9YB+wtK0oTbWCan/cwj3KYt0FwcxKCYJ9qbsvD4vfNrNB4fZBwDtheaF9ri8A55vZ/wC/JOiaWQSUW7AAOrRvY0EskJ6iDqhz9zXh84cIwj4ux///AK+7e4O7NwPLgdOIz/FPle0xL7SfBeFF3WnAxR72tRCD9sct3KMs1p13ZmYE68pudvdbUzalLiR+OUFffFv5ZeEIggnArrY/ZfPB3avcfai7DyM4xqvc/WJgNcEC6HBg+3t8gfSo3P1/gbfMbFRYdA7wJ2Jy/Am6YyaYWb/wd6mt/bE4/h1ke8xXApPMrH/4F8yksCwvzGwK8F3gfHffk7JpBTArHKk0HBgJPEchZVQ+OvoP8oLHeQSjT14Fvpfv9nTSxtMJ/hR7AagJv84j6Af9T+CV8PsxYX0D7gw/Uy1Qme/PkPJZzuIvo2VGEPwCbwUeBA4Ly/uGz7eG20cUQLvHAmvDn0E1wciL2Bx/4AbgJWATcD/BqIyCPv7AMoJrBM0EZ7Bf784xJ+jb3hp+XZHn9m8l6ENv+3e8OKX+98L2bwHOTSkviIzS9AMiIgkUt24ZERGJQOEuIpJACncRkQRSuIuIJJDCXUQkgRTuEhvhTI/XZKgzzMy+FmFfw1Jn/xNJGoW7xEk5wQyIXRkGZAz3zqTcASoSawp3iZNbgE+aWU04z/bCcL7zWjO7MKXOGWGd74Rn6E+b2frw67SOOzWz2Wb2oJn9BviP8K7JA/bdRflZZvZfZvYrM3vZzG4xs4vN7Lmw3ifDejPD1240s6d655BJsdJZisTJfOAkdx9rZhcAVwFjgAHA82Fgzgfmuvs0ADPrB3zR3fea2UiCuxAr0+z7VOBkd98Z7ntsmn2f1kk5YdlnCOZ0eQ34N3cfb8FCLdcC3wauBya7e33qog8iPUFn7hJXpwPL3L3F3d8G/gv4XJp6pcDdZlZLcIv+iZ3s73fu3jbZVmf77uo9n3f37e7+EcFt5/8RltcSdBUB/AH4hZl9g2BRB5EeozN3iat0U6um8x3gbYIz6z7A3k7qfRhh312950cpj1tTnrcS/jtz96vM7PPAVKDGzMa6+46umy/SPTpzlzj5gGDZQoCngAstWOd1IMESac91qAPB9Lfb3b0VuJRoZ8yd7buz8kjM7JPuvsbdrydYLen4TK8R6S6duUtsuPsOM/tDOITxcYIZHzcSzMD5D+7+v2a2A9hnZhuBXwD/AvzazGYSTJn7Yfq9t/MwQR98x313Vj464kdYGPb7G8EMiRsjvk4ka5oVUkQkgdQtIyKSQAp3EZEEUriLiCSQwl1EJIEU7iIiCaRwFxFJIIW7iEgC/X/sfrevAg223gAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] @@ -827,7 +839,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 40, "metadata": {}, "outputs": [], "source": [ @@ -836,117 +848,40 @@ ] }, { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": 41, "metadata": {}, + "outputs": [], "source": [ - "These are our features:" + "features = df.columns" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 42, "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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
bathroomsbedroomsfinishedsqfttotalroomslongitudelatitude
02311076-122.50553537.735935
11317505-122.50526837.761630
22314528-122.38145437.728354
32314227-122.46559537.779585
42321549-122.40482137.723132
\n", - "
" - ], "text/plain": [ - " bathrooms bedrooms finishedsqft totalrooms longitude latitude\n", - "0 2 3 1107 6 -122.505535 37.735935\n", - "1 1 3 1750 5 -122.505268 37.761630\n", - "2 2 3 1452 8 -122.381454 37.728354\n", - "3 2 3 1422 7 -122.465595 37.779585\n", - "4 2 3 2154 9 -122.404821 37.723132" + "Index(['bathrooms', 'bedrooms', 'finishedsqft', 'lastsolddate',\n", + " 'lastsoldprice', 'latitude', 'longitude', 'totalrooms'],\n", + " dtype='object')" ] }, - "execution_count": 14, + "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "X.head()" + "# These are our features:\n", + "features" ] }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 57, "metadata": {}, "outputs": [], "source": [ @@ -957,8 +892,7 @@ "from sklearn.model_selection import GridSearchCV\n", "\n", "param_grid = [\n", - " {'n_estimators': [3, 10, 12, 14], 'max_features': [1,2, 3, 4, 5, 6]},\n", - " {'bootstrap': [False]}\n", + " {'n_estimators': [3, 10, 12, 14], 'max_features': [1,2, 3, 4, 5, 6], 'bootstrap': [False]}\n", "]\n", "\n", "rand_forest_regressor = RandomForestRegressor()\n", @@ -970,7 +904,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 58, "metadata": {}, "outputs": [ { @@ -979,7 +913,7 @@ "dict_keys(['bootstrap', 'criterion', 'max_depth', 'max_features', 'max_leaf_nodes', 'min_impurity_decrease', 'min_impurity_split', 'min_samples_leaf', 'min_samples_split', 'min_weight_fraction_leaf', 'n_estimators', 'n_jobs', 'oob_score', 'random_state', 'verbose', 'warm_start'])" ] }, - "execution_count": 29, + "execution_count": 58, "metadata": {}, "output_type": "execute_result" } @@ -990,7 +924,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 62, "metadata": {}, "outputs": [], "source": [ @@ -999,7 +933,55 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 66, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'bootstrap': False, 'max_features': 1, 'n_estimators': 3},\n", + " {'bootstrap': False, 'max_features': 1, 'n_estimators': 10},\n", + " {'bootstrap': False, 'max_features': 1, 'n_estimators': 12},\n", + " {'bootstrap': False, 'max_features': 1, 'n_estimators': 14},\n", + " {'bootstrap': False, 'max_features': 2, 'n_estimators': 3},\n", + " {'bootstrap': False, 'max_features': 2, 'n_estimators': 10},\n", + " {'bootstrap': False, 'max_features': 2, 'n_estimators': 12},\n", + " {'bootstrap': False, 'max_features': 2, 'n_estimators': 14},\n", + " {'bootstrap': False, 'max_features': 3, 'n_estimators': 3},\n", + " {'bootstrap': False, 'max_features': 3, 'n_estimators': 10},\n", + " {'bootstrap': False, 'max_features': 3, 'n_estimators': 12},\n", + " {'bootstrap': False, 'max_features': 3, 'n_estimators': 14},\n", + " {'bootstrap': False, 'max_features': 4, 'n_estimators': 3},\n", + " {'bootstrap': False, 'max_features': 4, 'n_estimators': 10},\n", + " {'bootstrap': False, 'max_features': 4, 'n_estimators': 12},\n", + " {'bootstrap': False, 'max_features': 4, 'n_estimators': 14},\n", + " {'bootstrap': False, 'max_features': 5, 'n_estimators': 3},\n", + " {'bootstrap': False, 'max_features': 5, 'n_estimators': 10},\n", + " {'bootstrap': False, 'max_features': 5, 'n_estimators': 12},\n", + " {'bootstrap': False, 'max_features': 5, 'n_estimators': 14},\n", + " {'bootstrap': False, 'max_features': 6, 'n_estimators': 3},\n", + " {'bootstrap': False, 'max_features': 6, 'n_estimators': 10},\n", + " {'bootstrap': False, 'max_features': 6, 'n_estimators': 12},\n", + " {'bootstrap': False, 'max_features': 6, 'n_estimators': 14}]" + ] + }, + "execution_count": 66, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -1008,7 +990,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 65, "metadata": {}, "outputs": [ { @@ -1022,12 +1004,12 @@ " min_weight_fraction_leaf=0.0, n_estimators=10, n_jobs=1,\n", " oob_score=False, random_state=None, verbose=0, warm_start=False),\n", " fit_params=None, iid=True, n_jobs=1,\n", - " param_grid=[{'n_estimators': [3, 10, 12, 14], 'max_features': [1, 2, 3, 4, 5, 6]}, {'bootstrap': [False]}],\n", + " param_grid=[{'n_estimators': [3, 10, 12, 14], 'max_features': [1, 2, 3, 4, 5, 6], 'bootstrap': [False]}],\n", " pre_dispatch='2*n_jobs', refit=True, return_train_score='warn',\n", " scoring='neg_mean_squared_error', verbose=0)" ] }, - "execution_count": 32, + "execution_count": 65, "metadata": {}, "output_type": "execute_result" } @@ -1038,36 +1020,414 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "bootstrap False\n", + "max_features 1\n", + "n_estimators 3\n", + "bootstrap False\n", + "max_features 1\n", + "n_estimators 10\n", + "bootstrap False\n", + "max_features 1\n", + "n_estimators 12\n", + "bootstrap False\n", + "max_features 1\n", + "n_estimators 14\n", + "bootstrap False\n", + "max_features 2\n", + "n_estimators 3\n", + "bootstrap False\n", + "max_features 2\n", + "n_estimators 10\n", + "bootstrap False\n", + "max_features 2\n", + "n_estimators 12\n", + "bootstrap False\n", + "max_features 2\n", + "n_estimators 14\n", + "bootstrap False\n", + "max_features 3\n", + "n_estimators 3\n", + "bootstrap False\n", + "max_features 3\n", + "n_estimators 10\n", + "bootstrap False\n", + "max_features 3\n", + "n_estimators 12\n", + "bootstrap False\n", + "max_features 3\n", + "n_estimators 14\n", + "bootstrap False\n", + "max_features 4\n", + "n_estimators 3\n", + "bootstrap False\n", + "max_features 4\n", + "n_estimators 10\n", + "bootstrap False\n", + "max_features 4\n", + "n_estimators 12\n", + "bootstrap False\n", + "max_features 4\n", + "n_estimators 14\n", + "bootstrap False\n", + "max_features 5\n", + "n_estimators 3\n", + "bootstrap False\n", + "max_features 5\n", + "n_estimators 10\n", + "bootstrap False\n", + "max_features 5\n", + "n_estimators 12\n", + "bootstrap False\n", + "max_features 5\n", + "n_estimators 14\n", + "bootstrap False\n", + "max_features 6\n", + "n_estimators 3\n", + "bootstrap False\n", + "max_features 6\n", + "n_estimators 10\n", + "bootstrap False\n", + "max_features 6\n", + "n_estimators 12\n", + "bootstrap False\n", + "max_features 6\n", + "n_estimators 14\n" + ] + } + ], + "source": [ + "for param_dict in grid_search.cv_results_['params']:\n", + " for key in param_dict:\n", + " print(key, param_dict[key])\n", + " \n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 76, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'max_features': 1, 'n_estimators': 14}" + "[{'bootstrap': False, 'max_features': 1, 'n_estimators': 3},\n", + " {'bootstrap': False, 'max_features': 1, 'n_estimators': 10},\n", + " {'bootstrap': False, 'max_features': 1, 'n_estimators': 12},\n", + " {'bootstrap': False, 'max_features': 1, 'n_estimators': 14},\n", + " {'bootstrap': False, 'max_features': 2, 'n_estimators': 3},\n", + " {'bootstrap': False, 'max_features': 2, 'n_estimators': 10},\n", + " {'bootstrap': False, 'max_features': 2, 'n_estimators': 12},\n", + " {'bootstrap': False, 'max_features': 2, 'n_estimators': 14},\n", + " {'bootstrap': False, 'max_features': 3, 'n_estimators': 3},\n", + " {'bootstrap': False, 'max_features': 3, 'n_estimators': 10},\n", + " {'bootstrap': False, 'max_features': 3, 'n_estimators': 12},\n", + " {'bootstrap': False, 'max_features': 3, 'n_estimators': 14},\n", + " {'bootstrap': False, 'max_features': 4, 'n_estimators': 3},\n", + " {'bootstrap': False, 'max_features': 4, 'n_estimators': 10},\n", + " {'bootstrap': False, 'max_features': 4, 'n_estimators': 12},\n", + " {'bootstrap': False, 'max_features': 4, 'n_estimators': 14},\n", + " {'bootstrap': False, 'max_features': 5, 'n_estimators': 3},\n", + " {'bootstrap': False, 'max_features': 5, 'n_estimators': 10},\n", + " {'bootstrap': False, 'max_features': 5, 'n_estimators': 12},\n", + " {'bootstrap': False, 'max_features': 5, 'n_estimators': 14},\n", + " {'bootstrap': False, 'max_features': 6, 'n_estimators': 3},\n", + " {'bootstrap': False, 'max_features': 6, 'n_estimators': 10},\n", + " {'bootstrap': False, 'max_features': 6, 'n_estimators': 12},\n", + " {'bootstrap': False, 'max_features': 6, 'n_estimators': 14}]" ] }, - "execution_count": 33, + "execution_count": 76, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "grid_search.best_params_" + "#print(grid_search.cv_results_)\n", + "grid_search.cv_results_['params']" ] }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 78, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/conda/lib/python3.6/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('split0_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n", + " warnings.warn(*warn_args, **warn_kwargs)\n", + "/opt/conda/lib/python3.6/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('split1_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n", + " warnings.warn(*warn_args, **warn_kwargs)\n", + "/opt/conda/lib/python3.6/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('split2_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n", + " warnings.warn(*warn_args, **warn_kwargs)\n", + "/opt/conda/lib/python3.6/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('split3_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n", + " warnings.warn(*warn_args, **warn_kwargs)\n", + "/opt/conda/lib/python3.6/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('split4_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n", + " warnings.warn(*warn_args, **warn_kwargs)\n", + "/opt/conda/lib/python3.6/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('mean_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n", + " warnings.warn(*warn_args, **warn_kwargs)\n", + "/opt/conda/lib/python3.6/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('std_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n", + " warnings.warn(*warn_args, **warn_kwargs)\n" + ] + }, + { + "data": { + "text/plain": [ + "{'mean_fit_time': array([ 0.02670035, 0.07218471, 0.0794826 , 0.09442725, 0.03206363,\n", + " 0.09923239, 0.11128678, 0.13725066, 0.04301653, 0.13199544,\n", + " 0.17645354, 0.19107656, 0.05362077, 0.16885095, 0.21285925,\n", + " 0.23253999, 0.06591096, 0.21372252, 0.23496523, 0.26321697,\n", + " 0.06686144, 0.22868457, 0.28511877, 0.33475099]),\n", + " 'std_fit_time': array([ 0.0027579 , 0.00708657, 0.00544732, 0.00600505, 0.00313444,\n", + " 0.00198584, 0.0021343 , 0.00471558, 0.00172394, 0.00476192,\n", + " 0.01372714, 0.01207889, 0.00258355, 0.00605446, 0.00831972,\n", + " 0.00932508, 0.00374727, 0.0087858 , 0.00829984, 0.00423302,\n", + " 0.00184826, 0.00382915, 0.02120295, 0.01036391]),\n", + " 'mean_score_time': array([ 0.00182452, 0.00407996, 0.00453982, 0.00528498, 0.00177431,\n", + " 0.00419474, 0.00507927, 0.00540996, 0.00154238, 0.00390286,\n", + " 0.00559421, 0.005477 , 0.00178895, 0.0042151 , 0.00505462,\n", + " 0.00534844, 0.00163779, 0.00430694, 0.00482154, 0.00492797,\n", + " 0.00133824, 0.0037324 , 0.00462227, 0.00533772]),\n", + " 'std_score_time': array([ 2.85087678e-04, 4.44251950e-04, 8.28719934e-05,\n", + " 3.31613740e-04, 2.64974638e-04, 4.98963847e-04,\n", + " 8.44094708e-04, 3.86222350e-04, 4.98128023e-05,\n", + " 1.73863773e-04, 5.80196938e-04, 5.62661409e-04,\n", + " 3.03510076e-04, 3.24203004e-04, 4.87569144e-04,\n", + " 3.82854244e-04, 7.05502451e-05, 8.13061547e-04,\n", + " 1.00646838e-03, 7.94383515e-05, 9.54047369e-05,\n", + " 2.45328589e-04, 4.12959738e-04, 4.63507548e-04]),\n", + " 'param_bootstrap': masked_array(data = [False False False False False False False False False False False False\n", + " False False False False False False False False False False False False],\n", + " mask = [False False False False False False False False False False False False\n", + " False False False False False False False False False False False False],\n", + " fill_value = ?),\n", + " 'param_max_features': masked_array(data = [1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 6 6 6 6],\n", + " mask = [False False False False False False False False False False False False\n", + " False False False False False False False False False False False False],\n", + " fill_value = ?),\n", + " 'param_n_estimators': masked_array(data = [3 10 12 14 3 10 12 14 3 10 12 14 3 10 12 14 3 10 12 14 3 10 12 14],\n", + " mask = [False False False False False False False False False False False False\n", + " False False False False False False False False False False False False],\n", + " fill_value = ?),\n", + " 'params': [{'bootstrap': False, 'max_features': 1, 'n_estimators': 3},\n", + " {'bootstrap': False, 'max_features': 1, 'n_estimators': 10},\n", + " {'bootstrap': False, 'max_features': 1, 'n_estimators': 12},\n", + " {'bootstrap': False, 'max_features': 1, 'n_estimators': 14},\n", + " {'bootstrap': False, 'max_features': 2, 'n_estimators': 3},\n", + " {'bootstrap': False, 'max_features': 2, 'n_estimators': 10},\n", + " {'bootstrap': False, 'max_features': 2, 'n_estimators': 12},\n", + " {'bootstrap': False, 'max_features': 2, 'n_estimators': 14},\n", + " {'bootstrap': False, 'max_features': 3, 'n_estimators': 3},\n", + " {'bootstrap': False, 'max_features': 3, 'n_estimators': 10},\n", + " {'bootstrap': False, 'max_features': 3, 'n_estimators': 12},\n", + " {'bootstrap': False, 'max_features': 3, 'n_estimators': 14},\n", + " {'bootstrap': False, 'max_features': 4, 'n_estimators': 3},\n", + " {'bootstrap': False, 'max_features': 4, 'n_estimators': 10},\n", + " {'bootstrap': False, 'max_features': 4, 'n_estimators': 12},\n", + " {'bootstrap': False, 'max_features': 4, 'n_estimators': 14},\n", + " {'bootstrap': False, 'max_features': 5, 'n_estimators': 3},\n", + " {'bootstrap': False, 'max_features': 5, 'n_estimators': 10},\n", + " {'bootstrap': False, 'max_features': 5, 'n_estimators': 12},\n", + " {'bootstrap': False, 'max_features': 5, 'n_estimators': 14},\n", + " {'bootstrap': False, 'max_features': 6, 'n_estimators': 3},\n", + " {'bootstrap': False, 'max_features': 6, 'n_estimators': 10},\n", + " {'bootstrap': False, 'max_features': 6, 'n_estimators': 12},\n", + " {'bootstrap': False, 'max_features': 6, 'n_estimators': 14}],\n", + " 'split0_test_score': array([ -3.73210453e+11, -3.75617421e+11, -3.53000648e+11,\n", + " -3.48841678e+11, -3.89588473e+11, -3.50343802e+11,\n", + " -3.38603327e+11, -3.36419514e+11, -4.35346491e+11,\n", + " -3.19536464e+11, -3.37024631e+11, -3.29556892e+11,\n", + " -4.12524444e+11, -3.31318687e+11, -3.43613585e+11,\n", + " -3.31097418e+11, -4.08422691e+11, -3.67054186e+11,\n", + " -3.69188263e+11, -3.73568342e+11, -5.09776978e+11,\n", + " -5.07857455e+11, -5.16109617e+11, -5.03238538e+11]),\n", + " 'split1_test_score': array([ -4.85921454e+11, -4.26055299e+11, -4.37122637e+11,\n", + " -3.57437502e+11, -4.85473380e+11, -4.07036025e+11,\n", + " -3.85138089e+11, -3.87314074e+11, -4.39112367e+11,\n", + " -3.46495062e+11, -3.70806046e+11, -4.14826225e+11,\n", + " -4.54859564e+11, -3.76532174e+11, -3.68583079e+11,\n", + " -3.86200349e+11, -4.99693692e+11, -3.74434248e+11,\n", + " -4.07055253e+11, -3.95715275e+11, -5.77531645e+11,\n", + " -5.70379520e+11, -5.75627608e+11, -5.74490267e+11]),\n", + " 'split2_test_score': array([ -3.53828995e+11, -3.04408880e+11, -2.89291056e+11,\n", + " -2.66893217e+11, -3.51380273e+11, -2.72608128e+11,\n", + " -3.02995686e+11, -2.88950680e+11, -3.31649826e+11,\n", + " -2.70944599e+11, -2.80415236e+11, -2.55037934e+11,\n", + " -3.80568173e+11, -2.84812762e+11, -2.85750408e+11,\n", + " -2.76453429e+11, -3.47291223e+11, -3.66580438e+11,\n", + " -2.92836064e+11, -2.89943075e+11, -4.97099654e+11,\n", + " -4.88324636e+11, -4.85433095e+11, -4.86742451e+11]),\n", + " 'split3_test_score': array([ -3.39816242e+11, -2.83434114e+11, -2.68707981e+11,\n", + " -2.82834452e+11, -3.69059905e+11, -3.10539503e+11,\n", + " -3.04013156e+11, -2.72275162e+11, -3.69934651e+11,\n", + " -2.88188104e+11, -2.82239079e+11, -3.07033906e+11,\n", + " -3.35689531e+11, -2.86390315e+11, -2.97174218e+11,\n", + " -3.12073956e+11, -3.83696120e+11, -3.01340113e+11,\n", + " -2.79114192e+11, -2.77464461e+11, -4.07529908e+11,\n", + " -4.03536456e+11, -4.00890599e+11, -4.08953559e+11]),\n", + " 'split4_test_score': array([ -3.94472822e+11, -3.01609342e+11, -2.82826344e+11,\n", + " -3.12078007e+11, -4.22748129e+11, -2.71236224e+11,\n", + " -2.89100625e+11, -3.02856998e+11, -3.74722610e+11,\n", + " -3.04669627e+11, -2.96513114e+11, -2.83199011e+11,\n", + " -4.26019631e+11, -3.65731558e+11, -3.10472419e+11,\n", + " -3.41221055e+11, -4.31300989e+11, -3.99737860e+11,\n", + " -3.86339668e+11, -3.81359891e+11, -5.84484502e+11,\n", + " -5.71717919e+11, -5.87681309e+11, -5.79422226e+11]),\n", + " 'mean_test_score': array([ -3.89447945e+11, -3.38229726e+11, -3.26193114e+11,\n", + " -3.13621413e+11, -4.03648259e+11, -3.22356266e+11,\n", + " -3.23972022e+11, -3.17565663e+11, -3.90158887e+11,\n", + " -3.05968482e+11, -3.13402600e+11, -3.17932259e+11,\n", + " -4.01933604e+11, -3.28957397e+11, -3.21121578e+11,\n", + " -3.29409454e+11, -4.14080230e+11, -3.61830028e+11,\n", + " -3.46909497e+11, -3.43613986e+11, -5.15283843e+11,\n", + " -5.08363134e+11, -5.13148819e+11, -5.10568484e+11]),\n", + " 'std_test_score': array([ 5.16266300e+10, 5.40327175e+10, 6.25603187e+10,\n", + " 3.54797081e+10, 4.72966041e+10, 5.13430957e+10,\n", + " 3.46673258e+10, 4.07575192e+10, 4.12533288e+10,\n", + " 2.59641526e+10, 3.52060003e+10, 5.44107709e+10,\n", + " 4.08343925e+10, 3.84214836e+10, 3.06470604e+10,\n", + " 3.59766998e+10, 5.10696945e+10, 3.25702517e+10,\n", + " 5.13563692e+10, 4.95820595e+10, 6.42383656e+10,\n", + " 6.20449245e+10, 6.75790690e+10, 6.28830243e+10]),\n", + " 'rank_test_score': array([16, 12, 9, 3, 19, 7, 8, 4, 17, 1, 2, 5, 18, 10, 6, 11, 20,\n", + " 15, 14, 13, 24, 21, 23, 22], dtype=int32),\n", + " 'split0_train_score': array([ -1.39474571e+09, -1.39557176e+09, -1.39474593e+09,\n", + " -1.39488215e+09, -1.39492085e+09, -1.39478511e+09,\n", + " -1.39516107e+09, -1.39478041e+09, -1.39474571e+09,\n", + " -1.39477849e+09, -1.39496611e+09, -1.39479348e+09,\n", + " -1.39509599e+09, -1.39474571e+09, -1.39531606e+09,\n", + " -1.39474571e+09, -1.39474571e+09, -1.39474571e+09,\n", + " -1.39474571e+09, -1.39474973e+09, -1.39474571e+09,\n", + " -1.39474571e+09, -1.39474571e+09, -1.39474571e+09]),\n", + " 'split1_train_score': array([ -3.71654798e+09, -3.71667824e+09, -3.71682614e+09,\n", + " -3.71659435e+09, -3.72530378e+09, -3.71657083e+09,\n", + " -3.71657912e+09, -3.71677602e+09, -3.71709522e+09,\n", + " -3.71654924e+09, -3.71654957e+09, -3.71656658e+09,\n", + " -3.71655148e+09, -3.71656124e+09, -3.71655148e+09,\n", + " -3.71674498e+09, -3.71654798e+09, -3.71655082e+09,\n", + " -3.71654820e+09, -3.71654898e+09, -3.71654798e+09,\n", + " -3.71654798e+09, -3.71654798e+09, -3.71654798e+09]),\n", + " 'split2_train_score': array([ -3.83041187e+09, -3.83046681e+09, -3.83129961e+09,\n", + " -3.83111138e+09, -3.83041187e+09, -3.83054584e+09,\n", + " -3.83076155e+09, -3.83104134e+09, -3.83041187e+09,\n", + " -3.83041344e+09, -3.83042318e+09, -3.83041776e+09,\n", + " -3.83041187e+09, -3.83041187e+09, -3.83041187e+09,\n", + " -3.83041187e+09, -3.83041187e+09, -3.83041187e+09,\n", + " -3.83041187e+09, -3.83041187e+09, -3.83041187e+09,\n", + " -3.83041187e+09, -3.83041187e+09, -3.83041187e+09]),\n", + " 'split3_train_score': array([ -3.82759258e+09, -3.82757983e+09, -3.82763665e+09,\n", + " -3.82771829e+09, -3.83186892e+09, -3.82777968e+09,\n", + " -3.82758574e+09, -3.82757857e+09, -3.82757857e+09,\n", + " -3.82757857e+09, -3.82757857e+09, -3.82757857e+09,\n", + " -3.82757857e+09, -3.82757857e+09, -3.82757857e+09,\n", + " -3.82757857e+09, -3.82757857e+09, -3.82757857e+09,\n", + " -3.82757857e+09, -3.82757857e+09, -3.82757857e+09,\n", + " -3.82757857e+09, -3.82757857e+09, -3.82757857e+09]),\n", + " 'split4_train_score': array([ -1.80517362e+09, -1.80562566e+09, -1.80531850e+09,\n", + " -1.80520222e+09, -1.80517362e+09, -1.80520514e+09,\n", + " -1.80536271e+09, -1.80517430e+09, -1.80517712e+09,\n", + " -1.80517393e+09, -1.80517362e+09, -1.80519409e+09,\n", + " -1.80517362e+09, -1.80517393e+09, -1.80517383e+09,\n", + " -1.80517510e+09, -1.80517362e+09, -1.80517362e+09,\n", + " -1.80517449e+09, -1.80517378e+09, -1.80517362e+09,\n", + " -1.80517362e+09, -1.80517362e+09, -1.80517362e+09]),\n", + " 'mean_train_score': array([ -2.91489435e+09, -2.91518446e+09, -2.91516536e+09,\n", + " -2.91510168e+09, -2.91753581e+09, -2.91497732e+09,\n", + " -2.91509004e+09, -2.91507013e+09, -2.91500170e+09,\n", + " -2.91489874e+09, -2.91493821e+09, -2.91491010e+09,\n", + " -2.91496231e+09, -2.91489426e+09, -2.91500636e+09,\n", + " -2.91493125e+09, -2.91489155e+09, -2.91489212e+09,\n", + " -2.91489177e+09, -2.91489259e+09, -2.91489155e+09,\n", + " -2.91489155e+09, -2.91489155e+09, -2.91489155e+09]),\n", + " 'std_train_score': array([ 1.08223574e+09, 1.08193741e+09, 1.08240484e+09,\n", + " 1.08233799e+09, 1.08420872e+09, 1.08227581e+09,\n", + " 1.08214290e+09, 1.08236379e+09, 1.08231375e+09,\n", + " 1.08222455e+09, 1.08217361e+09, 1.08221951e+09,\n", + " 1.08213549e+09, 1.08223527e+09, 1.08207363e+09,\n", + " 1.08226226e+09, 1.08223337e+09, 1.08223379e+09,\n", + " 1.08223323e+09, 1.08223236e+09, 1.08223337e+09,\n", + " 1.08223337e+09, 1.08223337e+09, 1.08223337e+09])}" + ] + }, + "execution_count": 78, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "grid_search.cv_results_" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "print()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, "metadata": {}, "outputs": [], + "source": [ + "grid_search.best_params_" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [ + { + "ename": "NotFittedError", + "evalue": "This GridSearchCV instance is not fitted yet. Call 'fit' with appropriate arguments before using this method.", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNotFittedError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0my_pred\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgrid_search\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX_test\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/sklearn/utils/metaestimators.py\u001b[0m in \u001b[0;36m\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 113\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 114\u001b[0m \u001b[0;31m# lambda, but not partial, allows help() to work with update_wrapper\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 115\u001b[0;31m \u001b[0mout\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 116\u001b[0m \u001b[0;31m# update the docstring of the returned function\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 117\u001b[0m \u001b[0mupdate_wrapper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mout\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfn\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/sklearn/model_selection/_search.py\u001b[0m in \u001b[0;36mpredict\u001b[0;34m(self, X)\u001b[0m\n\u001b[1;32m 465\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 466\u001b[0m \"\"\"\n\u001b[0;32m--> 467\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_check_is_fitted\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'predict'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 468\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbest_estimator_\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 469\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/sklearn/model_selection/_search.py\u001b[0m in \u001b[0;36m_check_is_fitted\u001b[0;34m(self, method_name)\u001b[0m\n\u001b[1;32m 449\u001b[0m % (type(self).__name__, method_name))\n\u001b[1;32m 450\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 451\u001b[0;31m \u001b[0mcheck_is_fitted\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'best_estimator_'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 452\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 453\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mif_delegate_has_method\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdelegate\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'best_estimator_'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'estimator'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/sklearn/utils/validation.py\u001b[0m in \u001b[0;36mcheck_is_fitted\u001b[0;34m(estimator, attributes, msg, all_or_any)\u001b[0m\n\u001b[1;32m 766\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 767\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mall_or_any\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mhasattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mestimator\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mattr\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mattr\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mattributes\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 768\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mNotFittedError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmsg\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m'name'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mestimator\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__name__\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 769\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 770\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mNotFittedError\u001b[0m: This GridSearchCV instance is not fitted yet. Call 'fit' with appropriate arguments before using this method." + ] + } + ], "source": [ "y_pred = grid_search.predict(X_test)" ] }, { "cell_type": "code", - "execution_count": 35, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -1076,16 +1436,16 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "-285759695700.31354" + "-387803891893.90759" ] }, - "execution_count": 36, + "execution_count": 50, "metadata": {}, "output_type": "execute_result" } @@ -1096,34 +1456,73 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 55, "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "Linear Regression coefficient of determination (R squared): 285759695700.3135\n" + "ename": "ValueError", + "evalue": "Mix type of y not allowed, got types {'multiclass', 'continuous'}", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0mclassification_report\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my_test\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_pred\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/sklearn/metrics/classification.py\u001b[0m in \u001b[0;36mclassification_report\u001b[0;34m(y_true, y_pred, labels, target_names, sample_weight, digits)\u001b[0m\n\u001b[1;32m 1419\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1420\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlabels\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1421\u001b[0;31m \u001b[0mlabels\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0munique_labels\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my_true\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_pred\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1422\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1423\u001b[0m \u001b[0mlabels\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlabels\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/sklearn/utils/multiclass.py\u001b[0m in \u001b[0;36munique_labels\u001b[0;34m(*ys)\u001b[0m\n\u001b[1;32m 80\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 81\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mys_types\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 82\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Mix type of y not allowed, got types %s\"\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mys_types\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 83\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 84\u001b[0m \u001b[0mlabel_type\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mys_types\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mValueError\u001b[0m: Mix type of y not allowed, got types {'multiclass', 'continuous'}" ] } ], "source": [ - "print('Linear Regression coefficient of determination (R squared): %.4f' % (0 - grid_search.score(X_test, y_test))) # since score is negative" + "from sklearn.metrics import classification_report\n", + "\n", + "\n", + "classification_report(y_test, y_pred)" ] }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 51, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Linear Regression RMSE: 515079.9922\n" + "Linear Regression coefficient of determination (R squared): 387803891893.9076\n" ] } ], + "source": [ + "print('Linear Regression coefficient of determination (R squared): %.4f' % (0 - grid_search.score(X_test, y_test))) # since score is negative" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "from sklearn.metrics import mean_squared_error\n", "lin_mse = mean_squared_error(y_pred, y_test)\n", @@ -1136,7 +1535,12 @@ "execution_count": null, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "print('DOTSCIENCE_PARAMETERS=' + json.dumps({\"features\": \", \".join(sorted(features))}))\n", + "\n", + "\n", + "print('DOTSCIENCE_SUMMARY=' + json.dumps({\"lin_rmse\": lin_rmse, \"regressor_score\": regressor_score}))" + ] } ], "metadata": { @@ -1155,7 +1559,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.5" + "version": "3.6.3" } }, "nbformat": 4,