{ "cells": [ { "cell_type": "markdown", "metadata": { "tags": [] }, "source": [ "# Feature Engineering\n", "# Klassifikation\n", "# Regression\n", "# Validierung und mehr\n", "## Sampling und Resampling\n", "## Validierungstechniken\n", "## Grid Search und Random Search" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import sys\n", "sys.path.append('./')" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2020-04-15T20:53:02.218161Z", "start_time": "2020-04-15T20:53:02.079407Z" } }, "outputs": [], "source": [ "## preparation\n", "\n", "## import libraries\n", "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", "sns.set()\n", "%matplotlib inline\n", "\n", "## load data\n", "datapath = '../3_data'\n", "from os import chdir\n", "chdir(datapath)\n", "\n", "from bfh_cas_pml import prep_data\n", "X_train, X_test, y_train, y_test = prep_data(\n", " 'bank_data_prep.csv', 'y', seed=1234)\n", "#X_demo, y_demo = prep_demo_data('demo_data_class.csv', 'y')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Rekapitulation Parameter Tuning" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2020-04-14T21:29:35.637031Z", "start_time": "2020-04-14T21:29:34.343926Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "## recap parameter tuning for DecisionTreeClassifier in 2.2.1.5\n", "## min_impurity_decrease from 0 to 0.001 in steps 0.0001\n", "\n", "from sklearn.tree import DecisionTreeClassifier\n", "scores = []\n", "params = np.arange(0, 0.001, 0.0001) \n", "for param in params:\n", " model = DecisionTreeClassifier(min_impurity_decrease = param)\n", " model.fit(X_train, y_train) \n", " score = model.score(X_test, y_test)\n", " scores.append(score)\n", "\n", "fig = sns.lineplot(x=params, y=scores)\n", "plt.scatter(x=params[scores.index(max(scores))], y=max(scores), color=\"black\")\n", "plt.xlabel('min_impurity_decrease')\n", "plt.ylabel('accuracy');" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2020-04-14T21:29:36.846350Z", "start_time": "2020-04-14T21:29:35.641361Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "## and another interesting parameter: min_samples_leaf\n", "scores = []\n", "params = range(1, 41, 5) \n", "for param in params:\n", " model = DecisionTreeClassifier(min_samples_leaf = param)\n", " model.fit(X_train, y_train) \n", " score = model.score(X_test, y_test)\n", " scores.append(score)\n", "\n", "fig = sns.lineplot(x=params, y=scores)\n", "plt.scatter(x=params[scores.index(max(scores))], y=max(scores), color=\"black\")\n", "plt.xlabel('min_samples_leaf')\n", "plt.ylabel('accuracy');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Grid Search mit CV\n", "#### Mit einem Parameter" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "{'min_impurity_decrease': array([0. , 0.0001, 0.0002, 0.0003, 0.0004, 0.0005, 0.0006, 0.0007,\n", " 0.0008, 0.0009])}\n" ] } ], "source": [ "## construction of a parameter grid\n", "params = {'min_impurity_decrease': np.arange(0, 0.001, 0.0001)}\n", "print(type(params))\n", "print(params)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2020-04-14T21:29:43.722800Z", "start_time": "2020-04-14T21:29:36.854230Z" }, "scrolled": true }, "outputs": [], "source": [ "## using the defined parameter grid\n", "from sklearn.model_selection import GridSearchCV\n", "params = {'min_impurity_decrease': np.arange(0, 0.001, 0.0001)}\n", "model = DecisionTreeClassifier(random_state=1234)\n", "gscv = GridSearchCV(model, param_grid=params, cv=10)\n", "gscv.fit(X_train, y_train)\n", "cv_results = pd.DataFrame(gscv.cv_results_)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2020-04-14T21:29:43.722800Z", "start_time": "2020-04-14T21:29:36.854230Z" }, "scrolled": true }, "outputs": [ { "data": { "image/png": "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rl3OoUOHnIcfftgZOnSoU1NTc9H2o0ePdr7zne84H330kfMf//EfTn5+vvP4449H7v/Tn/7kXH/99c6//uu/Op988omzaNEi54YbbjDb8TyGV7mxHsuXL3fy8vKcrVu3OsXFxc7GjRudnJwc59VXX3W8zo31qG/BggXOdddd5/zwhz90WgM31uPo0aPOTTfd5PzoRz9yPvvsM+ff/u3fnNzcXOeFF15wWgM31kSPoe9RGzZscD7//HNn3bp1TlZWlvP73//eaW08GV70xaXfZC+//HJkX3l5udO7d2/n9ddfb9B+//795o2y/ovonXfecXr16uWUlJSYz/WFO3369KjHffe73zXf2PE6hle5tR6DBg0yAaa+J554wvne974Xt3N3I7fWI+ztt992brnlFueee+5pFeHFrfXQr73+IA2FQpE2P//5z51HH33U8Tq31uQnP/mJc//990cdY8SIESbstzaeHDY6fPiwVFRUyMCBAyP7MjIyJCcnR/bu3dug/b59++Sqq66Snj17RvZpl11CQoK8//77pvtw//79UcdT/fv3jxwvHsfwKrfW45lnnpH7778/6hg+n08CgYB4mRvrEXb27Fl54oknZMGCBZKZmSmtgVvr8e6775rhCd0XNm3aNFmxYoV4nVtrcuWVV8rHH38s7733nnY8yO7du+XTTz81w1CtTaJ4UElJifnYpUuXqP0dO3aM3FffqVOnGrRNSkqS9u3by8mTJ80Ps8rKSuncufNXHi8ex/AqN9ZDQ8qFbyQnTpww48mjRo0SL3NjPcKeeuopyc/Pl9tvv13Wrl0rrYEb63H+/Hk5ffq0pKeny5NPPilvv/22+eGt8zQeeeQR8fv94mVurIn6/ve/b+YhjR071tQgGAzKo48+Kvfee6+0Np7seQlPcNLC15ecnCw1NTUXbX9h2/rtq6urL3m8eBzDq9xYjwt98cUXZkKe/mYzadIk8TK31mPjxo3mt0jteWlN3FgPDS9KeyevvvpqefHFF2XChAmyatUqef7558Xr3FgTpSFGJ/XOnz9ffvOb35gJ7RryN23aJK2NJ3teUlJSIisWwttKXwCpqakXba9tL6Ttr7jiCvPiCR/vwvvDx4vHMbzKjfWo7+jRozJx4kTzW8xLL71kfsP0MjfWQ2uwePFiWbNmTYP6eJ0b65GY+H8/Gm655RZ57LHHzHZ2drYZ1vvlL38p06dPjxpO8ho31kRNnTrVDOU99NBDkZqUl5eb752RI0eaHuXWwpNnGu56Ky0tjdqvn3fq1KlBe+3Ku7CtvojKyspMt5522+mL568dLx7H8Co31iNMx5J1mEjfQPQ3/2uuuUa8zo312LZtm5ljMH78eMnNzTU3nQPw+uuvm20vc2M9dL6R/sC97rrrotpce+21ZvhDQ4yXubEm+jXXkH/jjTdGtdFl3NpGb62JJ8NLVlaWtG3b1kxmCtMxx4MHD5r18xfSfTruWFxcHNm3Z88e8/Hb3/62+Q3j5ptvjuwL0+Pn5eXF7Rhe5cZ6KB071q5wfUN++eWXPR8i3VyP0aNHy5tvvmmuWRG+3XDDDWbui9evY+HGeuh8Cj3GBx98EHWMI0eOmJ5J/WHsZW6sSbt27cwvWVqDi9WkQ4cO0qo4HrV06VKnX79+zu9+97uoNfq1tbVOXV2dU1pa6lRVVZm2uhRw1KhRZgnaBx98YNbS6/r6uXPnRi1Zy87OdoqKisxStmeeecYsmwsva4vHMbzMbfX485//7Nx5553OkCFDzPUS9P8P386cOeN4ndvqcTF6zYvWsFTarfV47733zDEKCwvNdZD0ekjf/va3zfVPWgM31uS5554zS7hfffVV876lH/Xz1atXO62NZ8OLvrieffZZZ8CAAU6fPn2cgoIC59ixY+Y+/ajr6X/zm99E2n/xxRfO1KlTTVu9MNGPf/xjp7q6OuqY+kLRH3g33nijeYHpRYTqi8cxvMpt9Xj//ffN/3mxm75heJ3b6tHaw4tb66HX3NHH6sXVBg8e7KxatcoJBoNOa+DGmuhz0vDzD//wD+YCgnotpPXr10ddi6e1SNB/Wrr3BwAAoFXPeQEAAN5FeAEAAFYhvAAAAKsQXgAAgFUILwAAwCqEFwAAYBXCCwAAsArhBQAAWIXwAgAArEJ4AQAAViG8AAAAscn/A00FmYz/gPfLAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.errorbar(\n", " 'param_min_impurity_decrease', \n", " 'mean_test_score', \n", " 'std_test_score', \n", " data = cv_results, linestyle='None');" ] }, { "cell_type": "code", "execution_count": 8, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
mean_fit_timestd_fit_timemean_score_timestd_score_timeparam_min_impurity_decreaseparamssplit0_test_scoresplit1_test_scoresplit2_test_scoresplit3_test_scoresplit4_test_scoresplit5_test_scoresplit6_test_scoresplit7_test_scoresplit8_test_scoresplit9_test_scoremean_test_scorestd_test_scorerank_test_score
00.0182370.0005730.0007780.0000290.0000{'min_impurity_decrease': 0.0}0.8115500.8206690.8282670.8371390.8371390.8143070.8508370.8523590.8417050.8310500.8325020.01337310
10.0156620.0003870.0007470.0000070.0001{'min_impurity_decrease': 0.0001}0.8313070.8221880.8556230.8736680.8508370.8417050.8538810.8691020.8447490.8432270.8486290.0148969
20.0136810.0003540.0007340.0000120.0002{'min_impurity_decrease': 0.0002}0.8510640.8586630.8738600.8858450.8660580.8691020.8614920.8797560.8569250.8554030.8658170.0107058
30.0120990.0002550.0007080.0000100.0003{'min_impurity_decrease': 0.00030000000000000003}0.8662610.8632220.8875380.8904110.8782340.8751900.8660580.9025880.8706240.8599700.8760100.0130246
40.0112960.0002030.0007020.0000170.0004{'min_impurity_decrease': 0.0004}0.8738600.8708210.8829790.8934550.8691020.8828010.8706240.8858450.8721460.8706240.8772260.0079574
50.0107920.0003560.0007120.0000420.0005{'min_impurity_decrease': 0.0005}0.8769000.8693010.8829790.8934550.8675800.8812790.8843230.8858450.8736680.8721460.8787470.0078031
60.0104330.0002280.0007050.0000130.0006{'min_impurity_decrease': 0.0006000000000000001}0.8769000.8677810.8829790.8904110.8706240.8843230.8812790.8812790.8736680.8721460.8781390.0067322
70.0101600.0001690.0006950.0000120.0007{'min_impurity_decrease': 0.0007}0.8769000.8662610.8860180.8904110.8645360.8888890.8782340.8873670.8691020.8675800.8775300.0096463
80.0100840.0001800.0007050.0000220.0008{'min_impurity_decrease': 0.0008}0.8723400.8662610.8860180.8919330.8645360.8888890.8767120.8828010.8706240.8675800.8767690.0094905
90.0098840.0002870.0007000.0000140.0009{'min_impurity_decrease': 0.0009000000000000001}0.8723400.8662610.8860180.8873670.8645360.8888890.8797560.8797560.8554030.8736680.8754000.0104397
\n", "
" ], "text/plain": [ " mean_fit_time std_fit_time mean_score_time std_score_time \\\n", "0 0.018237 0.000573 0.000778 0.000029 \n", "1 0.015662 0.000387 0.000747 0.000007 \n", "2 0.013681 0.000354 0.000734 0.000012 \n", "3 0.012099 0.000255 0.000708 0.000010 \n", "4 0.011296 0.000203 0.000702 0.000017 \n", "5 0.010792 0.000356 0.000712 0.000042 \n", "6 0.010433 0.000228 0.000705 0.000013 \n", "7 0.010160 0.000169 0.000695 0.000012 \n", "8 0.010084 0.000180 0.000705 0.000022 \n", "9 0.009884 0.000287 0.000700 0.000014 \n", "\n", " param_min_impurity_decrease \\\n", "0 0.0000 \n", "1 0.0001 \n", "2 0.0002 \n", "3 0.0003 \n", "4 0.0004 \n", "5 0.0005 \n", "6 0.0006 \n", "7 0.0007 \n", "8 0.0008 \n", "9 0.0009 \n", "\n", " params split0_test_score \\\n", "0 {'min_impurity_decrease': 0.0} 0.811550 \n", "1 {'min_impurity_decrease': 0.0001} 0.831307 \n", "2 {'min_impurity_decrease': 0.0002} 0.851064 \n", "3 {'min_impurity_decrease': 0.00030000000000000003} 0.866261 \n", "4 {'min_impurity_decrease': 0.0004} 0.873860 \n", "5 {'min_impurity_decrease': 0.0005} 0.876900 \n", "6 {'min_impurity_decrease': 0.0006000000000000001} 0.876900 \n", "7 {'min_impurity_decrease': 0.0007} 0.876900 \n", "8 {'min_impurity_decrease': 0.0008} 0.872340 \n", "9 {'min_impurity_decrease': 0.0009000000000000001} 0.872340 \n", "\n", " split1_test_score split2_test_score split3_test_score split4_test_score \\\n", "0 0.820669 0.828267 0.837139 0.837139 \n", "1 0.822188 0.855623 0.873668 0.850837 \n", "2 0.858663 0.873860 0.885845 0.866058 \n", "3 0.863222 0.887538 0.890411 0.878234 \n", "4 0.870821 0.882979 0.893455 0.869102 \n", "5 0.869301 0.882979 0.893455 0.867580 \n", "6 0.867781 0.882979 0.890411 0.870624 \n", "7 0.866261 0.886018 0.890411 0.864536 \n", "8 0.866261 0.886018 0.891933 0.864536 \n", "9 0.866261 0.886018 0.887367 0.864536 \n", "\n", " split5_test_score split6_test_score split7_test_score split8_test_score \\\n", "0 0.814307 0.850837 0.852359 0.841705 \n", "1 0.841705 0.853881 0.869102 0.844749 \n", "2 0.869102 0.861492 0.879756 0.856925 \n", "3 0.875190 0.866058 0.902588 0.870624 \n", "4 0.882801 0.870624 0.885845 0.872146 \n", "5 0.881279 0.884323 0.885845 0.873668 \n", "6 0.884323 0.881279 0.881279 0.873668 \n", "7 0.888889 0.878234 0.887367 0.869102 \n", "8 0.888889 0.876712 0.882801 0.870624 \n", "9 0.888889 0.879756 0.879756 0.855403 \n", "\n", " split9_test_score mean_test_score std_test_score rank_test_score \n", "0 0.831050 0.832502 0.013373 10 \n", "1 0.843227 0.848629 0.014896 9 \n", "2 0.855403 0.865817 0.010705 8 \n", "3 0.859970 0.876010 0.013024 6 \n", "4 0.870624 0.877226 0.007957 4 \n", "5 0.872146 0.878747 0.007803 1 \n", "6 0.872146 0.878139 0.006732 2 \n", "7 0.867580 0.877530 0.009646 3 \n", "8 0.867580 0.876769 0.009490 5 \n", "9 0.873668 0.875400 0.010439 7 " ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cv_results" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Mit mehr als einem Parameter" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "ExecuteTime": { "end_time": "2020-04-14T21:29:53.328096Z", "start_time": "2020-04-14T21:29:43.728184Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "param_min_samples_leaf 5 10 15 20\n", "param_min_impurity_decrease \n", "0.0002 0.870228 0.871142 0.870684 0.873724\n", "0.0004 0.874791 0.875857 0.875857 0.876616\n", "0.0006 0.877986 0.878443 0.877835 0.879507\n", "0.0008 0.876769 0.876162 0.875401 0.877226\n" ] } ], "source": [ "## combination of more than one parameter\n", "from sklearn.model_selection import GridSearchCV\n", "params = {'min_impurity_decrease': np.arange(0.0002, 0.001, 0.0002),\n", " 'min_samples_leaf': range(5, 25, 5)}\n", "\n", "model = DecisionTreeClassifier(random_state=1234)\n", "gscv = GridSearchCV(model, param_grid=params, cv=10)\n", "gscv.fit(X_train, y_train)\n", "\n", "## the pivot table (as pandas data frame)\n", "cv_results = pd.pivot_table(pd.DataFrame(gscv.cv_results_),\n", " values='mean_test_score', \n", " index='param_min_impurity_decrease', \n", " columns='param_min_samples_leaf')\n", "print(cv_results)" ] }, { "cell_type": "raw", "metadata": { "ExecuteTime": { "end_time": "2020-04-14T21:29:53.817713Z", "start_time": "2020-04-14T21:29:53.349703Z" } }, "source": [ "## the heatmap\n", "plt.figure(figsize=(6,5))\n", "sns.heatmap(pvt);" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "ExecuteTime": { "end_time": "2020-04-14T21:29:53.817713Z", "start_time": "2020-04-14T21:29:53.349703Z" }, "scrolled": true }, "outputs": [ { "data": { "image/png": "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h1177bXxjleoUMFtzaBdwwEAQAAIbsIT3Chro92/k6ItGY4ePRrsuAAAANIvuKlcubLbW+r06dPxjp85c8bNpKpUqVJgowEAIMaxt1TwAprW1KVLF2vXrp01atTI6tWrZwULFrQDBw7YkiVLbP/+/fb++++HYGgAAMSgGA5KwhrcqNfmo48+srFjx9qiRYtcE3GePHncbuGdO3e28uXLh2yAAAAAqRHwgjRqHh41alSgDwcAAElha6mgBbXa3uLFi93MKS3g161bN7flQsWKFa148eLBjwwAgBgUy70yYQ1ujh8/bo899pgLbHLnzu1mRz3wwAM2ZcoUt5jf5MmT7corrwzZIAEAANJ0ttSIESPs559/tvfee8+WLVvmWyr65ZdftsKFC9trr70WyGUBAADr3IQnuJk3b551797datas6XYA97rkkkvs0UcftdWrVwc/MgAAYrXnJlS3GBVQcHPkyJFk+2ry5ctnx44dC3ZcAAAA6RfcqJ/mk08+SfK+r7/+mn4bAAACxCJ+YQpuVHqaM2eO2wV82rRprjS1cuVKGzBggGsq7tSpU6quFxcX56aV161b162h8+CDD9r27duTPf/gwYP21FNPWbVq1ax69erWr18/1+ScsHTWrFkzt1pyy5YtbenSpam+hv92E82bN7devXql6nUBAJBqlKXCE9w0btzYhg4daps2bbK+ffu6huIhQ4bY559/7n5u2rRpqq43ZswY+/DDD11wNHXqVBfsKEBSUJHcCslbt251Dc1qXtaUdD2vl5qcn376abv77rtt1qxZVqtWLXvooYfs999/T/E1Eu6C/ssvv6TqNQEAgPDI4PFOdQrQ5s2b3QrFefPmtdKlS1vGjKmLlxTAqDFZu4zfe++9vp4eZXEGDRpkt912W7zz165d64KWzz77zMqUKeOOfffddy4YUoCi2Vqalq4Vk1999VXf4/SYq666yvr375+ia3h9++23LmNz0UUX2dVXX+2CuEAtK9Yq4MciMKXL7w/3EIA0l6N8rnAPIebkGf1Zml37wB31Q3atArMWWywKKHPjTwHNddddZ1dccUWqAxvZuHGjWydH2RUvBUpaAVmlroRWrVplhQoV8gUlorKSSmOapaWsz5o1a+JdT2rUqOG73vmu4aX9sp599lmXUVJwAwBArJSl4lLZMqK9JdXuoYSFPnO1uO/u3bt9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MGCA1apVK8nztEX5H3/8EewYAQAA0ja4eeGFF1zTcJ48ec55XufOnd0NAACkDJmbMDUUf/HFF7Znz54k79u4caM1b9482HEBABCzPTehusWqzKlpHPb8951asWKFrVy50g4cOJDovIULF9r27dtDO0oAAIBQBzfTpk1zTcTaUkE3LdyXkDf4ue2221J6WQAA4IeyVDoGN88//7y1bt3aBTD33Xef9enTxy3al3C7hbx589qVV14ZgqEBABB7YnlPqHQPbtQ8XL16dff9pEmTrGLFimyICQAALtzgZvbs2Va/fn23CvFff/3lbufSsmXLUIwPAICYEst7QqV7cNOrVy/7+OOPXXCj789FPTkENwAAIKKDmwULFlihQoV83wMAgNCLo+cm/YIbbbHgpWbiTp06JbsyMQAACAwNxWFaxG/NmjWu9AQAABAVwU3dunXdppmnT58O/YgAAIjxdW5CdYtVAe0tpU0zFdzMmzfPypQpYzlz5ox3v7I6EydODNUYAQCIGbG8bUJYg5tdu3ZZlSpVEq1MnNzPAAAAER3cvP/++6EfCQAAiOlyUliDGwAAkDaYCh6m4ObGG28872wp1sIBAAAXTHCjPaYSBjdHjx61devW2cmTJ93GmgAAIPVY5yZMwc2QIUOSPK6p4Z07d7bjx48HOy4AAGISc3LCtM5NcrJkyWLt27e36dOnh/KyAAAA4WsoPnz4sCtRAQCA1KOhOEzBzezZsxMdO3v2rFv/ZvLkyVa1atUQDA0AgNhDz02YgptevXole58W93vhhReCGRMAAED6BjdJTfPW7KncuXNb3rx5Ax8NAAAxjobiMAU3xYsX933/xx9/uD6bAgUKENgAABAkem7C2FA8depUGzNmjO3du9d3rFixYvbUU09Zs2bNQjA0AACAdApupkyZYv369bNGjRpZkyZNrGDBgrZv3z77/PPPXXCTNWtWa9y4cSCXjmqVR9None4KFAn3CGLPn1vCPYKYk/nmjuEeAkKIhuIwBTfvvfee3XvvvdanT594x1u2bOmOvfHGGwQ3AAAEgLJUmBbx05RvZW2ScvPNN9vmzZuDHRcAAED6BTfXXHONffvtt0net3btWitbtmxgowEAIMZ5QniLVQGVpR599FHr3r27W4n49ttvt8KFC9vBgwfdFPEJEyZY7969beXKlb7zq1WrFsoxAwAQtShL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AACIIAQ3waMsBQAAogqZGwAAIggbBwSP4AYAgAhCWSp4lKUAAEBUiYjgJi4uzkaNGmV169a1a6+91h588EHbvn17sucfPHjQnnrqKatWrZpVr17d+vXrZ8ePH493zrx586xZs2ZWqVIltxX70qVLU32NTz/91G677TarXLmyu9bs2bND/MoBAEi8/UKo/herIiK4GTNmjNsWfcCAATZ16lQX7HTq1MlOnTqV7DbsW7dutffee89ee+01W7x4sfXt29d3/7Jly+zpp5+2u+++22bNmmW1atWyhx56yH7//fdUXaNnz57Wtm1btw17mzZt7Nlnn3XnAQCQlj03obrFqrAHNwpgxo8f74KNBg0aWLly5WzkyJG2a9cumz8/8Vbta9eutRUrVtjLL79sFStWdIFL//79bc6cObZ79253zttvv22NGze29u3bW5kyZeyZZ55x506cODHF11iwYIGVLVvWBUiXXnqpC240tm+//Tad3yEAAHBBBTcbN260o0ePugDDK2/evFahQgVbuXJlovNXrVplhQoVckGLl8pKGTJksNWrV7usz5o1a+JdT2rUqOG73vmuIQULFrRff/3VZXAU/S5fvtxlflTmAgAgLRuKQ3WLVWGfLaUMjRQtWjTe8UsuucR3nz9lVhKemzVrVsufP7/t3LnTjhw5YseOHbMiRYoke73zXUPatWtnP/30k913332WKVMmO3v2rD3yyCPWokWLEL1yAAASi+VyUtQEN94mXgUX/rJly2aHDx9O8vyE53rPP3nypJ04cSLZ6+n+lFxDFOSo6bhPnz523XXXuQyOymUqUd15551BvWYAABDFwU327Nl9vTfe70VBRo4cOZI8P6lGY52fM2dOF6B4r5fwfu/1zncNeeKJJ9xMKfXaSPny5V2wNXToUGvVqpVlzBj2ih4AIArFcjkpVML+Ce0tD+3Zsyfecf1cuHDhROer3JTwXAUqhw4dcqUnlZYUoJzreue7xoEDB2zz5s12zTXXxDtH09R1jm4AAKQFpoJHQXCjGUi5c+d2Dbte6ptZv369W4MmIR1T74ymcXtp5pNcf/31rilYZSTvMS9dv2rVqim6Rr58+VyWZ9OmTfGuoZ/V7FygQIGQvX4AABBlZSn1vmgtmWHDhrmgoXjx4q70o+xKkyZNXCOvMil58uRx5SQtqKfgpVu3bm5dGjUPqy9GC/V5MzMdO3Z069poxlW9evVsxowZtmHDBhs0aJC7PyXX0DTyN998082qUsCjWVTjxo2zxx57LKzvFwAgusXRUBy0DJ4IaMtWADNixAibOXOmawhWZkXBRokSJWzHjh3WqFEjGzx4sOt1kf3797sVhbXmjHpsmjZt6hbY8/bbiFYT1uKAytBcccUVblE//+nh57uGxjRp0iT7+OOPXXOxxqL+G617o+xQIP7pcXvQ7xVS5/SWxE3pSFsHf0ncrI+0VaR9iXAPIebkfHp8ml27YuEaIbvWz7v/VxWJJRER3MQKgpv0R3CT/ghu0h/BTfojuIlsYS9LAQCA/6EsFTyCGwAAIkgsz3KKmtlSAAAAoUTmBgCACEJZKngENwAARBDKUsGjLAUAAKIKmRsAACIIZangEdwAABBBKEsFj7IUAACIKmRuAACIIB5PXLiHcMEjuAEAIILEUZYKGmUpAAAQVcjcAAAQQdjPOngENwAARBDKUsGjLAUAAKIKmRsAACIIZangEdwAABBBWKE4eJSlAABAVCFzAwBABGH7heAR3AAAEEHouQkeZSkAABBVyNwAABBBWOcmeAQ3AABEEMpSwaMsBQAAogqZGwAAIgjr3ASPzA0AAIgqZG4AAIgg9NwEj+AGAIAIwmyp4FGWAgAAUYXMDQAAEYSyVPAIbgAAiCDMlgoeZSkAABBVyNwAABBB2BU8eAQ3AABEEMpSwaMsBQAAogqZGwAAIgizpYJHcAMAQASh5yZ4lKUAAEBUIXMDAEAEoSwVPIIbAAAiCMFN8ChLAQCAqELmBgCACELeJngZPOS/AABAFKEsBQAAogrBDQAAiCoENwAAIKoQ3AAAgKhCcAMAAKIKwQ0AAIgqBDcAACCqENwAAICoQnADAACiCsENAACIKgQ3AAAgqhDcAACAqEJwAwAAogrBDZK1e/duK1u2bKLbzJkzwz20qDRu3Dhr165dvGMbNmywtm3b2rXXXms33nijTZo0KWzji5X3/Pnnn0/0O6/3HoE5dOiQ9enTx+rVq2fXXXed3XPPPbZq1Srf/UuXLrVWrVpZ5cqVrWnTpvbpp5+GdbyIDpnDPQBEro0bN1q2bNnsq6++sgwZMviO58mTJ6zjikYffPCBvfrqq1a1alXfsYMHD1rHjh3dB2u/fv3shx9+cF9z5cplrVu3Dut4o/U9l02bNtkjjzzigkqvTJkyhWGE0aF79+62d+9eGzFihBUsWNDef/99e+CBB2zWrFnm8Xjs4Ycfdr/nQ4cOtUWLFlnPnj2tQIECVqtWrXAPHRcwghsk65dffrGSJUvaJZdcEu6hRHV27MUXX7Tly5e799rfxx9/bFmyZLH+/ftb5syZrUyZMrZ161Z76623CG7S6D3Xh+1vv/1mDz30kBUqVChsY4wW+n1dsmSJffjhh3b99de7Yy+88IJ9++239sknn9j+/ftdZqxbt27uPv2Or1+/3t555x2CGwSFshSSpb9g9R8bpJ2ff/7ZBTBz5851aXl/St1Xr17dBTZeNWvWtD/++MP27dsXhtFG/3u+bds2O3bsmJUuXTps44smF110kQvGr7nmGt8xZYF1O3LkiPsdTxjE6Hd89erVLtAEAkVwg3Nmbg4cOGBt2rSx2rVru1r5N998E+5hRRWVnF5//XW79NJLE923a9cuK1KkSLxj3izazp07022MsfSe63deVDrReY0bN3aZs7///jsMI73w5c2b1+rXr29Zs2b1Hfviiy9cRqdu3brJ/o4fP37clWWBQBHcIElnzpyxzZs32+HDh+2JJ55wf32pqVXpejUAIu2dOHEi3oeCqAdKTp48GaZRRTcFNxkzZnQfsGPHjrVevXrZd999Z507d7a4uLhwD++Ct2bNGnv22WetSZMm1qBBgyR/x70/nzp1KkyjRDSg5wZJUilEPQlqpMyePbs7dvXVV9uvv/5q7777LvXwdKD3PeF/4L1BTc6cOcM0quj26KOP2r333uvKKXLVVVe53pt//etftm7dukRlLKScJib06NHDzZgaNmyYL1hP+Dvu/TlHjhxhGSeiA5kbJEuzcryBjdeVV17pGjKR9pSu37NnT7xj3p8LFy4cplFFN2VtvIGN/++8qISCwEyePNllgBs2bOgyYt4MZNGiRZP8HVfwzqxMBIPgBklShkZ/YSl74+///b//Z1dccUXYxhVLqlWr5horz5496zu2bNkyK1WqlJtSi9DTNOQOHTrEO6aMjfB7HxjNlBowYIDr3dN0cP8ylKbhr1ixIt75+h3Xf3sUaAKB4rcHSdIsKc0YUTOlZjT8/vvvNnjwYLfWilL3SHua7v3PP//Yc88956Yna/HE9957z60LgrRx8803u56y0aNHu5lTixcvtt69e9ttt93GzMEAbNmyxV566SW76aab3O+tZvlpzRvd1KStBRR/+uknV6bSf2PGjx9vn3/+uXXq1CncQ8cFLoOH+XZIhv5DNHz4cLcmhaZtVqhQwdXMEy56htBQ8+qff/7pZup46T/8gwYNcmt/qPfj/vvvj7e4HEL/ns+bN8810KuhXqWR5s2b25NPPukrpSDlVIIaOXJkkvfdcccdNmTIEDcDUwv4aYmDEiVKuPJVs2bN0n2siC4ENwAAIKpQlgIAAFGF4AYAAEQVghsAABBVCG4AAEBUIbgBAABRheAGAABEFYIbAAAQVQhuAABAVCG4AWKI9gorW7Zsoj3DYoG2r9Br37FjR7o/t5739ddfD/l1tT3HI4884nYr115kWuUXgFnmcA8AQPqpWLGiffTRR2wCGSVmz55tCxcutD59+rjdy7V9AQCCGyCm5M6d26699tpwDwMhcujQIff13nvvtQwZMoR7OEDEoCyFqHXjjTe6Tfu0K7FS9jVq1LCePXv6PhBk2rRp1qpVK/eBX6lSJbv99tvdxon+pQxtGKrz6tSpY9WrV3c7dJ89e9ZtrqjdovU4Pf7uu++2ZcuW+R6rMkTTpk3tyy+/dOddc8017vpr1651u6vfdddd7rG6TztRB1Je0uO0s7Ku06BBAzfOPXv22OOPP25VqlSx+vXru53EkytLaYzasXnRokVug8irr77a7YytjEBqLVmyxP71r3+559X7rd3jtdOzV1q+Z3qc/r2VxdDjVabRWM5XftOO99qIVOfr3/aZZ56xAwcO+O6Pi4tzv0O6tt4bfdVmsqdPn7Zg6HdQ2ZbatWu716ixJvwd0Dj69etnDRs2dM+t8T322GO+spr+3b2lrnLlyrlNQAH8lzbOBKJRw4YNPVWrVvW0bt3a8+WXX3o++ugjT/Xq1T3/+te/PHFxcZ7Jkyd7ypUr53njjTc8y5Yt83zxxReeO++801OhQgXPzp073TVmzJjhueqqqzxNmzb1LFy40DNz5kz32CFDhngqV67smTRpkmf58uWeuXPnem6++WZ3/WPHjrnHjho1yp1z4403ej755BPPggULPA0aNPDccMMNbmwazzfffONp1qyZp0aNGp7jx4+n+LVpvBpXzZo1PePHj/d8//33ng4dOnjKly/vxvHqq6+6Y48//rg778cff4z3OH31H6PG8/HHH3uWLFniuf/++905v/32W4rHs23bNk+lSpU8/fr18yxdutS9lxqHXvvZs2fdOWn5nnkfV61aNc/EiRPdv1W7du08FStW9Kxfvz7ev+X27dvdzytWrHD3P/DAA56vv/7aM2vWLPdct956q++6Y8eOddecPn26G/Nbb73l3uPXXnvNkxp6Xo1RTpw44WnRooWndu3a7j1ftGiR54knnnC/d/o3E/2O6Xfxpptu8vznP/9x/156XVWqVHH/PvLrr796evfu7a69du1az9atW1M1JiCaUZZCVMuYMaNNmDDB8uTJ434uUKCA++v322+/te3bt9sDDzxgnTt39p1fvHhxl8lZvXq13Xrrrb7jatpUZsRL2ZFu3bq5v569smXLZk888YRt2rTJV/o5fvy4vfjii1avXj33s7I++st/0KBBduedd7pjx44dsy5dutiWLVusfPnyqXp9rVu3to4dO7rvc+bM6TIAymx07drV9xf9/Pnzbc2aNe54UjRGjadWrVru55IlS7psweLFi61MmTIpGsdPP/1kJ06csIcfftgKFy7sjhUpUsQWLFjgXp/KYWn9nulxffv2tZYtW7qfa9asaY0bN3bZImVfEtI1S5UqZePGjbNMmTK5Y8rg6N99xowZ1qZNG1uxYoXLmuh9FmVPcuTI4ft9CsScOXNs48aN9vHHH7vnE71WvS/Dhg1zz633Ss+jTFLVqlXdOco8btu2zfVMifqm9B4LpUYgPoIbRDWVEfw/iPRz5syZbeXKlb40/pEjR2zz5s22detWXxnj1KlT8a6TMOjQB6O3dOB9rEoiST32uuuu831/8cUXu6/eDzXJnz+/bxyppRKQV8GCBRNd+6KLLnJf//7773Nex//D0fuBqQAipfScClQUfKgspA9rfRj7B1Rp/Z7p31XlKq/s2bO7cXzzzTeJxqtA6Mcff3TBrcfjsTNnzrjjl156qQvoVGJTcKPXoHGrp0W/OwpwVcYKhspPhQoVcs3d3ucVBZSvvPKKHT582AWIkyZNcmNTGUrvld4zBakJ3ysAiRHcIKp5swj+mRx94OsDRH8Fq+9BHzZZsmSx0qVLu0yH6EPFn7Ii/tatW+f6IfRVf2Hrr+hixYol+VhlLRLSY0IhVNf2f4zeo6Rex7lols7kyZNdlmT69Onugzlv3rwuKHjyySdds2tav2cKghTg+FPA599j5aWgSP00b7/9trslpEBNOnXqZLly5XLZFGVVhg4d6mYlPf/88y4zFAiNZ+/evS64SYruy5cvn82dO9dGjBhhO3fudMGcAmwFbADOj+AGUe3gwYPxflZTq46pPPXQQw+5oEYfxvrg0AejSiAqG5xvbRF96Kkx99NPP3VBkQIClXG++OILi1XK0owePdplFlTWU/lk7NixLmCsW7dumr9nSQUx+/bt82W0/ClgUcDVoUOHeOXHhIGUxqgMjm779+9349VrUilN2Z2sWbOmepzKJKr0p2ApuUBRjc4qSalUpeySN0hXZkfvLYBzY7YUoppKEv5pfPWAqBRw1VVXuX4NlVE0W8X7F7+3hKG/6pOj8oA+SNu3b++yD95MR0oeG600I0tlFb3X+sBX/86AAQPcfX/99Ve6vGfq+VEvlf/Pur63lyhhZkiz4DQu/ft7b8rKaAaStzyp2VwDBw503ytIUj+WAh1lfhTkBkJ9O8rG6Hr+z61g6Z133nH9P5odpvdEQZQ3sFFg/v3338fs7xiQGmRuENX0IaIpyfpQ1fdK8yuL0KxZM/eX8wcffOB6TFRC0QejyinenozkqAlVH476C15BkW7KPigDdL7HRiuVaPR+qllbPSn6gJ46daoLdBT0qMckPd6zZ5991pXBFDi8++67rm9I//5J6d69u8vePfXUU9aiRQsXPIwfP9714nibzDWlXcdU8lJ/0+7du12DugIUZf8CoQBJJTw1gqtRvWjRoi5oUXlM752yid5epf79+7tmZpVR9buqRmTxNmkDSBqZG0Q1lRwuu+wy94Gnv8jvuOMOVzqRMWPGuL+K1Vis+/Wh9uabb7qSicoC5yor6LHqE9GsJK2do+yEPrBU7jjXY6OVSk8KXJTNUNCgdXaUqVFgoPczvd4zzZbS82hWlgKrKVOm2OWXX57kuTfccIMLgHbt2uVmXmlMCsoUvHgbrDVWBSDquVFZbciQIe5xo0aNCniM6t9SoHL99de7Hp4HH3zQzWhTkKXgTNTIrH4wZXB0v55X/Une311KU8C5ZdB88POcA1yQNLtFf2HrgwHRTYGrPvg1pRwAKEsBEUSlkfP9vaFGWO+6LGlNvR0p6e9IOEspFvDeAJGL/9cBEURbIfz555/nPEfZqPfffz9dxtO7d2+bNWvWec+LxYzJG2+84SsTnYua2NnQEkhflKWACKIg4XyLtKlHRX0s6UELyCWcTp8UzfaJNWou1krC56Pp74FMGQcQOIIbAAAQVZgtBQAAogrBDQAAiCoENwAAIKoQ3AAAgKhCcAMAAKIKwQ0AAIgqBDcAAMCiyf8HVGAt45pe5KIAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "## format y labels\n", "plt.subplots(figsize=(6, 5)) \n", "g = sns.heatmap(cv_results)\n", "ylabels = ['{:,.4f}'.format(x) for x in cv_results.index]\n", "g.set_yticklabels(ylabels);" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "ExecuteTime": { "end_time": "2020-04-14T21:29:53.344329Z", "start_time": "2020-04-14T21:29:53.331660Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "best_params_ : {'min_impurity_decrease': np.float64(0.0006000000000000001), 'min_samples_leaf': 20}\n", "best_score_ : 0.8795073397084472\n", "refit_time_ : 0.011003255844116211\n" ] } ], "source": [ "## the most important attributes\n", "print('best_params_ :', gscv.best_params_)\n", "print('best_score_ :', gscv.best_score_)\n", "print('refit_time_ :', gscv.refit_time_)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "ExecuteTime": { "end_time": "2020-04-14T21:30:41.381563Z", "start_time": "2020-04-14T21:29:53.819986Z" }, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "best_params_ : {'min_impurity_decrease': np.float64(0.0005), 'min_samples_leaf': 16}\n", "best_score_ : 0.879964654665908\n", "refit_time_ : 0.011229991912841797\n", "CPU times: user 9.61 s, sys: 26 ms, total: 9.64 s\n", "Wall time: 9.64 s\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi4AAAHECAYAAAAefaGmAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAWx5JREFUeJzt3Qd4VGXWB/ATSiAQei+CFOm9I13qB6g0XZReVVR6F5FepBcBRYqIwNKLwIqiUpQOCyhFBYQgVXoPkPme/9m9szOTYTKZzGTmTv6/feZJcufOm5tL1jl5z3nPG2KxWCxCREREZAKJ/H0BRERERO5i4EJERESmwcCFiIiITIOBCxEREZkGAxciIiIyDQYuREREZBoMXIiIiMg0GLgQERGRaSTx9wUkJElCc4gZXaiWX8wqZbXsYkYhWTOLWYWEhYkp5cwrpvXwvpiSJUrMKqxxb5+N/fjv014bK2lGE/9ePwNnXIiIiMg0OONCREQUSKKe+vsKAhoDFyIiokBi4hRafGCqiIiIiEyDMy5ERESBJIozLq4wcCEiIgogFqaKXGKqiIiIiEyDMy5ERESBhKkilxi4EBERBRKmilxiqoiIiIhMgzMuREREgYQN6Fxi4EJERBRImCpyKcGkiqKiomT69OlSrVo1KVWqlHTp0kUiIiKeef6NGzekT58+Ur58ealQoYIMHz5cHjx4EK/XTERERAk0cJk1a5YsWbJERo4cKcuWLdNApnPnzhIZGen0/O7du8vZs2dl4cKFMm3aNNm2bZsMGzYs3q+biIgS4Koibz2CUIIIXBCczJ8/X4ORmjVrSqFChWTKlCly6dIl2bJlS7TzDx06JHv37pXx48dL0aJFpXLlyjJixAhZt26dXL582S8/AxERJZwGdN56BKMEEbicOHFC7t27pwGIIXXq1FKkSBHZt29ftPP3798vmTJlknz58lmPIV0UEhIiBw4ciLfrJiIiogRYnIuZFciWLZvd8cyZM1ufs4VZFcdzQ0NDJW3atHLx4kUfXy0RESVoQZri8ZYEEbgYRbUIPmwlS5ZMbt265fR8x3ON8x89euTDKyUiogQvSFM83pIgUkXJkyfXj46FuAhCwsLCnJ7vrGgX56dIkcKHV0pERESS0AMXI+1z5coVu+P4OkuWLNHOz5o1a7RzEcjcvHlT00tEREQ+bUDnrUcQShCBC1YRhYeHy549e6zHbt++LceOHdM+LY5wDLUvWA5twCojKFu2bDxdNRERJdhUkbceQShB1LigXqV169YyceJESZ8+veTIkUMmTJigMyv16tWTp0+fyvXr1yVVqlSaJipZsqSUKVNGevXqpb1b7t+/L0OHDpUmTZo4naEhIiKi+JEgZlwAPVxatGghQ4YMkTfeeEMSJ04s8+bNk6RJk+pKoapVq8qmTZv0XCx7njlzpuTMmVPatWsnPXv2lOrVq7MBHRER+R4b0LkUYrFYLK5PIW9JEppDzOhCtfxiVimrZRczCslq3lqqECcF76aQM6+Y1sP7YkomTmWENe7ts7Ef/fKt18ZKVqyuBJsEM+NCRERE5pcgalyIiIhMI0hTPN7CwIWIiCiAWCzBuYzZW5gqIiIiItPgjAsREVEgMXHRcnxg4EJERBRIWOPiElNFREREZBqccSEiIgokTBW5xMCFiIgokATp5ojewlQRERERmQZnXIiIiAIJU0UuMXAhIiIKJFxV5BJTRURERGQanHEhIiIKJEwVucTAJR6NzFZLzChp+vNiWslCxZQSmXgyNDSZmFJiE//n8OkTMSUz/577ElNFLvG3hoiIiEzDxH9iEBERBSHOuLjEwIWIiCiAWCxsQOcKU0VERERkGpxxISIiCiRMFbnEwIWIiCiQcDm0S0wVERERkWlwxoWIiCiQMFXkEgMXIiKiQMJUkUtMFREREZFpcMaFiIgokDBV5BIDFyIiokDCVFHgp4qioqJk+vTpUq1aNSlVqpR06dJFIiIinnn+jRs3pE+fPlK+fHmpUKGCDB8+XB48eGB3zubNm6Vhw4ZSokQJadKkiezatSvWYxgOHDgghQsX9tJPS0RERKYOXGbNmiVLliyRkSNHyrJlyzSQ6dy5s0RGRjo9v3v37nL27FlZuHChTJs2TbZt2ybDhg2zPr97927p16+ftGzZUtasWSOVK1eWrl27yqlTp9wewzZo6datm14TERGRz+H9xluPIOT3wAXByfz58zWQqFmzphQqVEimTJkily5dki1btkQ7/9ChQ7J3714ZP368FC1aVIOSESNGyLp16+Ty5ct6zty5c6VOnTrStm1byZcvnwwYMEDP/eKLL9we48mTJzJ27Fhp166d5MiRI57vChERJVgMXAI7cDlx4oTcu3dPgwdD6tSppUiRIrJv375o5+/fv18yZcqkAYkBqZ6QkBCdHcHMyMGDB+3Gg4oVK1rHi2kMuH//vp7/+eefS+vWrX3ysxMREZHJAhfMrEC2bNnsjmfOnNn6nC3MiDieGxoaKmnTppWLFy/K7du3NejImjXrM8eLaQwjeFq9erVUqlTJSz8pERGRm8W53noEIb+vKjIKYhE42EqWLJncunXL6fmO5xrnP3r0SB4+fPjM8fC8O2MQERH5TZCmeIJmxiV58uT60bEQFwFEWFiY0/OdFe3i/BQpUmjwEdN4MY1BREREgcnvgYuRsrly5YrdcXydJUuWaOcjBeR4LoKQmzdvajoI6R4EH67Gi2kMIiIiv2GqKLADF6wiCg8Plz179liPoU7l2LFj2mPFEY6hVgVLmQ1YIQRly5bVAtsyZcpYjxkwfrly5dwag4iIyG+4qiiwAxfUmmDVzsSJE2Xr1q26yqhXr146K1KvXj15+vSpXL161Vq7UrJkSQ1McM6RI0e0Z8vQoUO1yZwxo9KhQwfZuHGjLFiwQHu3fPzxx3L8+HFd2uzuGERERBR4/B64AHq4tGjRQoYMGSJvvPGGJE6cWObNmydJkybVVT5Vq1aVTZs26bmYUZk5c6bkzJlTA5GePXtK9erV7ZrH4fwxY8bI0qVLpWnTphqYzJkzx7r82Z0xiIiI/IKpIpdCLBaLxfUp5C1jc5uzH8zbFc6LWYWWyS1mFJIhvZhVSKrUYkrZzPm7om5fF1NKFBB/O3skrHFvn439YOUor40V1mKIBBvz/tYQERFRguP3Pi5ERERkI0iLar2FgQsREVEgYQWHS0wVERERkWlwxoWIiCiQMFXkEgMXIiKiQMLAxSWmioiIiMg0OONCREQUSIK0cZy3MHAhIiIKJEwVucRUEREREZkGZ1yIiIgCCfu4uMTAhYiIKJAwVeQSAxciIiKKJioqSmbOnCkrVqyQO3fuSPny5WXo0KHy3HPPRT9ZRK5duyZjxoyRn376SbB/84svvigDBw6ULFmy6PMFCxaUZ/nhhx8ke/bs4g4GLvHo/ea3xYwSV60nZmU5d1bMKCRluJhWipT+voKEx6y7LIcm9/cVBKYAmXGZNWuWLFmyRMaNGydZs2aVCRMmSOfOnWXDhg0SGhoa7fyePXvKkydPZMGCBRq4DB8+XN59911ZuXKlPr9z506782/duiWtW7eWGjVquB20gEl/24mIiIJ4ObS3Hh6KjIyU+fPnS/fu3aVmzZpSqFAhmTJlily6dEm2bNkS7fzbt2/L3r17pUuXLlK4cGEpUqSIdO3aVY4ePSo3b97UczJlymT3mD59uqRLl05GjhwZq2tj4EJERER2Tpw4Iffu3ZPKlStbj6VOnVoDkn379tmfLCLJkyeXlClTytq1a+Xu3bv6WLduneTJk0df5wizLwiAELQ4m71xhakiIiKiAGKJ8t6qotq1a7t8fuvWrU6PY2YFsmXLZnc8c+bM1udsIfhASgk1MOXKlZOQkBA9d/HixZLISSpz8uTJem04N7Y440JERBRoNS7eenjowYMH+tFxNiRZsmTy6NGjaOejpuX48eNSunRp+eqrr+SLL77QupVu3brp7IstzNj8+uuv+pwn4jTjcurUKa0evnLlirRp00YiIiI0DxYebuLCQiIioiCx9RkzKjFB6seodTE+BwQtYWFh0c7fvHmzzq5gdZARA8yZM0dq1aqlxbnt27e3nrtmzRopUaKEFC1aNP4CFyyRwnTQqlWrNMrClND//d//aQXyuXPn9OJRgUxERETm26so239TRJiYyJUrl/U4vna2rHn//v1az2I7cZEmTRo9dvbsWbv44fvvv/d4tsXjVBECFCyHGjVqlHW9NvTr108vCpXHRERE5AHUuHjr4SEje7Jnzx67lUPHjh3Tfi6OMFmBAMU2jXT//n05f/68PP/889Zjf/zxh9y4cUN7vMRr4IKZFiyRat68uaRNm9Z6HEugcBzBDBEREZlTaGio9liZOHGippuwyqhXr14aoNSrV0+ePn0qV69elYcPH+r5TZo0sfZywbl49O7dW2timjVrZh0XgU/SpEklb9688Ru4/P333xqkOIMOeYjKiIiIyJzFuYCJiBYtWsiQIUPkjTfekMSJE8u8efM08Lh48aJUrVpVNm3apOdiBRGa1SED065dO+nQoYOeh2OpUqUSA4IdpJCcrTTyaY1L7ty5Zdu2bU6netCABs8TERGReTvnJk6cWEtA8HCUM2dOOXnypN2xfPnyaUGuK2hQh0dceBS4IJpCce7jx4+1YhjFuchtIReGTnvYm4CIiIjI2zwKXF577TW5fv26zJ49W5YuXapTQ8hlYVoI+xhgSomIiIg88N8FL+TlPi5vvfWWtGrVSg4dOqT7EKClb8mSJe2KdX21AyUqkrGiafv27Trb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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%time\n", "## the above is a magic command which measures the execution time for the whole cell\n", "## must be in the first line of cell\n", "\n", "## a more detailed granularity\n", "from sklearn.model_selection import GridSearchCV\n", "params = {'min_impurity_decrease': np.arange(0, 0.001, 0.0001),\n", " 'min_samples_leaf': range(1, 41, 5)}\n", "model = DecisionTreeClassifier(random_state=1234)\n", "gscv = GridSearchCV(model, param_grid=params, cv=10)\n", "gscv.fit(X_train, y_train)\n", "\n", "## pivot table and heatmap\n", "cv_results = pd.pivot_table(pd.DataFrame(gscv.cv_results_),\n", " values = 'mean_test_score', \n", " index = 'param_min_impurity_decrease', \n", " columns = 'param_min_samples_leaf')\n", "#print(cv_results)\n", "\n", "plt.figure(figsize=(6,5))\n", "sns.heatmap(cv_results,\n", " yticklabels=cv_results.index.values.round(4));\n", "\n", "## the most important attributes\n", "print('best_params_ :', gscv.best_params_)\n", "print('best_score_ :', gscv.best_score_)\n", "print('refit_time_ :', gscv.refit_time_)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Random Search mit CV" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "ExecuteTime": { "end_time": "2020-04-14T21:30:47.769440Z", "start_time": "2020-04-14T21:30:41.929597Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "best_params_ : {'min_samples_leaf': 11, 'min_impurity_decrease': np.float64(0.0005)}\n", "best_score_ : 0.8788987430199905\n", "CPU times: user 2.33 s, sys: 8.1 ms, total: 2.34 s\n", "Wall time: 2.34 s\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHECAYAAADFxguEAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAaItJREFUeJzt3Qd4VNXWBuBFQi+BgKELAipN6b0jiFyKAsL9QalSVHoREEWkF0EQRECRKgJKB5ErUgUvHUSvFKWIIFUIPYBJ5n++de8ZZyYTMpmeM9/rM0+SmZM950yCs7LW2nunslgsFiEiIiIyibBAnwARERGRNzG4ISIiIlNhcENERESmwuCGiIiITIXBDREREZkKgxsiIiIyFQY3REREZCoMboiIiMhUUgf6BELJlSu3fP4cYWGpJHv2THLt2h2JjzfP+oxmvC5ek2fuPtdczCjjN6t8/hz83fNcVFQWn43915+nvDZWmkcKSyhi5sZk8A88VapU+tFMzHhdvCYKFDP+nMx4TeQ+Zm6IiIiCSXxcoM8gxWNwQ0REFEws8YE+gxSPZSkiIiIyFWZuiIiIgkk8MzeeYnBDREQURCwsS3mMZSkiIiIyFWZuiIiIggnLUh5jcENERBRMWJbyGMtSREREZCrM3BAREQUTLuLnMQY3REREwYRlKY+FTFkqPj5epk2bJjVr1pQyZcpI165d5ezZs4keHx0dLQMGDJCKFStKpUqVZMSIERITE+PXcyYiIqLkC5ngZsaMGbJ48WIZNWqULF26VIOdLl26yIMHD5we37t3bzlz5ozMnz9fpk6dKtu3b5fhw4f7/byJiCgEZ0t56xaiQiK4QQAzd+5cDVjq1KkjxYoVkylTpsjFixdl48aNCY4/dOiQ7N27VyZMmCAlS5aUqlWrysiRI2XNmjVy6dKlgFwDERGFziJ+3rqFqpAIbo4dOyZ37tzRIMUQEREhJUqUkH379iU4fv/+/RIVFSVFihSx3ofSVKpUqeTAgQN+O28iIiJKvpBoKEaGBvLkyWN3f86cOa2P2UJ2xvHYtGnTSrZs2eTChQs+PlsiIgppIVxO8paQCG6MRmAEKLbSpUsnN27ccHq847HG8ffv33f7PMLCUunNl8LDw+w+moUZr4vXRM6kTu37186MPydTXVMIl5O8JSSCm/Tp01t7b4zPAYFKhgwZnB7vrNEYx2fMmNHt88iePZOWtvwhIiLhdZmBGa+L1+Sem2JOkZGZ/PZc/N0jswqJ4MYoMV2+fFkKFChgvR9fFy1aNMHxuXPnlk2bNtndh2Dn+vXrWspy17Vrd/ySucE/7ps3YyQuzjzRvxmvi9dEzkRH3/H5c5jx5+Tva/JpEMpF/DwWEsENZkdlzpxZ9uzZYw1ubt68KUeOHJG2bdsmOB5r20yaNEmnghcsWFDvw+wpKF++vNvnER9v0Zs/4B93bKw5/qdl9uviNZEtf75uZvw5meKaWJbyWEgEN+ifQRCDgCV79uySL18+mThxomZoGjRoIHFxcXLt2jXJkiWLlqRKly4t5cqVk379+unaNnfv3pVhw4ZJs2bNJFeuXIG+HCIiInoIE3ReuQZr3LRs2VKGDh0qbdq0kfDwcJkzZ46kSZNGZ0DVqFFDvv76az0WfTHTp0+X/PnzS4cOHaRv375Sq1YtLuJHRES+x0X8PBYSmRtAMDNw4EC9OUIQc/z4cbv7cuTIods1EBER+RXLUh4LmcwNERERhYaQydwQERGlCCFcTvIWBjdERERBxGIJjqng8fHx2n+6bNkyuXXrls4kxuSaRx991OnxV69elbFjx8r3338vFotFqlWrJm+++aZ1Io6zpVcMW7dulbx58+pWSZj88+2338q9e/ekbNmyOobtdkiuYFmKiIiIEpgxY4YsXrxYRo0aJUuXLtVgp0uXLk4XuQVMvjl//rzMmzdPb/i8R48e1sd37txpd1u/fr1ERkbqTGQENoDnwrIt6Hn94osvtF8Wz5nc3QEY3BAREQVbQ7G3bm5CADN37lydaVynTh1dL27KlCm6H+PGjRsTHI+147AeXNeuXaV48eK6MXW3bt3kp59+0gVwARtS294QwCC4QUBjwAK6mNGM5ViQrTECphMnTiTr/BncEBERBZMgmAp+7NgxLRFVrVrVel9ERIQGLfv27UtwPNaIy5Qpk6xevVpu376ttzVr1kihQoX0+xwhc4MgCYGN7V6OmKmMZVlQ4kKAtXz5ct202nZ3AVew54aIiMik6tWr99DHN2/e7PR+ZGhsty8yYAsi4zFbCFDGjx+vPTkVKlTQ9eJw7KJFiyQsLGEeZfLkyXpuONbWmDFjZNCgQdqvg5IU9nNEBgmL7CYHMzdERETBJAjKUjExMfrRNqsC6dKlc9r/ggbio0ePagPw559/LgsWLNA+mu7du2sWxxYyPz///LM+5ghrzqFhGT076PepXLmy9OzZUxfbTQ5mboiIiIKJFzfO3JxIZiYpKDMBSkPG54DAJkOGhDuvb9iwQbM0mPWEvRxh1qxZUrduXS0tdezY0XrsqlWrpFSpUlKyZEm7MX744QctU23ZssXaYPzBBx/IP/7xD83evP322y6fPzM3REREZMcoR12+fNnufnztbI/F/fv3a3+NEdhA1qxZ9T5sQm3AjCsEL02bNk0wxoEDB7TnxghsAFskoc/HdgxXMLghIiIKJkFQlipWrJgGKpiWbTsj6siRI7rejSNsRI0AxLZkhU2nz507J4899pj1Psx6io6O1p4aZ2PgMduACsEQvsd2DFcwuCEiIgomQTBbKm3atNK2bVtdUA+lLcye6tevnwYgDRo0kLi4OLly5YoutAdYqwYwdRvH4ta/f3/t0WnRooV1XARHyMYULlw4wXOihIV+G0w/P3z4sJw8eVLeeecd7bdp3759ss6fwQ0RERElgCCjZcuWMnToUF17BrOX5syZo8EJAo4aNWrotG3AzCg0AKOxuEOHDtKpUyc9DvfZznRCQIRylbMZVJgZtXDhQsmXL58u/te6dWt9niVLlugG18mRyoIzIb+4cuWWz58jdeowiYzMJNHRdyQ21jz7k5jxunhNnrn7XHMxo4zfrPL5c/B3z3NRUcmbmpwc93Yt8dpY6au2kVDE2VJEDvLkKyZmc+GPY2I2/ggCzBoIUJDjxpkeY1mKiIiITIWZGyIiomDCzI3HGNwQEREFEYvFe4v4hSqWpYiIiMhUmLkhIiIKJixLeYzBDRERUTDxYGVh+i+WpYiIiMhUmLkhIiIKJixLeYzBDRERUTBhWcpjLEsRERGRqTBzQ0REFExYlvIYgxsiIqJgwrKUOcpS8fHxMm3aNKlZs6aUKVNGunbtKmfPnk30+OjoaBkwYIBUrFhRKlWqJCNGjJCYmBi7YzZs2CCNGjWSUqVKSbNmzWTXrl3JHsNw4MABKV68uJeuloiIiEwf3MyYMUMWL14so0aNkqVLl2qw06VLF3nw4IHT43v37i1nzpyR+fPny9SpU2X79u0yfPhw6+O7d++WgQMHSuvWrWXVqlVStWpV6datm5w8edLlMWwDm+7du+s5ERER+Rzeb7x1C1EBD24QwMydO1eDjTp16kixYsVkypQpcvHiRdm4cWOC4w8dOiR79+6VCRMmSMmSJTVwGTlypKxZs0YuXbqkx8yePVvq168v7du3lyJFisjgwYP12AULFrg8RmxsrIwbN046dOgg+fLl8/OrQkREIYvBTcoPbo4dOyZ37tzRAMMQEREhJUqUkH379iU4fv/+/RIVFaVBiwFlpVSpUmmWBRmWgwcP2o0HlStXto6X1Bhw9+5dPf7TTz+Vtm3b+uTaiYiIyITBDTI0kCdPHrv7c+bMaX3MFjIrjsemTZtWsmXLJhcuXJCbN29qYJI7d+5Ex0tqDCPAWrlypVSpUsVLV0pERORiQ7G3biEq4LOljCZeBBe20qVLJzdu3HB6vOOxxvH379+Xe/fuJToeHndlDF8JC0ulN18KDw+z+2gWZr0uf0md2j+vmxl/TrymlMFU1xTC5STTBDfp06e39t4YnwOCjAwZMjg93lmjMY7PmDGjBijGeI6PG+MlNYavZM+eSUtf/hARkfC1MwOzXpevRUZm8uvzmfHnxGtKGcx4TZQCgxujPHT58mUpUKCA9X58XbRo0QTHo9y0adMmu/sQqFy/fl1LTygtIUDB99vC17ly5XJpDF+5du2OXzI3+Md982aMxMWZJ/o363X5S3T0Hb88jxl/TrymlMHf1+TTPxhCuJxkmuAGs6MyZ84se/bssQY36Js5cuSI00ZerEszadIkncZdsGBBvQ8zn6B8+fKaGSlXrpze16pVK+v3YfwKFSq4NIavxMdb9OYP+McdG2u+fyBmvS5f8/drZsafE68pZTDFNbEs5bGAFyfR+4IgBsHG5s2bdfZUv379NLvSoEEDiYuLkytXrlh7aUqXLq3BC4758ccfdU2bYcOG6UJ9RmamU6dOsn79epk3b56ubfPee+/J0aNHdVq3q2MQERFRyhTw4Aawxk3Lli1l6NCh0qZNGwkPD5c5c+ZImjRpdPZSjRo15Ouvv9ZjkZmZPn265M+fX4OVvn37Sq1atewW4MPxY8eOlSVLlkjz5s01eJk1a5Z16rcrYxAREQUEZ0t5LJXFYvFPnYTkypVbfpkVg1oweixSfGo2QNeVJ18xMZsLfxzzy/OY8feP15Qy+PuaoqKy+GzsmOWjvTZWhpZDJRQFReaGiIiIyDQNxURERGSDDcUeY3BDREQUTNgt4jGWpYiIiMhUmLkhIiIKJixLeYzBDRERUTBhcOMxlqWIiIjIVJi5ISIiCiYhvPietzC4ISIiCiYsS3mMZSkiIiIyFWZuiIiIggnXufEYgxsiIqJgwrKUx1iWIiIiIlNh5obIAXfQpkD64akuYjZl/vNpoE8hZWHmxmMMboiIiIIJp4J7jGUpIiIiMhVmboiIiIKIJZ6zpTzF4IaIiCiYsOcmsMHNyZMn5fvvv5fLly9Lu3bt5OzZs1KsWDHJnDmz52dGRERE5K/gJj4+XoYNGyYrVqwQi8UiqVKlkn/84x8yY8YM+f3332XRokWSO3dud4YmIiIKbWwoDkxDMYKYdevWyejRozVzgwAHBg4cqIHPlClTPD8zIiKiUISeG2/dQpRbwQ0yNr1795YXX3xRsmXLZr2/ePHiej8CHiIiIqIUU5b6888/NZBxJleuXHLz5k1Pz4uIiCg0saE4MJmbggULyvbt250+tnfvXn2ciIiI3AxuvHULUW5lbjp06KANxX/99ZfUrVtXG4rPnDkje/bskblz58qbb77p/TMlIiIi8lVw06pVK7l27ZrMnDlTlixZog3F/fv3lzRp0kiXLl2kTZs27gxLRERE/5ukQwFY5+bVV1+Vl19+WQ4dOiTXr1+XiIgIKV26tF2Dsasww2r69OmybNkyuXXrllSsWFEzQ48++qjT46Ojo3Wm1nfffadZo8aNG8ugQYMkQ4YM1mM2bNggH374oZw7d04KFy4sgwcPlqpVq7o8Bs4JWSic06VLlyRfvnzSsWNHDeyIiIh8JoTLSUGxtxQW66tZs6Y0bdpUcuTIof027jQTY2r54sWLZdSoUbJ06VINLJABevDggdPjMSMLZbD58+fL1KlTtf9n+PDh1sd3796t09Jbt24tq1at0qCmW7duuuigq2N8/PHHeuvTp4+sXbtW2rdvr4+vXr062ddHRERE/uNWcGOsSIygBLBoHzIaCBgaNGggv/76q8tjIYBBhgTfW6dOHV3hGOvkXLx4UTZu3JjgeGSKEERNmDBBSpYsqYHLyJEjZc2aNZphgdmzZ0v9+vU1IClSpIhmbXDsggULXB4D5bZXXnlFGjVqJAUKFJD/+7//kxdeeEEzOURERD7DdW4CE9xMnDhRTp8+LU8//bRmWWbNmiXVqlXTrMbjjz8u77//vstjHTt2TO7cuWNXMkKJq0SJErJv374Ex+/fv1+ioqI0aDFUqlRJS0sHDhzQ8zl48KDdeFC5cmXreK6MgcCnefPmdmOEhYVxmjsREfl+hWJv3UKUW8HNzp07NRuCkhQCCax7gywJsi4oJyF4cBUyNJAnTx67+3PmzGl9zBYyK47Hpk2bVnt9Lly4oMHH3bt3E2z/YDteUmMgiEFwZDvG+fPnZf369VKjRg2Xr42IiIhSSEOxbfCAhlwEBlWqVNGv8bmxHYMrYmJirN9nK126dHLjxg2nxzseaxx///59uXfvXqLj4XFXxnCE4K1r167aV/T666+Lu8LCUunNl8LDw+w+moUZr4vXlDKY8Zr8LXVq3792pvo5hXA5KaDBzWOPPabZmTJlysg333yjJR0EBoDmWzzuqvTp01t7b4zPAUGG7ewn2+OdNRrj+IwZM1rPw/EY2/GSGsPWqVOntBk5Li5OFi5cqCUzd2XPnklLX/4QEZHwtTMDM14XryllMOM1+UtkZCa/PZcZfk4WzpYKTHCDLAbKUnPmzNEsDqZtQ8uWLeXIkSMyadIkl8cyykNoUkbjrgFfFy1aNMHxyBht2rTJ7j4EKpiOjtITSksIUPD9tvA1toZwZQwD+m+QqcH3ffrpp9bvd9e1a3f8krnBP+6bN2MkLs48/0DMeF28ppTBjNfkb9HRd0z3c/JnwBYo8clcpuXq1asyduxY64ba6MXFor7Ge6ez93TD1q1bJW/evPo5YgvMoL5y5Yr28WKZFqM65NPgpkmTJhqU4M0fWRtkcAAXjllPtWrVcnks9OlgSjlWNzaCG/TNIEhq27ZtguPxHAieMI3b2OYBM5+gfPnymhkpV66c3me7Jg3Gr1ChgktjwI8//qj9Q2hsxmKFnmRsDPHxFr35A/5xx8aa73/EZrwuXlPKYMZr8hd/vm6m+DkFSVlqxv+WaRk/frwmBTCZCO+L69atc9ra0bdvX4mNjZV58+ZpcDNixAjp0aOHLF++3NqvawutJ3ifr127tjWwwXNixvOYMWP0/RcVEyQZUBVKLKjy6iJ+CAKMQMCAbA7golwtv+AFwsUh2MiePbsulocXEC8kppWjHITVkLNkyaLlJCwUiOClX79+uu6MkTlq1qyZNTrs1KmTlpLwwiDQwi7mR48e1RcLkhoDP5w33nhDe2zwQ0W5ChEkhIeH63kSERH5RBDMcnrwv2Va8F6IZVoAy7RgIhGWaUGSwxaSEkgSIBlgbKyN9+Hu3btrVQRVFcxStoW17SIjI/Uj4L0YgQ2eE8uwwNtvv61tMEim+CW4+frrr/VC8AIYDcT4iJP74YcftNHYVcj2IKAYOnSoNgQjs4K0FLZzwArD9erVk3HjxkmLFi00aEKaDBEh9rhCj03Dhg1lyJAh1vEwowmpMUSA+GEgrYXp6sbU76TGQNYGWR3Aejm2EHxt2bLF3ZeNiIgo6B1LYpkWx+AGyYdMmTLpkjCo6ADWjitUqJDTygeyOAiSsE6ekQVCAIMJP9gxwICEArI2yeVWcIPAADdkUxCUIAhJnTq1ZlgwjTq5WxTg5LGiMG6O8ufPL8ePH7e7DxmVadOmPXRMZGFwS8zDxkBWx/E5iYiIUlpZql69eg99fPPmzV5ZpgUBCiodqIKgBQRJBByL4AVxgaPJkyfruRntIoD187Jmzarvvx988IH89ttvmpxAlQXvy8nh1pw5bGmAwAGZG+y3hJ3B//3vf2tdDamnJ554wp1hiYiICLOlvHVz08OWaXG2ZAoqN2j/KFu2rHz++ee6IwD6aFCWun37tt2xyPz8/PPP+pgtHIfqDQIktJegRIXZ16iw2G6f5LPMDRbBw35SiMxQW8PidvDUU0/Ja6+9pp3VzpqBiYiIyH82J5KZ8fYyLdisGlkazHrCJCFAOwiSH0h8IBFimyApVaqUbn9kCxUgBDdvvfWWNhkDjsGWSRj73Xff9W3mBlOtjYZhzDZCX4yxeB6CHXxNREREKXNvqTw2y7QktqyKLTT9or/GCGwAJSbcZ/Sw6qXFx2vfKhIkjozFgW2njCPWQL9scuMKt4Ib7Cll7I6NE0fPzK5du/RrpI6cTREjIiKilLG3VDGbZVoMxjItmPTjLDBBEGNbssIEIwQltgv7njhxQqKjo3UNHEdGrw4mJVlfCotFv8dYtsWnZSmUnlAPw4Ui7fT888/rNHBsTokOaMcZRkRERJRypE3mMi3ow8UsZ6x106dPHx0DTcHo0cFMZwOCI0xCKly4cILnRI/Oiy++KKNHj9bSF9a+++yzzzRAeumll3wf3CBqQw3NmFGE5h90Q2MTTUypxoqERERElHIX8eudjGVaMDMKC/4hAEIDMGICZGJwHwIgA9aMQ7nK2QwqwNpzmI2N58Qif5h6jvV2nAVDD5PKkpxdLskjV67c8ssGdVgWHMudp/hVOk1+XbymlMHf1/TDU13EbMr851PT/Zyiov5+w/a220Ne9NpYmcetkFDk9iJ+6KBG9gZTwBGJYdE8TA1HZzO6oImIiIgCwa2GYtTZUBfDdgZoIMKKvkhZYQpYu3btdNoWERERpczZUiEZ3Lz33nu6LDO2YMB8daOy9eGHH+pMqqRWDyYiIqJEMLgJTHCDDA26oTE1y3aDTHRFv/LKK7ryIBEREVGK6bnBPHZss+AM1rz566+/PD0vIiKi0BQEu4KndG4v4ofpXc6sW7dOt2EgIiIiN7AsFZjMDUpS2CfihRde0P0fUJr66quvtOcGi/h9+qnvp/0REREReS24wcI88+bNk/fff18DGTQUz58/Xxfb+fjjj6VKlSruDEspUKYvh/jtue6ir+t/N19qOeGUmM2CA18E+hQohNeEoeSxhHDGJaDBDfaRwrbmS5cu1SngWEUQe1BkypTJaydGREQUkhjcBKbnplevXrJx40b9HHtKYIdQBjZERESUYjM3ERERGtQQERGRl8WzVBiQ4ObVV1/VXTtPnz6t26JnzJgxwTHOtkQnIiKiJLAsFZjg5t1339WPU6ZM0Y+YLYWmYtuPR48e9e6ZEhEREfkquFm4cKE730ZERERJYeYmMMFNpUqVJD4+Xn755RctSwF2Bj9y5IhUr15dUqd2e7NxIiKikGbs10h+ni116dIlXcCvZ8+e1vsQ2KAXp23btnL9+nUPTomIiIgoALuCP3jwQCZNmmS9DysVr1y5UgMbLO5HREREbuD2C4EJbv7973/LG2+8IWXKlLG7HysUY2sG7BpOREREbmBwE5jgBlkb7P7tTIYMGeTOnTuenhcRERGR/4Kb0qVL695Sf/31l939sbGxOpOqVKlS7p0NERFRiMPeUt66hSq3pjX17t1b2rVrJ/Xq1ZNatWpJjhw55Nq1a/L999/L1atX5bPPPkvWeJh5NX36dFm2bJncunVLFwAcNmyYPProo06Pj46O1kUEv/vuO11Tp3HjxjJo0CDNGhk2bNigu5SfO3dOChcuLIMHD5aqVau6PEZcXJx89NFHsmrVKr2mxx9/XK+7Tp067rxkRERErgnhoCSgmRv02nzxxRf6cdu2bTJnzhzZtGmTlCxZUjfTTG7mZsaMGbJ48WIZNWqUfj+CnS5dumj5yxkEGWfOnNGdyKdOnSrbt2+X4cOHWx/fvXu3DBw4UFq3bq3BCYKabt26ycmTJ10eA/ctWbJEFyxcv369PPvss9K9e3f5z3/+485LRkRERMEc3BjNw9OmTZOdO3fqGz52CkempHjx4skaBwHM3LlzrVkRrJuDlY8vXrxo3ZzT1qFDh2Tv3r0yYcIEDaYQuIwcOVLWrFmjU9Rh9uzZUr9+fWnfvr0UKVJEszY4dsGCBS6PgZLb22+/reeEDNLrr7+um4MicCIiIvKZeC/eQpTbwQ0g2zFu3Djp37+/nD17VoORP/74I1ljHDt2TBuQbUtG2JgTwdO+ffsSHL9//36JiorSoMV2UUGUlg4cOKBZn4MHD9qNB5UrV7aOl9QYgICoSZMm+vm9e/e01BYTE6PjEBER+Qp7bgLUc4M3+R49euiU8MyZM2tw0rlzZy3jYDG/RYsWyRNPPOHSWMjQQJ48eezuz5kzp/UxW8isOB6bNm1ayZYtm1y4cEFu3rwpd+/eldy5cyc6XlJj2Fq7dq324mDFyF69esnTTz/t0nURERFRCgpuJk+eLD///LP2q1SoUEGeeuopvR9lHvTKoF8FDcKuBkpGcGErXbp0cuPGDafHOx5rHH///n3NsiQ2Hh53ZQxbaG5evXq1NkvjurNnzy4vvfSSuCMsLJXefCk8PMzuIxGkTu2f3wcz/v7xmlIGU11TCGdcAhrcYCYSSlFVqlTRWUW22RH0pqB/xVXp06e39t4YnwOCDNvZT7bHO2s0xvEZM2bUAMUYz/FxY7ykxrCFDA9u6AVCAzKap90NbrJnz6SlL3+IiEj42vnCXb88C3kqMjKTX5/PX79//sRrShlMcU0h3CsT0OAGpZ98+fI5fSxr1qxaFnKVUR66fPmyFChQwHo/vi5atGiC41FuwswsWwhUsO0DgiuUlhCg4Ptt4etcuXK5NAbW68EsMPT95M2b13oMzgdbTLjr2rU7fsnc4B/3zZsxEhfn+38h/w0lKdhFR/tnYU1///75A68pZfD3Nfn7DwbyQ3CDfpp169ZJjRo1Ejy2ZcsWl/ttABkR9O3s2bPHGtwgeELvDjbhdIQyEfa0QhalYMGCeh9mPkH58uU1M1KuXDm9r1WrVtbvw/goobkyBlZffuedd6Rly5YyYMAA6xiHDx/W9W7cFR9v0Zs/4B93bCyDG/ovf/wuBOL3z594TSmDGa4plBuBAxrcoPSEHcGR6ahbt64GFJiJhKwG1qlJzsaZ6H1BEINgA/0syAhNnDhRsysNGjTQshcWCMySJYuWk7A6MoKXfv366bo0yBJhwb9mzZpZMzOdOnXSdW2QecEigytWrJCjR4/KmDFj9HFXxnjllVe0b+jJJ5/UJmLMBPvqq690ujsREZHPpOzYLCiksmAakBuQuUEQYzujCSsV9+3b1y5j4goEMGjWRXCEhmBjheL8+fPrCsNYCRlTzlu0aKHHY8XgESNGyI4dO7THpmHDhjJkyBBrvw2gCRiLA+L8kG3Bon6208OTGgNTyrGVBBYXxAwqrHKM2VJYP8ddV67cEn80jiJdijKEP/56yfTlEDGblhNOidksOPCFX57H379//sBrShn8fU1RUVl8Nnb0i95bCT9yxTYJRW4HN4ZTp05pBgdr0yAACAszQae6jzC4SRkY3LiPb5opA68puIOba81re22s7Ku2SyhyqyxlCwENEREReYk54s2UEdw888wzyZrGvHnzZnfPiYiIiMj3wY2xPYHRj4LNJNHkW7t2bd3KAKUpLHSH5t//+7//c/+MiIiIQpiFmRv/BTfjx4+3fo6ZTdj5Gwva2S60h80mMZMqOevcEBERkQ0GNx5zq/t32bJl0rVr1wQrCKdJk0batWsnX3/9tednRkREROTPhmJn+z7B+fPn7aZkExERketYlgpQ5gbNxShNocfGgBnl3377rXzwwQfSqFEjL5waERFRCIr34i1EuZW5wWJ3J06ckM6dO+sKw9hPKjo6Whfjq169ui6YR0RERJRighss2Pfll1/K9u3b5cCBA1qiioyM1F3CbVcBJiIiouRhWSqAPTeYFl6nTh29JQZTxp999lmZNWtWsjbTJCIiClUMbjzn070S0Ifzxx9/yIMHD3z5NERERETe236BiIiIvIeZG88xuCEiIgomFte3OiLnGNyQR+78c5zpdvxd8E8x3TVl/OAV8Zc7IpL2fzez8Oc13dpxxefPESciF8V/wles8+OzETG4ISIiCiosS3mOwQ0REVEQscSzLBXUs6WIiIiI/I2ZGyIioiDCslSAMjeXLl1yeaG/ihUrSqZMmdx5GiIiopBjsaTy2i1UuRXc1K1bV7p06SJff/31QxfoCwsLk88++0wee+wxT86RiIiIyLfBzbhx43RrhTfeeENq1KghI0aMkJ9++smdoYiIiMihLOWtW6hyq+fmhRde0BvKU6tWrZI1a9bIkiVL5PHH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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%time\n", "\n", "## limitation of the above to 20 randomly chosen combinations\n", "from sklearn.model_selection import RandomizedSearchCV\n", "params = {'min_impurity_decrease': np.arange(0, 0.001, 0.0001),\n", " 'min_samples_leaf': range(1, 41, 5)}\n", "model = DecisionTreeClassifier(random_state=1234)\n", "rscv = RandomizedSearchCV(\n", " model, \n", " param_distributions=params, \n", " cv=10, ## default: 5\n", " n_iter=20) ## default: 10\n", "rscv.fit(X_train, y_train)\n", "\n", "## pivot table and heatmap\n", "plt.figure(figsize=(6,5))\n", "cv_results = pd.pivot_table(pd.DataFrame(rscv.cv_results_),\n", " values='mean_test_score', \n", " index='param_min_impurity_decrease', \n", " columns='param_min_samples_leaf')\n", "sns.heatmap(cv_results,\n", " yticklabels=cv_results.index.values.round(4));\n", "\n", "## the most important attributes\n", "print('best_params_ :', rscv.best_params_)\n", "print('best_score_ :', rscv.best_score_)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "define a distribution instead of a grid" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "best_params_ : {'max_depth': 51, 'min_impurity_decrease': np.float64(0.0008772041621438149), 'min_samples_leaf': 16}\n", "best_score_ : 0.879809712311405\n", "CPU times: user 1.17 s, sys: 4.53 ms, total: 1.18 s\n", "Wall time: 1.18 s\n" ] } ], "source": [ "%%time\n", "\n", "from scipy.stats.distributions import uniform\n", "params = {\n", " 'max_depth': range(1, 101),\n", " 'min_samples_leaf': range(1, 21),\n", " 'min_impurity_decrease': uniform(0, 0.001) ## instead of np.arange()\n", "}\n", "\n", "model = DecisionTreeClassifier(random_state=1234)\n", "rscv = RandomizedSearchCV(\n", " model, \n", " param_distributions=params, \n", " cv=5,\n", " n_iter=20) ## default: 10\n", "rscv.fit(X_train, y_train)\n", "\n", "#print('best_estimator_ :', rscv.best_estimator_)\n", "print('best_params_ :', rscv.best_params_)\n", "print('best_score_ :', rscv.best_score_)" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "## all details (if needed)\n", "print(rscv.cv_results_)" ] } ], "metadata": { "kernelspec": { "display_name": "teaching", "language": "python", "name": "teaching" }, "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.13.0" }, "toc": { "base_numbering": "4.3", "nav_menu": { "height": "189px", "width": "303.333px" }, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "4.3 Validierung und mehr - Grid Search und Random Search", "title_sidebar": "Contents", "toc_cell": true, "toc_position": { "height": "calc(100% - 180px)", "left": "10px", "top": "150px", "width": "230.667px" }, "toc_section_display": true, "toc_window_display": true }, "toc-autonumbering": true, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "position": { "height": "298.85px", "left": "782px", "right": "20px", "top": "120px", "width": "350px" }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }