{ "cells": [ { "cell_type": "markdown", "id": "4d2a8b6c", "metadata": {}, "source": [ "#### Database" ] }, { "cell_type": "code", "execution_count": 247, "id": "7be9eeff", "metadata": {}, "outputs": [], "source": [ "PROJECT_PATH = '/home/md/Work/ligalytics/leagues_stable/'\n", "import os, sys\n", "sys.path.insert(0, PROJECT_PATH)\n", "os.environ.setdefault(\"DJANGO_SETTINGS_MODULE\", \"leagues.settings\")\n", "\n", "from leagues import settings\n", "settings.DATABASES['default']['NAME'] = PROJECT_PATH+'/db.sqlite3'\n", "\n", "import django\n", "django.setup()\n", "\n", "from scheduler.models import *\n", "from common.functions import distanceInKmByGPS\n", "season = Season.objects.filter(nicename=\"Imported: Benchmark Season\").first()\n", "import pandas as pd\n", "import numpy as np\n", "from django.db.models import Count, F, Value\n", "games = Game.objects.filter(season=season)\n", "df = pd.DataFrame.from_records(games.values())\n", "games = Game.objects.filter(season=season).annotate(\n", " home=F('homeTeam__shortname'),\n", " away=F('awayTeam__shortname'),\n", " home_lat=F('homeTeam__latitude'),\n", " home_lon=F('homeTeam__longitude'),\n", " home_attr=F('homeTeam__attractivity'),\n", " away_lat=F('awayTeam__latitude'),\n", " away_lon=F('awayTeam__longitude'),\n", " away_attr=F('awayTeam__attractivity')\n", ").values()\n", "\n" ] }, { "cell_type": "markdown", "id": "bc191792", "metadata": {}, "source": [ "#### Dataframe" ] }, { "cell_type": "code", "execution_count": 248, "id": "1e404cf8", "metadata": {}, "outputs": [], "source": [ "from sklearn.preprocessing import OneHotEncoder\n", "\n", "# create dataset\n", "df = pd.DataFrame.from_records(games.values())\n", "\n", "# pivots\n", "pivot_homeTeam_mean = df.pivot_table('attendance','homeTeam_id',aggfunc='mean')\n", "pivot_homeTeam_max = df.pivot_table('attendance','homeTeam_id',aggfunc='max')\n", "\n", "# add more features\n", "df['weekday'] = df.apply(lambda r: r['date'].weekday(), axis=1)\n", "df['day'] = df.apply(lambda r: r['date'].day, axis=1)\n", "df['month'] = df.apply(lambda r: r['date'].month, axis=1)\n", "df['year'] = df.apply(lambda r: r['date'].year, axis=1)\n", "df['distance'] = df.apply(lambda r: distanceInKmByGPS(r['home_lon'],r['home_lat'],r['away_lon'],r['away_lat']), axis=1)\n", "df['weekend'] = df.apply(lambda r: int(r['weekday'] in [6,7]), axis=1)\n", "df['winter_season'] = df.apply(lambda r: int(r['month'] in [1,2,3,10,11,12]), axis=1)\n", "df['home_base'] = df.apply(lambda r: pivot_homeTeam_mean.loc[r['homeTeam_id'],'attendance'], axis=1)\n", "df['stadium_size'] = df.apply(lambda r: pivot_homeTeam_max.loc[r['homeTeam_id'],'attendance'], axis=1)\n", "\n", "# one hot encoding\n", "ohe_fields = ['time', 'historic_season']\n", "\n", "for field in ohe_fields:\n", " ohe = OneHotEncoder()\n", " transformed = ohe.fit_transform(df[[field]])\n", " df[ohe.categories_[0]] = transformed.toarray()\n", "\n", "# sort label to last index\n", "cols = list(df.columns)\n", "cols.append(cols.pop(cols.index('attendance')))\n", "df = df[cols]" ] }, { "cell_type": "code", "execution_count": 249, "id": "e69d24dc", "metadata": {}, "outputs": [], "source": [ "#Importing Libraries\n", "import numpy as np # linear algebra\n", "import pandas as pd # data processing\n", "import matplotlib.pyplot as plt # plotting library\n", "from sklearn.model_selection import train_test_split,cross_val_score, cross_val_predict\n", "from sklearn import metrics\n", "from sklearn.linear_model import LinearRegression\n", "from sklearn.preprocessing import PolynomialFeatures\n", "from sklearn.tree import DecisionTreeRegressor\n", "from sklearn.ensemble import RandomForestRegressor" ] }, { "cell_type": "markdown", "id": "e2ea08e5", "metadata": {}, "source": [ "#### Train/Test Data - Normalization" ] }, { "cell_type": "code", "execution_count": 257, "id": "74e12f87", "metadata": {}, "outputs": [], "source": [ "from sklearn.model_selection import train_test_split\n", "\n", "\n", "remove_columns = ['season_id', 'resultEntered', 'reversible', 'reschedule', 'homeGoals', 'awayGoals',\n", " 'homeGoals2', 'awayGoals2', 'homeGoals3', 'awayGoals3', 'home', 'away', 'date', 'time', 'historic_season', 'id', 'homeTeam_id', 'awayTeam_id']\n", "feature_cols = list(set(df.columns[:-1]) - set(remove_columns))\n", "# feature_cols = ['weekday','weekend','home_base','distance','winter_season']\n", "label = 'attendance'\n", "\n", "\n", "X = df[feature_cols] # Features\n", "y = df[label] # Target variable\n", "\n", "X_train, X_test, y_train, y_test = train_test_split(\n", " X, y, test_size=0.3, random_state=1) # 70% training and 30% test" ] }, { "cell_type": "markdown", "id": "94ade4b4", "metadata": {}, "source": [ "#### Decision Tree" ] }, { "cell_type": "code", "execution_count": 183, "id": "4c9bdd0d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "FITTING...done\n", "VISUALIZE\n" ] }, { "data": { "text/plain": [ "True" ] }, "execution_count": 183, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pydotplus\n", "from six import StringIO\n", "from sklearn.tree import export_graphviz\n", "from sklearn.tree import DecisionTreeRegressor \n", "from sklearn.preprocessing import OneHotEncoder\n", "\n", "\n", "# Create Decision Tree classifer object\n", "regr = DecisionTreeRegressor(max_depth=5, random_state=1234)\n", "\n", "# Train Decision Tree Classifer\n", "print(\"FITTING...\", end=\"\")\n", "regr = regr.fit(X_train, y_train)\n", "print(\"done\")\n", "\n", "# Predict the response for test dataset\n", "y_pred = regr.predict(X_test)\n", "\n", "\n", "# %%\n", "\n", "\n", "print(\"VISUALIZE\")\n", "dot_data = StringIO()\n", "export_graphviz(regr, out_file=dot_data,\n", " filled=True, rounded=True,\n", " special_characters=True, feature_names=feature_cols)\n", "graph = pydotplus.graph_from_dot_data(dot_data.getvalue())\n", "graph.write_png('attendance.png')\n", "# Image(graph.create_png())" ] }, { "cell_type": "code", "execution_count": null, "id": "a3297f84", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "c2e02abe", "metadata": {}, "source": [ "#### Other Models" ] }, { "cell_type": "code", "execution_count": 193, "id": "3eeb8fa4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Suppport Vector Regression Accuracy: -0.026734414429896436\n", "R2 square: -0.026734414429896436\n", "MAE: 3585.035752797511\n", "MSE: 36159653.599150375\n" ] } ], "source": [ "from sklearn.svm import SVR\n", "from sklearn import metrics\n", "regressor= SVR(kernel='rbf')\n", "regressor.fit(X_train,y_train)\n", "y_pred_svm=regressor.predict(X_test)\n", "#y_pred_svm = cross_val_predict(regressor, x, y)\n", "mae=metrics.mean_absolute_error(y_test, y_pred_svm)\n", "mse=metrics.mean_squared_error(y_test, y_pred_svm)\n", "# Printing the metrics\n", "print('Suppport Vector Regression Accuracy: ', regressor.score(X_test,y_test))\n", "print('R2 square:',metrics.r2_score(y_test, y_pred_svm))\n", "print('MAE: ', mae)\n", "print('MSE: ', mse)" ] }, { "cell_type": "markdown", "id": "1899ba5a", "metadata": {}, "source": [ "#### Correlation Matrix" ] }, { "cell_type": "code", "execution_count": 197, "id": "738f39ca", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 197, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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xo1iux22XWWb7bttx/Pjn2b8G2O4/OpLytd33W4bhj37OM+MHcHI0cPovlM3ANqs24Z/33MLz40bxVPPP8FWW29VkGNpLC676iLGTRrNMy89xXY7dF1lm+122JZnx41g3KTRXHbVReXrbxp8PU+PGcbTY4bxyltjeHpM5nvXYUccUr7+6THDmLngY7put3VBjkcZ5557Lj179qR///51HYoquPbaa5kyZQqvvfYa3bp1W2WbSy65hI8//pgFCyrf72XgwIHMmjWLiRMnMnHiRI4//vhChNzo7LVHD557ajCjR93ByScdudL2NdZozg3XncfoUXfw6P3X06njRgCst25rhtx5De9OGsol559W3r5FizX596DLeXb4YEY9cSvnnnVCwY5FVVtawP/qQrVJakqpVUqpdfbfJiml5tlHk5RS62XtImKb/Iaaf/v025tNN9uUHl17cuYpv+Mv112xynZ/ue4Kzjj5t/To2pNNN9uUvfv2AeCCS//MlZdezV677sPlF1/J+ZdmZug64+zf8Pprb7LHzn349fGncvlfLl7lfpW7ffr1YdPNN2Hn7Xrx21PO4cq/Xb7Kdlddezlnnnw2O2/Xi00334S9+/YG4ISBv6Z3z3707tmPxx4eymMPPwHA/fc8WL7+17/4DR99+DFvTHqrYMclOPTQQxk0aFD1DVUw+++/P126dKFLly6ceOKJ3HDDDats9+ijj7Lzzjuvcts999xDt27d6NatGzfffHM+w22UmjRpwqUX/IZjfv57evc7lh8fuDddNv9+pTZHDjiAefMW0KvPMdx06xD+eM5JAHzz7SKuvOYWLr585fP6z0H3sGffgfQ76AR67NiV3nuu+vxKtSmXy/3Vub0W91Un9u/fj3vuuheAl8dNoE2b1mxUUvl+BRuVtKNVq5a8PG4CAPfcdS8HHLgfACklWrVuBUDrNq2YUToDgC232oLnnx0NwJR3p9L5+53ZsN0GBTmmhm6/H/XlnrvuA+CV8VWfs1fGLztn97F//34r7evgQw/kwSEPr7T+0AEH89B9j+QhelWlR48etGnTpq7DUAUHH3ww//73vwF46aWXWHfddSkpKVmp3UsvvcSMGTMKHZ6AbttvxYcfTefjT0pZvHgJDz82in777FapTd99dmPIA5mrRo8/8Sy9enYHYOHCbxj/yht8u2hRpfbffPMtL459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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "# GETTING Correllation matrix\n", "corr_mat=X_train.corr(method='pearson')\n", "plt.figure(figsize=(20,10))\n", "sns.heatmap(corr_mat,vmax=1,square=True,annot=True,cmap='cubehelix')" ] }, { "cell_type": "code", "execution_count": 198, "id": "38f78b1c", "metadata": {}, "outputs": [], "source": [ "from sklearn.preprocessing import StandardScaler\n", "\n", "X_Train=X_train.values\n", "X_Train=np.asarray(X_Train)\n", "\n", "# Finding normalised array of X_Train\n", "X_std=StandardScaler().fit_transform(X_Train)" ] }, { "cell_type": "code", "execution_count": 199, "id": "ab28ec86", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Cumulative explained variance')" ] }, "execution_count": 199, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from sklearn.decomposition import PCA\n", "pca = PCA().fit(X_std)\n", "plt.plot(np.cumsum(pca.explained_variance_ratio_))\n", "plt.xlim(0,7,1)\n", "plt.xlabel('Number of components')\n", "plt.ylabel('Cumulative explained variance')" ] }, { "cell_type": "code", "execution_count": 200, "id": "b40d92f1", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/md/miniconda3/envs/leagues/lib/python3.7/site-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variable as a keyword arg: y. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.\n", " FutureWarning\n", "/home/md/miniconda3/envs/leagues/lib/python3.7/site-packages/seaborn/distributions.py:1718: UserWarning: `shade_lowest` is now deprecated in favor of `thresh`. Setting `thresh=0.05`, but please update your code.\n", " warnings.warn(msg, UserWarning)\n", "/home/md/miniconda3/envs/leagues/lib/python3.7/site-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variable as a keyword arg: y. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.\n", " FutureWarning\n", "/home/md/miniconda3/envs/leagues/lib/python3.7/site-packages/seaborn/distributions.py:1718: UserWarning: `shade_lowest` is now deprecated in favor of `thresh`. Setting `thresh=0.05`, but please update your code.\n", " warnings.warn(msg, UserWarning)\n", "/home/md/miniconda3/envs/leagues/lib/python3.7/site-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variable as a keyword arg: y. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.\n", " FutureWarning\n", "/home/md/miniconda3/envs/leagues/lib/python3.7/site-packages/seaborn/distributions.py:1718: UserWarning: `shade_lowest` is now deprecated in favor of `thresh`. Setting `thresh=0.05`, but please update your code.\n", " warnings.warn(msg, UserWarning)\n" ] }, { "data": { "text/plain": [ "(-2.0, 2.0)" ] }, "execution_count": 200, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sklearn.decomposition import PCA\n", "sklearn_pca=PCA(n_components=5)\n", "X_Train=sklearn_pca.fit_transform(X_std)\n", "\n", "sns.set(style='darkgrid')\n", "f, ax = plt.subplots(figsize=(8, 8))\n", "# ax.set_aspect('equal')\n", "ax = sns.kdeplot(X_Train[:,0], X_Train[:,1], cmap=\"Greens\",\n", " shade=True, shade_lowest=False)\n", "ax = sns.kdeplot(X_Train[:,1], X_Train[:,2], cmap=\"Reds\",\n", " shade=True, shade_lowest=False)\n", "ax = sns.kdeplot(X_Train[:,2], X_Train[:,3], cmap=\"Blues\",\n", " shade=True, shade_lowest=False)\n", "red = sns.color_palette(\"Reds\")[-2]\n", "blue = sns.color_palette(\"Blues\")[-2]\n", "green = sns.color_palette(\"Greens\")[-2]\n", "ax.text(0.5, 0.5, \"2nd and 3rd Projection\", size=12, color=blue)\n", "ax.text(-4, 0.0, \"1st and 3rd Projection\", size=12, color=red)\n", "ax.text(2, 0, \"1st and 2nd Projection\", size=12, color=green)\n", "plt.xlim(-6,5)\n", "plt.ylim(-2,2)" ] }, { "cell_type": "code", "execution_count": 202, "id": "aa1bd2a4", "metadata": {}, "outputs": [], "source": [ "number_of_samples = len(y_train)\n", "np.random.seed(0)\n", "random_indices = np.random.permutation(number_of_samples)\n", "num_training_samples = int(number_of_samples*0.75)\n", "x_train = X_Train[random_indices[:num_training_samples]]\n", "y_train=y[random_indices[:num_training_samples]]\n", "x_test=X_Train[random_indices[num_training_samples:]]\n", "y_test=y[random_indices[num_training_samples:]]\n", "y_Train=list(y_train)" ] }, { "cell_type": "code", "execution_count": 204, "id": "2acb04aa", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Train error = 98.44699684022491 percent in Ridge Regression\n", "Test error = 99.98330172684955 percent in Ridge Regression\n" ] } ], "source": [ "from sklearn import linear_model\n", "model=linear_model.Ridge()\n", "model.fit(x_train,y_train)\n", "y_predict=model.predict(x_train)\n", "\n", "error=0\n", "for i in range(len(y_Train)):\n", " error+=(abs(y_Train[i]-y_predict[i])/y_Train[i])\n", "train_error_ridge=error/len(y_Train)*100\n", "print(\"Train error = \"'{}'.format(train_error_ridge)+\" percent in Ridge Regression\")\n", "\n", "Y_test=model.predict(x_test)\n", "y_Predict=list(y_test)\n", "\n", "error=0\n", "for i in range(len(y_test)):\n", " error+=(abs(y_Predict[i]-Y_test[i])/y_Predict[i])\n", "test_error_ridge=error/len(Y_test)*100\n", "print(\"Test error = \"'{}'.format(test_error_ridge)+\" percent in Ridge Regression\")" ] }, { "cell_type": "code", "execution_count": 206, "id": "10001f77", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Residual plot in Ridge Regression')" ] }, "execution_count": 206, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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EBERgS+++AIvvPACYmNj0aZNGzz22GNYtWoVAECj0aCyshIlJSXQarXIyckBwzDgOA5GoxFnzpyByWRChw4dbAMpe1avXo28vDz0798fWq0W06dPR319vYNATp48GUlJSYiNjcWdd97p8XkRjpCBlQgaCxYsQL9+/bBv3z785S9/waVLlxAdHY2SkhKsXbvWoVM2m83Izc2FXq/HW2+9hU8++QR///vf0atXL/z1r39Fly5dHM5dUVGB5ORk298MwyAlJUV22bZu3YoFCxbg7Nmz4Hke9fX16N69u+zf21+rffv2qKiocPlORUUFUlNTHT5LTU1FeXm57Os4k5CQYPt3q1atUFtb6/a74pqR0WjEm2++iT179mDq1Kku36uqqoLZbHaok325pe61/d8lJSV47bXXMG/ePNtngiCgvLxcckYBAHv27AHDMPj000+xcuVKmEwm6HQ6j+fyVg4ADn9XVVWhrq4O9913n8O5RFPc9OnT8f7779s8NMePH49HH30UHTt2xAsvvID33nsPp0+fxh133IGZM2ciKSnJ4VrOz5dlWaSkpDg8X+fnJdVOCGloZkQEnT59+uC+++6zdTApKSkYN24cDhw4YPvv8OHDNo+qAQMGYPHixdixYwc6d+6MF1980eWcCQkJKCsrs/0tCAJKS0ttf7dq1cq2NgAAFy9etP3baDRixowZeOSRR7Bz504cOHAAAwcOhC8B6+2vVVJSgsTERJfvJCYmoqSkxOV3zp1aqNHpdHj22Wfxyy+/YOPGjS7H4+LioNFoHOpk/++EhASHDlYQBId7n5KSgpdeesnheR45cgS9evXyWC6O4zBt2jRERETg888/93oub+UArAIl0rZtW0RGRmLVqlW2c/3444+2mUubNm0wc+ZMbNq0Cf/+97+xePFi29rQmDFjsHTpUmzZsgUMw+DNN990Kb/z8xXbYLifb3OFxIgICb/97W+xa9cunDhxAmPHjsWWLVuwfft2WCwWNDQ0YO/evSgrK8PFixexceNG1NbWQqfTQa/Xg2Vdm2VeXh5OnTqF9evXw2w249NPP3UQnIyMDOzfvx8lJSW4cuUKPvzwQ9sxo9EIo9Fo64S3bt2KnTt3+lSfRYsWobq6GqWlpfj0008xatQoyTKePXsWK1euhNlsxurVq3H69GkMGjQIANCuXTu3+3yCjU6nwyOPPGJb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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib\n", "matplotlib.rcParams['figure.figsize'] = (6.0, 6.0)\n", "\n", "preds = pd.DataFrame({\"preds\":model.predict(x_train), \"true\":y_train})\n", "preds[\"residuals\"] = preds[\"true\"] - preds[\"preds\"]\n", "preds.plot(x = \"preds\", y = \"residuals\",kind = \"scatter\")\n", "plt.title(\"Residual plot in Ridge Regression\")" ] }, { "cell_type": "code", "execution_count": 208, "id": "aef6ee00", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Train error = 93.27939871725515 percent in Knn algorithm\n", "Test error = 34.00485323676349 percent in knn algorithm\n" ] } ], "source": [ "from sklearn import neighbors\n", "n_neighbors=5\n", "knn=neighbors.KNeighborsRegressor(n_neighbors,weights='uniform')\n", "knn.fit(x_train,y_train)\n", "y1_knn=knn.predict(x_train)\n", "y1_knn=list(y1_knn)\n", "\n", "error=0\n", "for i in range(len(y_train)):\n", " error+=(abs(y1_knn[i]-y_Train[i])/y_Train[i])\n", "train_error_knn=error/len(y_Train)*100\n", "print(\"Train error = \"+'{}'.format(train_error_knn)+\" percent\"+\" in Knn algorithm\")\n", "\n", "y2_knn=knn.predict(x_test)\n", "y2_knn=list(y2_knn)\n", "error=0\n", "for i in range(len(y_test)):\n", " error+=(abs(y2_knn[i]-Y_test[i])/Y_test[i])\n", "test_error_knn=error/len(Y_test)*100\n", "print(\"Test error = \"'{}'.format(test_error_knn)+\" percent\"+\" in knn algorithm\")" ] }, { "cell_type": "code", "execution_count": 209, "id": "d141476e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Train error = 98.42901599605693 percent in Bayesian Regression\n", "Test error = 2.6273348309846623 percent in Bayesian Regression\n" ] } ], "source": [ "reg = linear_model.BayesianRidge()\n", "reg.fit(x_train,y_train)\n", "y1_reg=reg.predict(x_train)\n", "y1_reg=list(y1_reg)\n", "y2_reg=reg.predict(x_test)\n", "y2_reg=list(y2_reg)\n", "\n", "error=0\n", "for i in range(len(y_train)):\n", " error+=(abs(y1_reg[i]-y_Train[i])/y_Train[i])\n", "train_error_bay=error/len(y_Train)*100\n", "print(\"Train error = \"+'{}'.format(train_error_bay)+\" percent\"+\" in Bayesian Regression\")\n", "\n", "error=0\n", "for i in range(len(y_test)):\n", " error+=(abs(y2_reg[i]-Y_test[i])/Y_test[i])\n", "test_error_bay=(error/len(Y_test))*100\n", "print(\"Test error = \"+'{}'.format(test_error_bay)+\" percent\"+\" in Bayesian Regression\")" ] }, { "cell_type": "code", "execution_count": 236, "id": "cc4ef924", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Train error = 45.1440475751096 percent in Decision Tree Regressor\n", "Test error = 115.23229120765764 percent in Decision Tree Regressor\n" ] } ], "source": [ "from sklearn.tree import DecisionTreeRegressor \n", "\n", "dec = DecisionTreeRegressor(max_depth=5, random_state=1234)\n", "dec.fit(X_train,y_train)\n", "y1_dec=dec.predict(X_train)\n", "y1_dec=list(y1_dec)\n", "y2_dec=dec.predict(X_test)\n", "y2_dec=list(y2_dec)\n", "\n", "error=0\n", "for i,v in enumerate(y_train):\n", " error+=(abs(y1_dec[i]-v)/v)\n", "train_error_tree=error/len(y_train)*100\n", "print(\"Train error = \"+'{}'.format(train_error_tree)+\" percent\"+\" in Decision Tree Regressor\")\n", "\n", "error=0\n", "for i,v in enumerate(y_test):\n", " error+=(abs(y1_dec[i]-v)/v)\n", "test_error_tree=error/len(y_test)*100\n", "print(\"Test error = \"'{}'.format(test_error_tree)+\" percent in Decision Tree Regressor\")" ] }, { "cell_type": "code", "execution_count": 240, "id": "f8371c65", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mutiple Linear Regression Accuracy: 0.3760362035902819\n", "Cross-Predicted(KFold) Mutiple Linear Regression Accuracy: 0.26323368310834494\n" ] } ], "source": [ "lin_reg = LinearRegression()\n", "lin_reg.fit(X_train,y_train)\n", "\n", "#Predicting the SalePrices using test set \n", "y_pred_lr = lin_reg.predict(X_test)\n", "\n", "#Mutiple Linear Regression Accuracy with test set\n", "accuracy_lf = metrics.r2_score(y_test, y_pred_lr)\n", "print('Mutiple Linear Regression Accuracy: ', accuracy_lf)\n", "\n", "#Predicting the SalePrice using cross validation (KFold method)\n", "y_pred_kf_lr = cross_val_predict(lin_reg, X, y, cv=10 )\n", "\n", "#Mutiple Linear Regression Accuracy with cross validation (KFold method)\n", "accuracy_lf = metrics.r2_score(y, y_pred_kf_lr)\n", "print('Cross-Predicted(KFold) Mutiple Linear Regression Accuracy: ', accuracy_lf)" ] }, { "cell_type": "code", "execution_count": 241, "id": "1a05e96e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Cross-Predicted(KFold) Polynominal Regression Accuracy: 0.2973208431334121\n" ] } ], "source": [ "poly_reg = PolynomialFeatures(degree = 2)\n", "X_poly = poly_reg.fit_transform(X)\n", "lin_reg_pl = LinearRegression()\n", "\n", "#Predicting the SalePrice using cross validation (KFold method)\n", "y_pred_pl = cross_val_predict(lin_reg_pl, X_poly, y, cv=10 )\n", "#Polynominal Regression Accuracy with cross validation\n", "accuracy_pl = metrics.r2_score(y, y_pred_pl)\n", "print('Cross-Predicted(KFold) Polynominal Regression Accuracy: ', accuracy_pl)" ] }, { "cell_type": "code", "execution_count": 242, "id": "3002f71b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Decision Tree Regression Accuracy: 0.41316821537538995\n", "Cross-Predicted(KFold) Decision Tree Regression Accuracy: 0.43545963056661785\n" ] } ], "source": [ "dt_regressor = DecisionTreeRegressor(random_state = 0)\n", "dt_regressor.fit(X_train,y_train)\n", "\n", "#Predicting the SalePrices using test set \n", "y_pred_dt = dt_regressor.predict(X_test)\n", "\n", "#Decision Tree Regression Accuracy with test set\n", "print('Decision Tree Regression Accuracy: ', dt_regressor.score(X_test,y_test))\n", "\n", "#Predicting the SalePrice using cross validation (KFold method)\n", "y_pred_dt = cross_val_predict(dt_regressor, X, y, cv=10 )\n", "#Decision Tree Regression Accuracy with cross validation\n", "accuracy_dt = metrics.r2_score(y, y_pred_dt)\n", "print('Cross-Predicted(KFold) Decision Tree Regression Accuracy: ', accuracy_dt)" ] }, { "cell_type": "code", "execution_count": 243, "id": "45e08026", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Random Forest Regression Accuracy: 0.5152096358767789\n", "Cross-Predicted(KFold) Random Forest Regression Accuracy: 0.5008508177441224\n" ] } ], "source": [ "rf_regressor = RandomForestRegressor(n_estimators = 300 , random_state = 0)\n", "rf_regressor.fit(X_train,y_train)\n", "\n", "#Predicting the SalePrices using test set \n", "y_pred_rf = rf_regressor.predict(X_test)\n", "\n", "#Random Forest Regression Accuracy with test set\n", "print('Random Forest Regression Accuracy: ', rf_regressor.score(X_test,y_test))\n", "\n", "#Predicting the SalePrice using cross validation (KFold method)\n", "y_pred_rf = cross_val_predict(rf_regressor, X, y, cv=10 )\n", "\n", "#Random Forest Regression Accuracy with cross validation\n", "accuracy_rf = metrics.r2_score(y, y_pred_rf)\n", "print('Cross-Predicted(KFold) Random Forest Regression Accuracy: ', accuracy_rf)" ] }, { "cell_type": "code", "execution_count": 245, "id": "0de49b8a", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABCwAAALECAYAAADD1aFFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAA2MElEQVR4nO3de5yWdb3v//cM5xxUJDwtD4UpYEsD0gZSzNwuQRRUEG1rHlvaav/cGkWapCLgYaGo5QHdYsnDlQahKAou28uMtETMLHFt0wwPJIriKIcRYZjh3n/4aH6bpeSoyHzB5/Mv7rlOn/uG7wN8eV0zVZVKpRIAAACAglS39gAAAAAA/5VgAQAAABRHsAAAAACKI1gAAAAAxREsAAAAgOIIFgAAAEBxBAsAAACgOG1bewCSN998K2vXVlp7DNhsdO1ak7q6+tYeAzYr1hVseNYVbFjW1KanuroqXbpssd7tgkUB1q6tCBawgVlTsOFZV7DhWVewYVlTmxePhAAAAADFESwAAACA4ggWAAAAQHEECwAAAKA4ggUAAABQHMECAAAAKI5gAQAAABRHsAAAAACKI1gAAAAAxREsAAAAgOJUVSqVSmsPAQAAAHx4q1avyYrlq1p7jA+kuroqXbvWrHd72404C+tx5qV35fU332rtMQAAANhE3XbZ8VmRTStYvB+PhAAAAADFESwAAACA4ggWAAAAQHEECwAAAKA4ggUAAABQHMECAAAAKI5gAQAAABRHsAAAAACKI1gAAAAAxREsAAAAgOIIFgAAAEBxBAsAAACgOIIFAAAAUBzBAgAAACiOYAEAAAAUR7AAAAAAiiNYAAAAAMURLAAAAIDiCBYAAABAcQQLAAAAoDiCBQAAAFAcwQIAAAAojmABAAAAFEewAAAAAIojWAAAAADFESwAAACA4ggWAAAAQHEECwAAAKA4ggUAAABQHMECAAAAKI5gAQAAABRHsAAAAACKI1gAAAAAxREsAAAAgOIIFgAAAEBxBAsAAACgOIIFAAAAUBzBAgAAACiOYAEAAAAUR7AAAAAAiiNYAAAAAMURLAAAAIDiCBYAAABAcQQLAAAAoDiCBQAAAFAcwQIAAAAojmABAAAAFEewAAAAAIrzsQeLHj165K233vq4L9NiL730Umpra1t7DAAAAODvcIcFAAAAUJy2G+Mi//Zv/5b/+I//yNKlS3P22Wdn4MCBSZIHH3wwV155ZZqamrLNNttk3Lhx2XXXXTNv3rxcfPHF2XvvvfPEE0+kbdu2ueyyy3Lttdfm2WefzQ477JBrrrkmn/rUp9LQ0JCrrroqv/vd79LQ0JAePXrkwgsvzBZbbPF3Z/rXf/3X/Pa3v02SjBkzJvvss08aGxvzzW9+M2+++WZWr16dvffeO2PHjk379u3z+OOPZ/z48Vm7dm0aGxvzrW99K4cffnjq6+tz6aWX5plnnsnq1atTW1ubc889N23atPnYP1cAAADYXG2UOyxqampyxx135LLLLstFF12UJKmrq8vZZ5+diRMn5p577snhhx+eUaNGNR+zYMGCHH/88bnnnnvSu3fvfOMb38i5556be++9N9XV1Zk9e3aS5Kabbkrnzp1z++235+677862226bG2+88e/Os3Tp0vTs2TP33HNPzjvvvHznO99JQ0ND2rRpk4kTJ2bGjBmZNWtWmpqacscddyRJJk+enG984xuZOXNmZs2alQMOOCBJcumll2bffffN7bffnpkzZ+aNN95oPgYAAAD4cDbKHRaDBw9OkvTu3TuvvfZaVq9enSeeeCI9e/bM5z73uSTJ8OHDM3bs2NTX1ydJPvvZz6ZXr15Jkj333DMvv/xytt9++yTJ5z//+bz44otJkgceeCD19fX5xS9+kSRpaGhIz549/+487dq1y9ChQ5MktbW16dixY5577rnsvvvu+clPfpIHH3wwa9euzbJly9KxY8fm/a6//vosXLgw++23X77whS80X3/+/Pm5+eabkySrVq3Kdtttt2E+OAAAAPiE2ijBokOHDknS/JhEY2Pj+x7Tvn375l+3adOm+Rx/e7169eokSaVSyZgxY9K/f/+PPOc999yT3//+97n11ltTU1OTG264IS+88EKS5OSTT85BBx2Uhx9+OOPHj89+++2XkSNHplKpZNKkSdl5550/8vUBAACAd7TaN93s3bt3nn766SxYsCBJcuedd2bPPfdMTU3NBzrPQQcdlClTpmTVqlVJkvr6+uZzrs+aNWtyzz33JEkee+yxrFq1Kt27d8+KFSvSpUuX1NTUZMWKFZk1a1bzMc8//3x22WWXfO1rX8uJJ56YJ598svn6N954Y5qampIkb7zxRv76179+oPcAAAAArGuj3GHxXrbZZptcdtllGTVqVBobG7PNNtvk8ssv/8DnOf3003Pttdfm6KOPTlVVVaqqqnLGGWdkt912W+8xW2+9dZ5++uncdNNNSZIrr7wy7du3z5FHHplf/vKXGTRoULp27ZovfvGLzXdy/Nu//VvmzZuXdu3apX379jnvvPOSJKNHj87ll1+eI444IlVVVWnXrl1Gjx7tjgsAAAD4CKoqlUqltYf4pDvz0rvy+ptvtfYYAAAAbKJuu+z4LFmyorXH+ECqq6vStev6n7JotUdCAAAAANan1R4J+bhdcMEFeeKJJ9b5Wps2bTJjxoxWmggAAABoqc02WIwbN661RwAAAAA+JI+EAAAAAMURLAAAAIDiCBYAAABAcQQLAAAAoDiCBQAAAFAcwQIAAAAojmABAAAAFEewAAAAAIojWAAAAADFESwAAACA4ggWAAAAQHEECwAAAKA4ggUAAABQHMECAAAAKI5gAQAAABRHsAAAAACKI1gAAAAAxREsAAAAgOIIFgAAAEBxBAsAAACgOIIFAAAAUBzBAgAAACiOYAEAAAAUR7AAAAAAiiNYAAAAAMURLAAAAIDiCBYAAABAcQQLAAAAoDiCBQAAAFAcwQIAAAAojmABAAAAFEewAAAAAIojWAAAAADFESwAAACA4ggWAAAAQHEECwAAAKA4ggUAAABQHMECAAAAKI5gAQAAABRHsAAAAACKI1gAAAAAxREsAAAAgOIIFgAAAEBxqiqVSqW1hwAAAAA+vFWr12TF8lWtPcYHUl1dla5da9a7ve1GnIX1qKurz9q1uhFsKN26dc6SJStaewzYrFhXsOFZV7BhWVObH4+EAAAAAMURLAAAAIDiCBYAAABAcQQLAAAAoDiCBQAAAFAcwQIAAAAojmABAAAAFEewAAAAAIojWAAAAADFESwAAACA4ggWAAAAQHEECwAAAKA4ggUAAABQHMECAAAAKI5gAQAAABRHsAAAAACKI1gAAAAAxREsAAAAgOIIFgAAAEBxBAsAAACgOIIFAAAAUBzBAgAAACiOYAEAAAAUR7AAAAAAilNVqVQqrT0EAAAAH05jw+q8uayhtcdodd26dc6SJStaeww+gOrqqnTtWrPe7W034iysx5M3nJOG5XWtPQYAALAJ+uLZNyURLNj8eCQEAAAAKI5gAQAAABRHsAAAAACKI1gAAAAAxREsAAAAgOIIFgAAAEBxBAsAAACgOIIFAAAAUBzBAgAAACiOYAEAAAAUR7AAAAAAiiNYAAAAAMURLAAAAIDiCBYAAABAcQQLAAAAoDiCBQAAAFAcwQIAAAAojmABAAAAFEewAAAAAIojWAAAAADFESwAAACA4ggWAAAAQHEECwAAAKA4ggUAAABQHMECAAAAKI5gAQAAABRHsAAAAACKI1gAAAAAxREsAAAAgOIIFgAAAEBxBAsAAACgOIIFAAAAUBzBAgAAACiOYAEAAAAUR7AAAAAAiiNYAAAAAMURLAAAAIDiCBYAAABAcQQLAAAAoDiCBQAAAFAcwQIAAAAojmABAAAAFEewAAAAAIojWAAAAADFESwAAACA4ggWAAAAQHEECwAAAKA4m2Sw6NGjR956660cccQRWbVq1Xr3W758eSZPnrwRJwMAAAA2hE0yWPzNzJkz07Fjx/VuX758eW666aaNOBEAAACwIbRt7QFa4n//7/+dK6+8Mh06dMghhxzS/PUePXrk8ccfT6dOnTJu3Lg88sgjad++fT71qU9l6tSpGTduXFasWJEjjjginTp1ytSpU/OTn/wks2fPTlNTUzp06JALL7wwvXr1aj7fyJEj8x//8R9ZunRpzj777AwcODBJ8oc//CGXXXZZ3nrrrSTJ2Wefnf333z/PPfdcLrnkkrz55ptZs2ZNTjrppAwfPnzjf0gAAACwGSk+WLz++us5//zz87Of/Szdu3d/z0c8nn766cybNy/33ntvqqurs2zZsiTJBRdckOHDh2fmzJnN+x555JE59dRTkyQPP/xwxowZk5///OfN22tqanLHHXfk97//fb797W9n4MCBWbp0ac4444xcc8016du3b5qamlJfX5/GxsaMGjUql19+eXbbbbfU19dn+PDh6d27d3bbbbeP+ZMBAACAzVfxweKJJ57Innvume7duydJjj322EycOHGdfXbeeec0NjbmBz/4QWpra/PVr351vef7z//8z/yv//W/smzZslRVVeWFF15YZ/vgwYOTJL17985rr72W1atX549//GN222239O3bN0nSpk2bbLXVVvnLX/6SBQsW5Dvf+U7z8WvWrMlzzz0nWAAAAMBHUHywaInOnTtn9uzZmTdvXh5++OFMnDgxd95557v2a2hoyFlnnZWf/vSn+fznP59XX301BxxwwDr7dOjQIck7USJJGhsb13vdSqWSLl26rHMHBwAAAPDRFf9NN3v37p2nnnqq+U6I6dOnv2ufN954I2+//XYGDBiQUaNGpXPnzvnrX/+ampqarFq1qjk6NDQ0pLGxMTvssEOS5LbbbmvxDAsWLMgf/vCHJElTU1OWLVuWz372s+nYsWPuuuuu5n0XLFiQ+vr6j/COAQAAgOLvsOjatWvGjx+ff/mXf0nHjh3X+aabf/PKK6/k/PPPT2NjY5qamnLAAQekd+/eqa6uzpAhQzJkyJBstdVWmTp1as4888wcffTR2XrrrZu/oeb72XrrrXPNNdfkX//1X7Ny5cpUV1fnnHPOyZe//OXccMMNueSSS/LjH/84a9euTdeuXfPDH/5wA38KAAAA8MlSValUKq09xCfdkzeck4blda09BgAAsAn64tk3ZcmSFa09Rqvr1q2zz2ETU11dla5da9a/fSPOAgAAANAiggUAAABQHMECAAAAKI5gAQAAABRHsAAAAACKI1gAAAAAxREsAAAAgOIIFgAAAEBxBAsAAACgOIIFAAAAUBzBAgAAACiOYAEAAAAUR7AAAAAAiiNYAAAAAMURLAAAAIDiCBYAAABAcQQLAAAAoDiCBQAAAFAcwQIAAAAojmABAAAAFEewAAAAAIojWAAAAADFESwAAACA4ggWAAAAQHEECwAAAKA4ggUAAABQHMECAAAAKI5gAQAAABRHsAAAAACKI1gAAAAAxREsAAAAgOIIFgAAAEBxBAsAAACgOIIFAAAAUBzBAgAAACiOYAEAAAAUR7AAAAAAiiNYAAAAAMURLAAAAIDiCBYAAABAcQQLAAAAoDiCBQAAAFAcwQIAAAAojmABAAAAFEewAAAAAIojWAAAAADFESwAAACA4ggWAAAAQHGqKpVKpbWHAAAA4MNpbFidN5c1tPYYra5bt85ZsmRFa4/BB1BdXZWuXWvWu73tRpyF9airq8/atboRbCj+soINz7qCDc+6Avj7PBICAAAAFEewAAAAAIojWAAAAADFESwAAACA4ggWAAAAQHEECwAAAKA4ggUAAABQHMECAAAAKI5gAQAAABRHsAAAAACKI1gAAAAAxREsAAAAgOIIFgAAAEBxBAsAAACgOIIFAAAAUBzBAgAAACiOYAEAAAAUR7AAAAAAiiNYAAAAAMURLAAAAIDiCBYAAABAcQQLAAAAoDiCBQAAAFAcwQIAAAAoTtvWHoCka9ea1h4BNjvdunXeqNdb3dCQ5ctWb9RrAgDA5kywKMCo6WPzev0brT0G8BFMOeVHSQQLAADYUDwSAgAAABRHsAAAAACKI1gAAAAAxREsAAAAgOIIFgAAAEBxBAsAAACgOIIFAAAAUBzBAgAAACiOYAEAAAAUR7AAAAAAiiNYAAAAAMURLAAAAIDiCBYAAABAcQQLAAAAoDiCBQAAAFAcwQIAAAAojmABAAAAFEewAAAAAIojWAAAAADFESwAAACA4ggWAAAAQHEECwAAAKA4ggUAAABQHMECAAAAKI5gAQAAABRHsAAAAACKI1gAAAAAxREsAAAAgOIIFgAAAEBxBAsAAACgOIIFAAAAUBzBAgAAACiOYAEAAAAUR7AAAAAAiiNYAAAAAMURLAAAAIDiCBYAAABAcQQLAAAAoDiCBQAAAFAcwQIAAAAojmABAAAAFEewAAAAAIojWAAAAADFESwAAACA4ggWAAAAQHEECwAAAKA4ggUAAABQnE9csJg3b16GDRvWon0POuig/PnPf/6YJwIAAAD+q09csAAAAADKV2ywmDp1asaOHZskmT9/fnr06JH58+cnSS688MJMmzYtTzzxRE444YQMGzYsw4YNy5w5c5qP//Wvf52vfe1rGTZsWI499tj88Y9/fNc1li9fnhNPPDFTpkxJkjz22GMZMmRIhgwZknHjxqVSqTTvO2HChAwfPjxDhw7NSSedlEWLFiVJxo4dm5tuuql5v6eeeioDBw5c51gAAADggyk2WPTv3z9z585NksydOzd9+vTJI4880vz685//fMaMGZMrrrgiM2bMyA033JALLrggy5cvz8KFCzNp0qTcdNNNmTFjRi666KJ8+9vfXuf8ixYtysknn5zjjjsuJ598choaGjJy5Micd955ueeee7LPPvvk5Zdfbt7/tNNOyx133JG77747hx9+eCZOnJgk+frXv55p06Y1B4qf/vSnOe6441JVVbURPiUAAADYPLVt7QHWZ9ddd83q1auzePHizJ07NyNHjswNN9yQIUOGZM2aNamrq8tLL72U0047rfmYqqqqvPjii5k/f34WLlyY448/vnlbY2NjXn/99STJkiVLcuKJJ2bChAnZZ599kiTPPfdcOnXqlNra2iTJ4MGDc8EFFzQf/+CDD+a2227LypUr09jY2Pz13XbbLTvvvHMefPDB9O7dOw888EDOPffcj/WzAQAAgM1dscEiSfr165df/epXqaurS21tbcaPH585c+aktrY2lUolPXr0yK233vqu4+bPn58BAwbksssue9e2BQsWZKuttsr222+fBx98sDlYvJe/3SWxaNGiXHrppbn99tuz88475/HHH8+oUaOa9zvhhBPys5/9LAsWLMghhxySzp07b4B3DwAAAJ9cxT4SkrwTLCZPnpw+ffokSfr27ZvJkyenf//+6dOnT1588cXmx0SSd0JFpVLJfvvtl4ceeijPPvvsOtv+pn379pk0aVL+8pe/5KKLLkqlUkn37t2zatWqPPbYY0mS++67L8uXL0+S1NfXp127dunWrVvWrl2bqVOnrjPnV77ylTz//PO5+eabc9xxx31snwcAAAB8UhQfLBYtWpT+/fuv87pfv37ZaqutMmnSpFx33XUZOnRoDj300Fx77bWpVCr5zGc+k8svvzw/+MEPmrdNmzZtnXO3b98+V199derq6nL++eenbdu2ufLKKzN27NgMGTIkjz76aHbcccckSY8ePTJo0KAMHjw4I0aMyE477bTOuaqrq3PkkUdmp512Ss+ePTfOhwMAAACbsaqKH2exQZxyyik55phjcuihh37gY0dNH5vX69/4GKYCNpYpp/woS5asaO0x4GPTrVtnf8ZhA7OuYMOypjY91dVV6dq1Zv3bN+Ism6Unn3wyBx98cDp37pyBAwe29jgAAACwWSj6m25uCvbaa6/cf//9rT0GAAAAbFbcYQEAAAAUR7AAAAAAiiNYAAAAAMURLAAAAIDiCBYAAABAcQQLAAAAoDiCBQAAAFAcwQIAAAAojmABAAAAFEewAAAAAIojWAAAAADFESwAAACA4ggWAAAAQHEECwAAAKA4ggUAAABQHMECAAAAKI5gAQAAABRHsAAAAACKI1gAAAAAxREsAAAAgOIIFgAAAEBxBAsAAACgOIIFAAAAUBzBAgAAACiOYAEAAAAUR7AAAAAAiiNYAAAAAMURLAAAAIDiCBYAAABAcQQLAAAAoDiCBQAAAFAcwQIAAAAojmABAAAAFEewAAAAAIojWAAAAADFESwAAACA4ggWAAAAQHEECwAAAKA4ggUAAABQHMECAAAAKI5gAQAAABRHsAAAAACKI1gAAAAAxREsAAAAgOIIFgAAAEBx2rb2ACQTR4xp7RGAj2h1Q0NrjwAAAJsVwaIAdXX1Wbu20tpjwGajW7fOWbJkRWuPAQAAfAQeCQEAAACKI1gAAAAAxREsAAAAgOIIFgAAAEBxBAsAAACgOIIFAAAAUBzBAgAAACiOYAEAAAAUR7AAAAAAiiNYAAAAAMURLAAAAIDiCBYAAABAcQQLAAAAoDiCBQAAAFAcwQIAAAAojmABAAAAFEewAAAAAIojWAAAAADFESwAAACA4ggWAAAAQHEECwAAAKA4ggUAAABQHMECAAAAKI5gAQAAABSnbWsPQNK1a01rj8An2JpVq7N0RUNrjwEAALAOwaIAv/rOqLz9el1rj8En1OBbbk4ECwAAoDAeCQEAAACKI1gAAAAAxREsAAAAgOIIFgAAAEBxBAsAAACgOIIFAAAAUBzBAgAAACiOYAEAAAAUR7AAAAAAiiNYAAAAAMURLAAAAIDiCBYAAABAcQQLAAAAoDiCBQAAAFAcwQIAAAAojmABAAAAFEewAAAAAIojWAAAAADFESwAAACA4ggWAAAAQHEECwAAAKA4ggUAAABQHMECAAAAKI5gAQAAABRHsAAAAACKI1gAAAAAxREsAAAAgOIIFgAAAEBxBAsAAACgOIIFAAAAUBzBAgAAACiOYAEAAAAUR7AAAAAAiiNYAAAAAMURLAAAAIDiCBYAAABAcQQLAAAAoDiCBQAAAFAcwQIAAAAojmABAAAAFEewAAAAAIojWAAAAADFESwAAACA4ggWAAAAQHEECwAAAKA4ggUAAABQHMECAAAAKI5gAQAAABRngwSLI444IqtWrXrf/aZMmZK6uroNcUkAAABgM7ZBgsXMmTPTsWPH993vlltu+VDBorGx8cOMBQAAAGyi2r7fDlOnTs0zzzyTMWPGZP78+RkxYkSmT5+evffeOxdeeGF69eqVCy64II8//ni22GKLHHTQQTniiCPy8MMPZ8mSJTn11FPz9a9/Pddff31ee+21nHnmmenQoUOuuOKK7LLLLrnqqqvyu9/9Lg0NDenRo0cuvPDCbLHFFvn+97+fNm3a5Pnnn89bb72VmTNnvud8999/f370ox+luro6TU1NOf/881NbW5vXXnstF110UV5++eWsXr06hx12WP7lX/4lSTJhwoQ8+uijWbNmTbp06ZJLLrkk//AP/5C6urp897vfbY4q/fv3z+jRo9PU1JSJEyfmoYceSpIMGDAgo0aNSps2bfL9738/7du3zwsvvJDFixend+/emTBhQqqqqjbU7xEAAAB84rxvsOjfv3+mTJmSJJk7d2769OmTRx55JHvvvXfmzp2bU0899V3HrFq1KtOmTctLL72UIUOG5Kijjsq3vvWtTJ8+PVdffXX22GOPJMmkSZPSuXPn3H777UmSyy+/PDfeeGNGjhyZJPnTn/6Un/70p/nUpz613vmuvvrqjBs3Ln369ElTU1PefvvtJMk555yT//E//kf23XffNDQ05OSTT85ee+2V/fbbL6eddlrOOeecJMn06dMzceLEXHXVVbnnnnuyyy67NL/fZcuWJUmmTZuWP/3pT5kxY0aS5LTTTsu0adNy3HHHJUmeffbZTJkyJVVVVTnqqKPy8MMPZ7/99nu/jxYAAABYj/cNFrvuumtWr16dxYsXZ+7cuRk5cmRuuOGGDBkyJGvWrMkuu+zyrmMGDx6cJNlpp52y5ZZbZvHixdltt93etd8DDzyQ+vr6/OIXv0iSNDQ0pGfPns3bBw0a9HdjRZL069cvl156aQ455JAccMAB2WOPPbJy5co8+uijeeONN5r3e+utt7JgwYLst99+efDBB3Pbbbdl5cqV6zxu8oUvfCFTpkzJhAkT8qUvfSn7779/kndCzVFHHZX27dsnSYYNG5b777+/OVgcfPDB6dChQ5Jkzz33zMKFCwULAAAA+AjeN1gk70SBX/3qV6mrq0ttbW3Gjx+fOXPmpLa29j33/9t/vCdJmzZt0tTU9J77VSqVjBkzJv3793/P7e8XK5Jk9OjReeaZZ/LII4/krLPOyimnnJLBgwenqqoqt99+e9q1a7fO/osWLcqll16a22+/PTvvvHMef/zxjBo1KknSp0+f3HnnnXn44Yczc+bM3HjjjfnZz372vjO09P0CAAAALdOib7rZr1+/TJ48OX369EmS9O3bN5MnT15vaFifLbbYIitWrGh+fdBBB2XKlCnNP2Gkvr4+CxYs+EDnfO6559KjR4+cdNJJGTp0aJ588snU1NTki1/8Ym688cbm/V555ZUsWbIk9fX1adeuXbp165a1a9dm6tSpzfv89a9/TU1NTQ477LCce+65+T//5/9k7dq16d+/f+66666sWbMma9asyV133ZUvf/nLH2hOAAAAoOVafIfF2Wef3Rwo+vXrl2nTpqVfv34f6GInnnhiRo8enY4dO+aKK67I6aefnmuvvTZHH310qqqqUlVVlTPOOOM9Hx9ZnyuuuCIvvvhi2rRpky233DIXX3xxkmTixIm59NJLM2TIkCTvxJKLL744PXr0yKBBgzJ48OB06dIlX/nKV/LYY48lSR599NFMmTIl1dXVWbt2bcaOHZvq6uoce+yxWbhwYY466qgkyf77759jjjnmA713AAAAoOWqKpVKpbWH+KT71XdG5e3XP/iPe4UNYfAtN2fJkhXvv+MmpFu3zpvde4LWZl3BhmddwYZlTW16qqur0rVrzfq3b8RZAAAAAFqkRY+EtLa6urr3/PGp//RP/5QzzjijFSYCAAAAPk6bRLDo2rVrZs6c2dpjAAAAABuJR0IAAACA4ggWAAAAQHEECwAAAKA4ggUAAABQHMECAAAAKI5gAQAAABRHsAAAAACKI1gAAAAAxREsAAAAgOIIFgAAAEBxBAsAAACgOIIFAAAAUBzBAgAAACiOYAEAAAAUR7AAAAAAiiNYAAAAAMURLAAAAIDiCBYAAABAcQQLAAAAoDiCBQAAAFAcwQIAAAAojmABAAAAFEewAAAAAIojWAAAAADFESwAAACA4ggWAAAAQHEECwAAAKA4ggUAAABQHMECAAAAKI5gAQAAABRHsAAAAACKI1gAAAAAxREsAAAAgOIIFgAAAEBxBAsAAACgOIIFAAAAUBzBAgAAACiOYAEAAAAUR7AAAAAAiiNYAAAAAMURLAAAAIDiCBYAAABAcQQLAAAAoDiCBQAAAFCctq09AMlXr5zY2iPwCbZm1erWHgEAAOBdBIsC1NXVZ+3aSmuPAQAAAMXwSAgAAABQHMECAAAAKI5gAQAAABRHsAAAAACKI1gAAAAAxREsAAAAgOIIFgAAAEBxBAsAAACgOIIFAAAAUBzBAgAAACiOYAEAAAAUR7AAAAAAiiNYAAAAAMURLAAAAIDiCBYAAABAcQQLAAAAoDiCBQAAAFAcwQIAAAAojmABAAAAFEewAAAAAIojWAAAAADFESwAAACA4ggWAAAAQHEECwAAAKA4bVt7AJKuXWs22rUaVjdm2fK3N9r1AAAA4MMQLApw3eX3ZtnSlRvlWqMvPnqjXAcAAAA+Co+EAAAAAMURLAAAAIDiCBYAAABAcQQLAAAAoDiCBQAAAFAcwQIAAAAojmABAAAAFEewAAAAAIojWAAAAADFESwAAACA4ggWAAAAQHEECwAAAKA4ggUAAABQHMECAAAAKI5gAQAAABRHsAAAAACKI1gAAAAAxREsAAAAgOIIFgAAAEBxBAsAAACgOIIFAAAAUBzBAgAAACiOYAEAAAAUR7AAAAAAiiNYAAAAAMURLAAAAIDiCBYAAABAcQQLAAAAoDiCBQAAAFAcwQIAAAAojmABAAAAFEewAAAAAIojWAAAAADFESwAAACA4ggWAAAAQHEECwAAAKA4ggUAAABQHMECAAAAKI5gAQAAABRHsAAAAACKI1gAAAAAxREsAAAAgOIIFgAAAEBxBAsAAACgOIIFAAAAUBzBAgAAACiOYAEAAAAU5xMVLObNm5dhw4Z9bOefMWNGzjzzzI/t/AAAAPBJ8YkKFgAAAMCmoW1rD/Bepk6dmmeeeSZjxozJ/PnzM2LEiEyfPj177713LrzwwvTq1Ss9e/bMxIkT89ZbbyVJzjzzzBx44IFJkl//+te5/vrr09DQkHbt2uXcc89N796917nG8uXLc8YZZ+Sggw7KySefnDvvvDO33XZbmpqaUlNTkwsvvDDdu3fPjBkzMmvWrGy55ZZ59tln07lz51xzzTXp1q1bGhoactFFF+WRRx5Jly5d0qtXr438SQEAAMDmqchg0b9//0yZMiVJMnfu3PTp0yePPPJI9t5778ydOzdHH310zjvvvNx4443Zdttt89prr+Xoo4/OrFmzsnTp0kyaNCk//vGPU1NTk2effTannXZa5syZ03z+RYsW5X/+z/+Z008/PYMGDcpjjz2Wf//3f8+tt96a9u3b59e//nVGjx6dqVOnJkmefPLJ3H333dlhhx1y3nnn5ac//WlGjhyZadOm5aWXXsrs2bPT2NiY448/PjvttFMrfGIAAACweSkyWOy6665ZvXp1Fi9enLlz52bkyJG54YYbMmTIkKxZsyZ1dXV56aWXctpppzUfU1VVlRdffDHz58/PwoULc/zxxzdva2xszOuvv54kWbJkSU488cRMmDAh++yzT5LkgQceyNNPP50RI0YkSSqVSpYvX958fN++fbPDDjskSb7whS/k4YcfTvLO98Q48sgj065du7Rr1y5Dhw7N448//vF+OAAAAPAJUGSwSJJ+/frlV7/6Verq6lJbW5vx48dnzpw5qa2tTaVSSY8ePXLrrbe+67j58+dnwIABueyyy961bcGCBdlqq62y/fbb58EHH2wOFpVKJcOHD89ZZ531nrN06NCh+ddt2rRJU1PTBnqXAAAAwHsp9ptu9uvXL5MnT06fPn2SvHOXw+TJk9O/f//06dMnL774Yh555JHm/efPn59KpZL99tsvDz30UJ599tl1tv1N+/btM2nSpPzlL3/JRRddlEqlkoMOOigzZ87M4sWLkyRNTU35z//8zxbNOHPmzDQ2NmbVqlWZNWvWhnr7AAAA8IlWdLBYtGhR+vfvv87rfv36ZauttsqkSZNy3XXXZejQoTn00ENz7bXXplKp5DOf+Uwuv/zy/OAHP2jeNm3atHXO3b59+1x99dWpq6vL+eefny9+8Yv59re/nW9961sZOnRoDj/88Pzyl7983xmPOeaY7Ljjjhk8eHBOOumk7LXXXh/LZwEAAACfNFWVSqXS2kN80l13+b1ZtnTlRrnW6IuPzpIlKzbKtaC1dOvW2Z9z2MCsK9jwrCvYsKypTU91dVW6dq1Z//aNOAsAAABAiwgWAAAAQHEECwAAAKA4ggUAAABQHMECAAAAKI5gAQAAABRHsAAAAACKI1gAAAAAxREsAAAAgOIIFgAAAEBxBAsAAACgOIIFAAAAUBzBAgAAACiOYAEAAAAUR7AAAAAAiiNYAAAAAMURLAAAAIDiCBYAAABAcQQLAAAAoDiCBQAAAFAcwQIAAAAojmABAAAAFEewAAAAAIojWAAAAADFESwAAACA4ggWAAAAQHEECwAAAKA4ggUAAABQHMECAAAAKI5gAQAAABRHsAAAAACKI1gAAAAAxREsAAAAgOIIFgAAAEBxBAsAAACgOIIFAAAAUBzBAgAAACiOYAEAAAAUR7AAAAAAiiNYAAAAAMURLAAAAIDiCBYAAABAcQQLAAAAoDiCBQAAAFAcwQIAAAAojmABAAAAFEewAAAAAIrTtrUHIPn/vjd4o12rYXXjRrsWAAAAfFiCRQHq6uqzdm2ltccAAACAYngkBAAAACiOYAEAAAAUR7AAAAAAiiNYAAAAAMURLAAAAIDiCBYAAABAcQQLAAAAoDiCBQAAAFAcwQIAAAAojmABAAAAFKdtaw9AUl1d1dojwGbHuoINz7qCDc+6gg3Lmtq0vN/vV1WlUqlspFkAAAAAWsQjIQAAAEBxBAsAAACgOIIFAAAAUBzBAgAAACiOYAEAAAAUR7AAAAAAiiNYAAAAAMURLAAAAIDiCBYAAABAcQSLjeD555/Psccem4EDB+bYY4/NCy+88K59mpqaMnbs2Bx88MH5p3/6p0yfPn3jDwqbkJasq9/85jcZNmxY/vEf/zETJkzY+EPCJqYl6+q6667LYYcdliFDhmTYsGF56KGHNv6gsAlpybq64447MmTIkBxxxBEZMmRIbrnllo0/KGxCWrKu/ua5557LF77wBf8W3ERVVSqVSmsPsbk78cQTM3z48BxxxBGZOXNm7rjjjnf9RXTXXXflnnvuyeTJk7N06dIceeSRue2227LTTju10tRQtpasqxdffDErV67Mfffdl4aGhpxzzjmtNC1sGlqyrh566KHss88+6dSpU55++ul8/etfz29+85t07NixlaaGsrVkXdXX12eLLbZIVVVV6uvrM2TIkFx//fXp2bNnK00NZWvJukre+Z/CJ598crbddttsu+22/i24CXKHxcesrq4uTz31VA4//PAkyeGHH56nnnoqb7zxxjr73XvvvRkxYkSqq6uzzTbb5OCDD859993XGiND8Vq6rnbdddf06tUrbdu2bY0xYZPS0nU1YMCAdOrUKUnSo0ePVCqVLF26dGOPC5uElq6rmpqaVFVVJUlWrVqVNWvWNL8G1tXSdZUkN954Yw488MB85jOf2chTsqEIFh+zV155Jdttt13atGmTJGnTpk223XbbvPLKK+/ab8cdd2x+vcMOO2Tx4sUbdVbYVLR0XQEt92HW1V133ZVddtkl22+//cYaEzYpH2Rd/fKXv8xhhx2Wr371q/nnf/7n9OjRY2OPC5uElq6rp59+Or/5zW9y8sknt8KUbCiCBQDwgT366KP50Y9+lCuuuKK1R4HNwn/7b/8ts2fPzi9+8YvMnDkzzz33XGuPBJusNWvW5Pzzz8/YsWObwwabJvdJf8x22GGHvPrqq2lqakqbNm3S1NSU1157LTvssMO79nv55Zez9957J3n3HRfA/6+l6wpouQ+yrv7whz/ke9/7XiZNmpTu3bu3wrSwafgwf1/tuOOO2WuvvTJnzhzrC95DS9bVkiVLsnDhwpx++ulJkuXLl6dSqaS+vj7jx49vrdH5ENxh8THr2rVrevXqlVmzZiVJZs2alV69emWbbbZZZ79BgwZl+vTpWbt2bd54443cf//9GThwYGuMDMVr6boCWq6l62r+/PkZOXJkrr766nz+859vjVFhk9HSdbVgwYLmX7/xxhuZN29e9thjj406K2wqWrKudtxxx8ybNy8PPPBAHnjggZx00kk55phjxIpNkJ8SshEsWLAg3//+97N8+fJsueWWmTBhQrp3757TTjstZ555Zvbaa680NTVl3Lhx+e1vf5skOe2003Lssce28uRQrpasq8ceeyzf+c53Ul9fn0qlks6dO+fiiy/OgAEDWnt8KFJL1tXw4cOzaNGibLfdds3HXXbZZZ63h/Voybq65JJL8tvf/jZt27ZNpVLJiBEjcsIJJ7T26FCslqyr/9c111yTlStX+ikhmyDBAgAAACiOR0IAAACA4ggWAAAAQHEECwAAAKA4ggUAAABQHMECAAAAKI5gAQCs13PPPZcjjjgiffr0yS233NLa43wgd999d0499dTWHgMA+JD8WFMAYL1Gjx6dmpqajB49+iOf64QTTsjQoUMzYsSIDTDZpmXGjBmZPn16fvazn7X2KACwyXCHBQCwXi+//HJ233331h4jSdLY2NjaI3wom+rcANDaBAsA4D2deOKJmTdvXsaNG5c+ffrk+eefT0NDQyZMmJADDzwwX/7yl3PBBRdk1apVSZJly5blm9/8Zvr165d999033/zmN7N48eIkyVVXXZXHHnus+Vzjxo3LSy+9lB49eqzzH/QnnHBCpk+fnuSduxK+9rWv5ZJLLkltbW2uueaav3v9/2rGjBn57//9vze/7tGjR2699dYccsgh6dOnT374wx9m4cKF+drXvpa+ffvmrLPOSkNDQ5Jk3rx5OeCAA3LDDTektrY2Bx10UO6+++7mc61YsSJnn312+vXrl69+9auZNGlS1q5d+55zjxw5MmPGjMkf//jH9OnTJ/vss0+SZM6cOTnyyCPTt2/ffOUrX8k111zTfP6/fTZ33nlnDjzwwNTW1ub6669v3t7U1JQbbrghBx98cPr06ZNhw4bllVdeSZIsWLAgp5xySr70pS9l4MCBuffeez/knwAAaF1tW3sAAKBMt9xyy7se47jkkkuycOHC3HXXXWnbtm1GjRqV6667Lt/97nezdu3aDBs2LD/84Q/T1NSU0aNHZ9y4cZk0aVJGjhyZxx9/fJ1zvfTSS+87w/z583PYYYflt7/9bRobGzNx4sT1Xr8lfvOb32TGjBl55ZVXctRRR+UPf/hDLr/88my99dY59thjM3v27Bx11FFJktdffz1vvvlmHnroofzxj3/M6aefnn/8x39M9+7dM378+KxYsSL3339/li5dmm984xvp1q1b83v7r3Pfe++973okpFOnTpkwYUJ23333/PnPf86pp56aXr165eCDD27e5/e//33uu+++vPDCCzn66KNzyCGHZLfddsvNN9+c2bNn58Ybb8xnP/vZPPPMM+nYsWNWrlyZU089NWeeeWYmT56cP//5zznllFOyxx575HOf+1zLfuMBoBDusAAAWqRSqeTnP/95Ro8ena233jo1NTX55je/mdmzZydJunTpkoEDB6ZTp06pqanJt771rfzud7/7SNfcdtttc8IJJ6Rt27bp0KHD371+S/zzP/9zampqsvvuu2ePPfbIfvvtl5133jmdO3fOAQcckKeeemqd/c8666y0b98+X/rSl/KVr3wl//7v/56mpqbce++9+e53v5uamprstNNOOeWUU9a5A+P/nbtjx47vOUttbW169OiR6urq9OzZM4cddlgeffTRdfY544wz0rFjx/Ts2TM9e/bM008/nSSZPn16zjrrrHTv3j1VVVXp2bNnunTpkjlz5uQf/uEfMnz48LRt2zZ77rlnBg4cmPvuu6/FnxEAlMIdFgBAi7zxxht5++23M2zYsOavVSqV5kch3n777Vx66aV56KGHsmzZsiTJW2+9laamprRp0+ZDXXP77bdv8fVb4tOf/nTzrzt06PCu16+//nrz6y233DKf+tSnml/vuOOOee211/Lmm29mzZo12XHHHdfZ9uqrr77n3OvzxBNPZOLEiXn22WezZs2aNDQ0ZNCgQeudt1OnTlm5cmWSZPHixdlll13edc5FixZl/vz5zY+dJO88PjJ06ND3nQcASiNYAAAt0qVLl3Ts2DGzZ8/Odttt967tP/nJT/L888/n5z//ebp165Y//elPOfLII7O+H0j2txiwatWq1NTUJEmWLFmyzj5VVVUtvv6Gtnz58qxcubJ5zldeeSW77757unTpknbt2uXll19ufszilVdeWWem/3fu93qdJN/97nfz9a9/PTfddFM6dOiQiy++OG+++WaLZtt+++2zcOHC7LHHHut8fYcddsi+++6bm2+++QO9VwAokUdCAIAWqa6uzogRI3LJJZekrq4uSfLqq6/moYceSvLO3RQdOnTIlltumaVLl+baa69d5/hPf/rT+etf/9r8eptttsl2222XmTNnpqmpKbfffvs62z/o9T8Of/tGn4899ljmzJmTQYMGpU2bNhk0aFCuuuqq1NfXZ9GiRbn55pv/7l0MXbt2zauvvtr8TT2Tdz6vrbbaKh06dMj8+fMza9asFs81YsSI/OhHP8oLL7yQSqWSp59+Om+++WYOPPDAvPDCC7nrrruyZs2arFmzJvPnz8+CBQs+0ucAAK1BsAAAWux73/tedt111xxzzDHp27dvTj755Dz//PNJkpNOOimrV69Ov379cuyxx2bAgAHrHHviiSfmF7/4Rfbdd99cdNFFSZLx48fnxz/+cWpra/OXv/wlffr0+dDX39A+/elPZ8stt8yAAQMyatSoXHjhhdltt92SJOeff346deqUgw8+OMcdd1wOP/zwDB8+fL3n6tevXz73uc9l//33T21tbZJkzJgxufrqq9OnT59cd911OfTQQ1s82ymnnJJDDz00p556avr27Zsf/OAHWb16dWpqavLjH/849957bwYMGJD9998/EydOXCeUAMCmoqqyvvs0AQA+oebNm5fvfe97efDBB1t7FAD4xHKHBQAAAFAcwQIAAAAojkdCAAAAgOK4wwIAAAAojmABAAAAFEewAAAAAIojWAAAAADFESwAAACA4ggWAAAAQHH+LzXnnIfFoAfPAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ranking = np.argsort(-rf_regressor.feature_importances_)\n", "f, ax = plt.subplots(figsize=(15, 10))\n", "sns.barplot(x=rf_regressor.feature_importances_[ranking], y=X_train.columns.values[ranking], orient='h')\n", "ax.set_xlabel(\"feature importance\")\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 246, "id": "eff9fa74", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mutiple Linear Regression Accuracy: 0.3760362035902819\n", "Cross-Predicted(KFold) Mutiple Linear Regression Accuracy: 0.26323368310834494\n" ] } ], "source": [ "lin_reg = LinearRegression()\n", "lin_reg.fit(X_train,y_train)\n", "\n", "#Predicting the SalePrices using test set \n", "y_pred_lr = lin_reg.predict(X_test)\n", "\n", "#Mutiple Linear Regression Accuracy with test set\n", "accuracy_lf = metrics.r2_score(y_test, y_pred_lr)\n", "print('Mutiple Linear Regression Accuracy: ', accuracy_lf)\n", "\n", "#Predicting the SalePrice using cross validation (KFold method)\n", "y_pred_kf_lr = cross_val_predict(lin_reg, X, y, cv=10 )\n", "\n", "#Mutiple Linear Regression Accuracy with cross validation (KFold method)\n", "accuracy_lf = metrics.r2_score(y, y_pred_kf_lr)\n", "print('Cross-Predicted(KFold) Mutiple Linear Regression Accuracy: ', accuracy_lf)" ] }, { "cell_type": "code", "execution_count": null, "id": "470425b6", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3.7.13 ('leagues')", "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.7.13" }, "vscode": { "interpreter": { "hash": "a07b7f3079ca8c056705d3c757c4f3f92f9509f33eeab9ad5420dacec37bc01a" } } }, "nbformat": 4, "nbformat_minor": 5 }