{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "provenance": [] }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "language_info": { "name": "python" } }, "cells": [ { "cell_type": "markdown", "source": [ "**Gradient Boosting regression**" ], "metadata": { "id": "nxmvYLqvDyLo" } }, { "cell_type": "code", "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "from sklearn import datasets, ensemble\n", "from sklearn.inspection import permutation_importance\n", "from sklearn.metrics import mean_squared_error\n", "from sklearn.model_selection import train_test_split" ], "metadata": { "id": "2-XgHpkGDzXw" }, "execution_count": 1, "outputs": [] }, { "cell_type": "markdown", "source": [ "Loading the data ...." ], "metadata": { "id": "wLXLkDTZEA3D" } }, { "cell_type": "code", "source": [ "diabetes = datasets.load_diabetes()\n", "X, y = diabetes.data, diabetes.target" ], "metadata": { "id": "E8-kgh31EEJ8" }, "execution_count": 2, "outputs": [] }, { "cell_type": "markdown", "source": [ "splitting the data set in training and testing 90:10, and setting up the parameters of regression model" ], "metadata": { "id": "qJTLKcx3EL_l" } }, { "cell_type": "code", "source": [ "X_train, X_test, y_train, y_test = train_test_split(\n", " X, y, test_size=0.1, random_state=13\n", ")\n", "\n", "params = {\n", " \"n_estimators\": 500,\n", " \"max_depth\": 4,\n", " \"min_samples_split\": 5,\n", " \"learning_rate\": 0.01,\n", " \"loss\": \"squared_error\",\n", "}" ], "metadata": { "id": "Fr_19Lc8ENsc" }, "execution_count": 3, "outputs": [] }, { "cell_type": "markdown", "source": [ "Now we will initiate the gradient boosting regressors and fit it with our training data. Let’s also look and the mean squared error on the test data." ], "metadata": { "id": "AMAZXfIHEYQ6" } }, { "cell_type": "code", "source": [ "reg = ensemble.GradientBoostingRegressor(**params)\n", "reg.fit(X_train, y_train)\n", "\n", "mse = mean_squared_error(y_test, reg.predict(X_test))\n", "print(\"MSE on test set: {:.4f}\".format(mse))\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "F1qcrQaeEdC5", "outputId": "c09d6794-0d10-4056-ab51-f51f01e31f92" }, "execution_count": 8, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "MSE on test set: 3025.2378\n" ] } ] }, { "cell_type": "markdown", "source": [ "**Plot training deviance**" ], "metadata": { "id": "NfaAkYReEhcn" } }, { "cell_type": "markdown", "source": [ "at the end we have the results. for that that we will first calculate the test set deviance and then plot it against boosting iterations.\n" ], "metadata": { "id": "2sZhUqydElZw" } }, { "cell_type": "code", "source": [ "test_score = np.zeros((params[\"n_estimators\"],), dtype=np.float64)\n", "for i, y_pred in enumerate(reg.staged_predict(X_test)):\n", " test_score[i] = mean_squared_error(y_test, y_pred)\n", "\n", "fig = plt.figure(figsize=(6, 6))\n", "plt.subplot(1, 1, 1)\n", "plt.title(\"Deviance Model\")\n", "plt.plot(\n", " np.arange(params[\"n_estimators\"]) + 1,\n", " reg.train_score_,\n", " \"b-\",\n", " label=\"Training Set Deviance\",\n", ")\n", "plt.plot(\n", " np.arange(params[\"n_estimators\"]) + 1, test_score, \"r-\", label=\"Test Set Deviance\"\n", ")\n", "plt.legend(loc=\"upper right\")\n", "plt.xlabel(\"Boosting Iterations\")\n", "plt.ylabel(\"Deviance\")\n", "fig.tight_layout()\n", "plt.show()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 441 }, "id": "Sm7zU63nEmO1", "outputId": "0011ea37-394f-48ad-e1fe-de1216d710dd" }, "execution_count": 9, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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mDKpdceOHZx33nl07dqVLl26cOyxx7Jt27Yi33PXXXcV+lqrVq3o2rUrXbt2pVOnTvzpT3866MEqP//8M2edddZBvbc8RXKQRGv8YmpPmVl3YA5wNdA4WOwN4BegcfC4GX7htRzpwbbCtotIFVO/fn3mzZsHwO23305ycjLXXXdd7ut79+6lWrWCf62lpqaSmppa7GfMmjWrTGq97777aNy4Md999x0AixYtKnb02l133cUtt9xS6OsfffQRDRo0YNu2bYwbN45LLrmEZ555ptD9C9O0aVMmTZpU6veVt0h28VUDegKPOOd64FfqvCnvDs6vllgmKyaa2Tgzm21ms9evX18WhxSRCuCCCy7g0ksv5aijjuKGG27gyy+/5Oijj6ZHjx4cc8wxLFq0CICPP/6Y4cOHAz7cLrzwQgYOHEibNm24//77c4+XnJycu//AgQM566yz6NChA+eddx45C7xOnjyZDh060KtXL6666qrc4+a1Zs0amjXb93/p9u3bk5CQAMDzzz9Pnz59SElJ4ZJLLiErK4ubbrqJnTt3kpKSwnnnnVfkd05OTubRRx/ljTfeYNOmTQD885//pHfv3nTr1o3bbrsNgJtuuomHHnoo9323334799xzDytWrKBLly4ArFixguOOO46ePXvSs2fP3IAu6vt/9dVXHHPMMXTv3p0+ffqQkZFBVlYW119/fW4Njz32WIn+/IoSyRZUOpDunPsieD4JH1BrzayJc25N0IW3Lnh9NdAiz/ubB9tWAwPzbf84/4c55yYAEwBSU1O1TLBIhF1zDQSNmTKTkgL/+U/p35eens6sWbOIjY1l69atfPLJJ1SrVo3333+fW265hVdfffWA9/zwww989NFHZGRk0L59ey677LIDWjhz585l/vz5NG3alH79+jFz5kxSU1O55JJLmDFjBq1bt+bcc88tsKYLL7yQtLQ0Jk2axKBBgxgzZgxt27Zl4cKFTJw4kZkzZxIXF8f48eN54YUXuPvuu3nwwQdzW4jFqVWrFq1bt2bJkiVs2bKFJUuW8OWXX+Kc49RTT2XGjBmMHDmSa665hssvvxyAV155hffee4+srKzc4zRq1Ihp06aRmJjIkiVLOPfcc3PnMi3o+/fp04eRI0cyceJEevfuzdatW0lKSuKJJ56gdu3afPXVV+zevZt+/fqRlpZW4iHlBYlYQDnn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\n" }, "metadata": { "needs_background": "light" } } ] } ] }