research/machine_learning/scripts/ml/gradientboost.ipynb
2024-01-31 21:41:29 +01:00

960 lines
61 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"id": "4d2a8b6c",
"metadata": {},
"source": [
"#### Database"
]
},
{
"cell_type": "code",
"execution_count": 1,
"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 F\n",
"games = Game.objects.filter(season=season)\n",
"df = pd.DataFrame.from_records(games.values())\n",
"games = Game.objects.filter(season=season).exclude(historic_season=None).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",
" home_country=F('homeTeam__country'),\n",
" away_country=F('awayTeam__country'),\n",
").values()\n",
"\n"
]
},
{
"cell_type": "markdown",
"id": "bc191792",
"metadata": {},
"source": [
"#### Dataframe"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "1e404cf8",
"metadata": {},
"outputs": [],
"source": [
"from sklearn.preprocessing import OneHotEncoder\n",
"\n",
"# create dataset\n",
"df = pd.DataFrame.from_records(games.values())\n",
"\n",
"# data cleaning\n",
"df['time'] = df['time'].replace('','0')\n",
"df = df[df['attendance'] != 0]\n",
"\n",
"# remove outliers\n",
"out_fields = ['attendance']\n",
"for field in out_fields:\n",
" q_low = df[field].quantile(0.01)\n",
" q_hi = df[field].quantile(0.99)\n",
" df = df[(df[field] < q_hi) & (df[field] > q_low)]\n",
"\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",
"df['early'] = df.apply(lambda r: r['time'].replace(':','') < \"1800\", axis=1)\n",
"df['before2010'] = df.apply(lambda r: r['historic_season'].split('-')[0] < \"2010\", axis=1)\n",
"\n",
"\n",
"\n",
"# one hot encoding\n",
"ohe_fields = ['home_country']\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": "markdown",
"id": "e2ea08e5",
"metadata": {},
"source": [
"#### Train/Test Data - Normalization"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "74e12f87",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np \n",
"import pandas as pd \n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"from sklearn.model_selection import train_test_split, cross_val_predict\n",
"from sklearn import metrics\n",
"from sklearn.ensemble import GradientBoostingRegressor\n",
"\n",
"\n",
"remove_columns = ['season_id', 'resultEntered', 'reversible', 'reschedule', 'homeGoals', 'awayGoals',\n",
" 'homeGoals2', 'awayGoals2', 'homeGoals3', 'awayGoals3', 'home', 'away', 'date', 'time',\n",
" 'id', 'historic_season',\n",
" 'home_country','home_lat','home_lon','away_lat','away_lon','away_country','year']\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",
"data = df[feature_cols+[label]]\n",
"\n",
"\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": "code",
"execution_count": 4,
"id": "45e08026",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Random Forest Regression Accuracy: 0.6976274695189291\n"
]
}
],
"source": [
"rf_regressor = GradientBoostingRegressor(n_estimators = 200 , random_state = 42)\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": 5,
"id": "0de49b8a",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 1080x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"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": 6,
"id": "4c1f8b45",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0 4000 6269.331273160804\n",
"1 3264 2212.472559220525\n",
"2 6000 4474.321544046366\n",
"3 4250 5853.876279843164\n",
"4 1200 2724.8479999971523\n",
"5 4300 12248.194405029995\n",
"6 3874 12179.504105471333\n",
"7 2800 7179.957816540268\n",
"8 5500 4343.454242132351\n",
"9 6000 15615.670772432313\n",
"10 3500 2142.013025198476\n",
"11 4500 6581.086576491373\n",
"12 2140 2787.000793225451\n",
"13 3146 7948.163004948026\n",
"14 2600 5277.360995538767\n",
"15 4875 4182.090794311384\n",
"16 5807 1298.0546590068432\n",
"17 5200 7641.152367897079\n",
"18 3500 12709.91385314257\n",
"19 2643 13796.44798966877\n",
"20 4000 2910.0979973906897\n",
"21 2500 11367.203439146624\n",
"22 2000 4578.676165761646\n",
"23 3198 11801.197736843704\n",
"24 3571 3256.2683962230926\n",
"25 2712 13963.658569196019\n",
"26 2100 3428.2076365623343\n",
"27 4525 3179.082309242862\n",
"28 6625 5319.700728374097\n",
"29 4966 4814.201898718184\n",
"30 2000 11668.774282716573\n",
"31 2100 16459.759735440115\n",
"32 2310 10424.049272604385\n",
"33 2600 3249.7584854521983\n",
"34 2000 4933.417332760704\n",
"35 4300 11330.47572253357\n",
"36 2734 4916.62667788047\n",
"37 3500 7616.108008546191\n",
"38 3050 5834.707115002423\n",
"39 5256 10956.873320747929\n",
"40 3012 1746.8793669215172\n",
"41 5060 4642.521259437015\n",
"42 1500 10636.260356819768\n",
"43 4000 6226.573175422698\n",
"44 1950 6253.5032474003465\n",
"45 2300 5174.122252417559\n",
"46 2300 2724.3318310328705\n",
"47 1950 9804.743199526134\n",
"48 3058 3874.7670154643415\n",
"49 2000 10001.45516441721\n",
"50 2345 5023.8562523965875\n",
"51 5500 5174.122252417559\n",
"52 5585 3817.7336514404283\n",
"53 4046 4720.395073786049\n",
"54 6000 4569.1440149122045\n",
"55 4384 4918.984377964906\n",
"56 3000 4674.700091188421\n",
"57 3500 3544.0179791758733\n",
"58 7000 18261.80159810542\n",
"59 10195 13504.402960006135\n",
"60 3476 2439.2710475675904\n",
"61 2120 6683.8055866507775\n",
"62 3800 4831.40407430577\n",
"63 2675 18297.8862272201\n",
"64 6603 5900.839366216985\n",
"65 1500 5547.896256687706\n",
"66 4000 15716.448413829125\n",
"67 4545 3510.458423897759\n",
"68 1396 4299.864451241506\n",
"69 5400 11340.993418688882\n",
"70 5041 13344.492446272585\n",
"71 1500 12842.717635745401\n",
"72 1800 2826.6198584357285\n",
"73 3189 2216.6069457661515\n",
"74 3800 7551.124847543301\n",
"75 2178 10854.693947136366\n",
"76 6169 3754.054098366518\n",
"77 2676 6227.444878272318\n",
"78 3510 4372.710484500164\n",
"79 3900 5899.365613773657\n",
"80 2120 9146.338397438585\n",
"81 8000 6598.214034291334\n",
"82 2500 4180.2412129479535\n",
"83 4016 1013.1917302016966\n",
"84 1500 13356.059667395755\n",
"85 2860 3859.7092616602254\n",
"86 2150 12546.493369090958\n",
"87 3336 13781.48736284787\n",
"88 8820 6867.843525597063\n",
"89 4792 9977.417685682762\n",
"90 1650 23425.898130663616\n",
"91 2000 6589.051500702451\n",
"92 2111 3109.4945264556886\n",
"93 4470 13408.035401832343\n",
"94 7000 5519.4148042321\n",
"95 3850 6089.400396461468\n",
"96 4366 9610.498715489919\n",
"97 2645 8316.017866765993\n",
"98 2384 6197.035790504067\n",
"99 4522 12779.77200503699\n",
"100 6328 14744.016207170152\n",
"101 3877 19458.90971123009\n",
"102 2000 4874.224861034961\n",
"103 4157 5208.703053494322\n",
"104 2942 13386.059288545708\n",
"105 3655 13257.062956113012\n",
"106 4500 2441.3256508749882\n",
"107 2964 2416.608601291409\n",
"108 2863 2553.749826440011\n",
"109 4935 11198.828086622805\n",
"110 2526 12041.524132520446\n",
"111 5679 8045.757009722594\n",
"112 7286 13009.125855582837\n",
"113 6055 12448.19779590953\n",
"114 1200 11188.064346395086\n",
"115 4110 4271.21931546039\n",
"116 1957 3087.6529257626803\n",
"117 1790 2569.376378289409\n",
"118 5422 6173.099807850697\n",
"119 4650 12505.12258551472\n",
"120 5297 12652.949405216323\n",
"121 3036 6268.840108714523\n",
"122 3233 9367.596675826102\n",
"123 12000 2337.3771641354024\n",
"124 7632 1819.0748787672667\n",
"125 3620 7428.132912505317\n",
"126 2000 2124.849872483271\n",
"127 2145 6073.702450147759\n",
"128 2227 15691.707999141212\n",
"129 2520 17731.752052395845\n",
"130 10000 9224.693549735079\n",
"131 2000 4333.254162853479\n",
"132 4052 5463.585852647499\n",
"133 2137 3385.7917346498257\n",
"134 2609 8949.299267841006\n",
"135 3256 5594.136151838447\n",
"136 8173 7321.006115614261\n",
"137 1250 6314.334305949203\n",
"138 7401 1841.6632769675457\n",
"139 4200 5913.92021057092\n",
"140 6100 5914.498891029855\n",
"141 5182 4485.159036791194\n",
"142 1300 3930.555183694012\n",
"143 2117 2087.6087105330876\n",
"144 6500 3129.218824655229\n",
"145 5174 19100.66955411291\n",
"146 3867 7381.962946265084\n",
"147 1918 3668.522599331723\n",
"148 2800 5984.122720695453\n",
"149 7648 5579.807332727605\n",
"150 5638 5000.766880937242\n",
"151 5262 8796.640913054198\n",
"152 1650 11038.130604200423\n",
"153 1657 3053.4760351098107\n",
"154 4086 16594.785800693066\n",
"155 9000 3561.181162895718\n",
"156 1500 5042.543289014211\n",
"157 8145 12723.53945595642\n",
"158 2625 7117.118765444254\n",
"159 6281 3092.870875123699\n",
"160 4520 1916.9886938042089\n",
"161 1200 3334.4719289950585\n",
"162 4829 4248.693921085489\n",
"163 1760 3065.4160555916155\n",
"164 3469 10943.4771813175\n",
"165 7500 4646.274655834034\n",
"166 5227 7247.410995462059\n",
"167 1765 12061.617431570865\n",
"168 5200 3906.7362684340383\n",
"169 6402 5802.18818098374\n",
"170 4832 3735.241252929307\n",
"171 1500 8821.101907961975\n",
"172 2342 3612.477133461679\n",
"173 2799 908.2647209562191\n",
"174 3850 3078.4680731926246\n",
"175 4200 3812.544744635514\n",
"176 4531 2705.9998772537424\n",
"177 1751 1967.6894728073173\n",
"178 4250 5924.714538352343\n",
"179 5705 6513.58136727248\n",
"180 3528 1966.268176067289\n",
"181 2496 4368.04545595507\n",
"182 4370 2024.6278361643576\n",
"183 1350 5634.107750848085\n",
"184 5334 10956.873320747929\n",
"185 1423 6752.977449121771\n",
"186 4129 4490.334901030411\n",
"187 5858 2706.770656503444\n",
"188 3300 4860.877678091679\n",
"189 3500 3893.6704796446884\n",
"190 10280 3778.999270841025\n",
"191 4500 7722.956089373864\n",
"192 10500 3823.8621517621054\n",
"193 3932 5270.396448543778\n",
"194 5500 7707.251425986663\n",
"195 2200 14389.91484985415\n",
"196 8206 6044.3459440998595\n",
"197 8000 4457.480201516091\n",
"198 6372 8890.061129175148\n",
"199 7900 13621.063242184871\n",
"200 1628 13169.821966149577\n",
"201 4142 3606.329399178841\n",
"202 1150 6794.3761007737885\n",
"203 1750 3527.0690712828796\n",
"204 4072 4870.13044656876\n",
"205 1176 14005.1555660555\n",
"206 3200 5021.013261618377\n",
"207 1715 10318.676591702464\n",
"208 7530 10459.245297486614\n",
"209 4600 8316.395535933456\n",
"210 1200 5095.800766098369\n",
"211 4452 17619.45148176299\n",
"212 2400 2917.6212527362745\n",
"213 4057 3523.9765596992324\n",
"214 5000 7568.184421468349\n",
"215 4147 2328.238657453435\n",
"216 3046 9816.145570783112\n",
"217 6215 2815.1845153039812\n",
"218 3350 2458.220350724582\n",
"219 3500 1143.4289915252082\n",
"220 5870 3349.522734018162\n",
"221 4113 6562.149215912538\n",
"222 3420 15899.046839388688\n",
"223 6116 9045.668754767581\n",
"224 5902 2748.9553238280632\n",
"225 3787 4271.853869225162\n",
"226 3600 7439.183383616434\n",
"227 7017 2210.108006140514\n",
"228 10280 4927.066871405887\n",
"229 5600 9564.813393139277\n",
"230 3656 3329.8106332184043\n",
"231 6480 17110.713931585673\n",
"232 1646 4677.074303376587\n",
"233 2600 4440.882887387751\n",
"234 4300 2118.7542046100843\n",
"235 7948 3214.332854949672\n",
"236 4579 7753.321604795282\n",
"237 4364 6460.580153817578\n",
"238 5000 3400.25051693908\n",
"239 2034 4284.09527513928\n",
"240 3500 5231.567751256019\n",
"241 5688 6856.195658240203\n",
"242 1800 12184.56551356091\n",
"243 10131 2598.8215825730167\n",
"244 5784 5943.724350980219\n",
"245 1813 4361.9722090698815\n",
"246 3700 5182.000108363626\n",
"247 6700 5850.0908748940765\n",
"248 3700 2399.8908348974273\n",
"249 7799 1934.7516235634123\n",
"250 1884 11765.60702403286\n",
"251 3042 4656.923175922518\n",
"252 5000 13415.8010505132\n",
"253 5112 13024.815014128593\n",
"254 1404 3154.9780459262442\n",
"255 2471 4309.257915103401\n",
"256 7749 10739.861964061618\n",
"257 6254 3516.7357048629206\n",
"258 2502 11979.741281816012\n",
"259 2300 3650.093842398789\n",
"260 6500 11606.67581375423\n",
"261 2646 2003.5526871642137\n",
"262 9546 3357.754620510872\n",
"263 7500 1954.3537407404217\n",
"264 11016 5754.557478633303\n",
"265 5763 9554.299673198937\n",
"266 2460 9835.688834354334\n",
"267 5511 3086.8504515496356\n",
"268 1857 12616.742317378286\n",
"269 7000 3003.607544650991\n",
"270 6333 2916.8409179975624\n",
"271 6107 4089.944537354285\n",
"272 1518 2032.35131917741\n",
"273 9310 13077.88651001709\n",
"274 3551 5538.163168934835\n",
"275 1700 5176.458388224016\n",
"276 2250 6964.458867728808\n",
"277 6000 3658.89357449004\n",
"278 2003 12082.974153438317\n",
"279 15183 3440.5699078224566\n",
"280 7113 3704.6762193220106\n",
"281 3818 7853.080965569755\n",
"282 12300 4595.931196930642\n",
"283 12488 4204.879371769705\n",
"284 8000 14443.56582836753\n",
"285 10832 6863.813679372925\n",
"286 2107 6377.807460294606\n",
"287 2100 11228.724002036284\n",
"288 14135 4931.900522781224\n",
"289 6115 -1359.8525015661405\n",
"290 9364 7649.975494379696\n",
"291 4773 9481.483722041376\n",
"292 3525 3903.097436115244\n",
"293 6126 3235.0879045787524\n",
"294 6487 6016.561185150087\n",
"295 3879 5963.8817259278985\n",
"296 4943 2022.7875651402155\n",
"297 1335 16308.04344887568\n",
"298 4125 3686.2401457869464\n",
"299 7986 19570.539544136012\n",
"300 5000 1647.3199417777416\n",
"301 3559 10844.540513558119\n",
"302 6573 6749.5080657275785\n",
"303 2300 7761.8563105694675\n",
"304 5117 6850.569455542703\n",
"305 5000 6749.5080657275785\n",
"306 7165 7562.513169172154\n",
"307 1406 4792.945224334402\n",
"308 12300 5438.795622303128\n",
"309 3573 4076.6328454195104\n",
"310 6500 6484.405267932639\n",
"311 4508 4454.794170262632\n",
"312 7546 3612.3231311814357\n",
"313 5413 6996.1341583386675\n",
"314 5754 3103.9097707577357\n",
"315 1307 3807.778748518246\n",
"316 5433 3244.8492954237204\n",
"317 2304 3555.7092877099694\n",
"318 4000 15777.67435290044\n",
"319 6425 7309.990757727653\n",
"320 7250 11630.888375951426\n",
"321 5500 8636.615133701885\n",
"322 1800 8768.014881915431\n",
"323 2240 4826.610795633974\n",
"324 9000 10890.956739194247\n",
"325 1266 5814.283121498163\n",
"326 3850 6443.817549805847\n",
"327 2122 4535.813236908496\n",
"328 6423 4517.133895929519\n",
"329 6455 12060.20986179786\n",
"330 2100 9687.757282298406\n",
"331 7843 5535.984701360246\n",
"332 9617 3697.898412456338\n",
"333 5033 13417.324343888626\n",
"334 1129 1900.0831637980234\n",
"335 1500 9359.137469515703\n",
"336 8932 4625.923230167911\n",
"337 4637 6298.491882691631\n",
"338 15327 8789.796058286662\n",
"339 1233 3349.3518456663473\n",
"340 2364 5489.380456222845\n",
"341 10316 10482.794651236341\n",
"342 13200 816.4886171815257\n",
"343 1303 2434.5700084840264\n",
"344 8687 1339.7548137515469\n",
"345 1653 14174.38517292645\n",
"346 7067 4769.726084812967\n",
"347 8265 6296.217972893376\n",
"348 1587 3735.0734883030373\n",
"349 2479 9172.144059825323\n",
"350 6366 2943.565074257849\n",
"351 5114 4607.856876244279\n",
"352 6138 6525.133501060625\n",
"353 1765 5306.257077971849\n",
"354 3129 1846.9373281342548\n",
"355 2295 3398.94891754905\n",
"356 5507 6787.25326071226\n",
"357 5200 11426.371872238831\n",
"358 6326 13253.411199790291\n",
"359 10804 12321.66926933166\n",
"360 6721 7784.752069975153\n",
"361 5574 3078.4680731926246\n",
"362 10020 5279.60487971954\n",
"363 3678 3703.664495952156\n",
"364 4342 6008.626463397685\n",
"365 8000 12218.65449210225\n",
"366 1687 4676.4051865459105\n",
"367 1967 6462.389387331538\n",
"368 27252 4596.524835292175\n",
"369 20520 10707.201673752295\n",
"370 10000 16951.68427825804\n",
"371 1661 5088.693439115733\n",
"372 1356 4243.341369783109\n",
"373 8000 13092.177864088904\n",
"374 6288 7390.894960432231\n",
"375 9979 13110.150275789669\n",
"376 3083 9102.1199952011\n",
"377 1574 12359.06343032517\n",
"378 10452 3163.5893828816875\n",
"379 4790 4611.20167092646\n",
"380 5563 4506.779900903538\n",
"381 1103 5630.433669946042\n",
"382 3846 14705.914690376329\n",
"383 3750 1678.928854632361\n",
"384 4309 4188.9078922720755\n",
"385 6254 2185.786798925416\n",
"386 2133 5240.602438128821\n",
"387 12800 6440.899480264031\n",
"388 5300 2202.973850976274\n",
"389 10102 3349.487579181281\n",
"390 9326 6276.255533517775\n",
"391 2613 10027.074674303978\n",
"392 11976 3863.6273789168304\n",
"393 12143 3393.520429895661\n",
"394 13200 3769.0173149934762\n",
"395 6320 4363.984786293422\n",
"396 1542 12775.267839770944\n",
"397 4560 4771.697760449484\n",
"398 8304 4637.7607774767075\n",
"399 10480 4525.181055134041\n",
"400 5352 6595.799090340065\n",
"401 2137 6969.014509412282\n",
"402 5169 4750.975859023578\n",
"403 2799 11080.256944317674\n",
"404 6000 2003.8289254279437\n",
"405 4986 4197.359917287667\n",
"406 1824 4332.950723087893\n",
"407 1562 5099.093054122171\n",
"408 5890 12081.878696518148\n",
"409 6077 9270.461413927558\n",
"410 1485 1496.4321088051206\n",
"411 1825 4246.200510854761\n",
"412 5340 3255.3624000842133\n",
"413 9237 1859.449426524448\n",
"414 6499 7976.974080873097\n",
"415 1240 4436.075476859059\n",
"416 4656 3617.4469653780425\n",
"417 2335 4997.427948460792\n",
"418 8000 8685.398728410411\n",
"419 5641 8353.951860004401\n",
"420 1444 8676.625836361147\n",
"421 12900 2321.255461480635\n",
"422 6500 4629.528409764403\n",
"423 7506 13467.919271136741\n",
"424 6438 7930.93744973132\n",
"425 2261 13370.226646925103\n",
"426 2121 6247.557132112603\n",
"427 5437 3592.393531883706\n",
"428 1536 3084.700451088983\n",
"429 9295 11590.303689144444\n",
"430 3252 6586.4530811986915\n",
"431 1331 2974.1520911988323\n",
"432 5442 10642.588370514337\n",
"433 4527 4146.7680464203095\n",
"434 6500 5535.980475001773\n",
"435 1238 4462.334896687268\n",
"436 10702 3998.7386180649096\n",
"437 8056 6374.403929120289\n",
"438 4517 3968.6353947354496\n",
"439 5108 11261.565350761522\n",
"440 6354 8418.830560829478\n",
"441 4322 3305.0788833275337\n",
"442 3129 5121.086170529202\n",
"443 2486 17408.009128939066\n",
"444 6200 4741.563419125667\n",
"445 10320 5313.293980930455\n",
"446 5204 11883.544862171222\n",
"447 7429 11135.61940509253\n",
"448 1837 5034.717550057033\n",
"449 3311 5410.885965608366\n",
"450 5425 4536.934131183477\n",
"451 1141 9035.881634012976\n",
"452 8142 3094.3729707170237\n",
"453 9630 5759.575130507457\n",
"454 3400 2189.066685634728\n",
"455 5991 8549.539484234854\n",
"456 4537 2673.967338892564\n",
"457 1389 4718.1351657552605\n",
"458 6560 12005.006870572877\n",
"459 5417 8357.181906814383\n",
"460 1326 11175.583517484314\n",
"461 1226 11704.844017633459\n",
"462 9439 7822.772984507\n",
"463 6075 3640.18245452465\n",
"464 4139 12954.348380007397\n",
"465 6921 4400.219099707537\n",
"466 1412 3860.7463982703334\n",
"467 1580 3516.678313124346\n",
"468 6480 3492.9019039587733\n",
"469 7740 8106.980110824186\n",
"470 9187 2395.5573418076624\n",
"471 5923 15299.331508342839\n",
"472 1690 10362.006379124352\n",
"473 1829 9487.82923378465\n",
"474 13132 12486.558265969294\n",
"475 5673 14305.952439617615\n",
"476 10143 14864.146909677464\n",
"477 2631 2331.8590852138564\n",
"478 16753 3373.2896869040014\n",
"479 8300 6524.596616257537\n",
"480 2541 9190.959336462798\n",
"481 1638 8198.234066736764\n",
"482 6097 15793.35353841358\n",
"483 8250 10749.527129598226\n",
"484 1638 2035.970947988072\n",
"485 1145 4696.342706754138\n",
"486 8300 4612.694230043811\n",
"487 9750 12698.282535481198\n",
"488 12532 16313.121000032259\n",
"489 10739 4867.058831371186\n",
"490 18230 8459.589175229492\n",
"491 6125 9447.347582186656\n",
"492 6225 4050.031770291008\n",
"493 16509 3119.674368698192\n",
"494 6782 15229.554761308495\n",
"495 6125 6761.654267834814\n",
"496 1681 16165.79694411498\n",
"497 1798 5819.205951991664\n",
"498 13385 4938.678542279483\n",
"499 12300 12501.32563965754\n",
"500 4100 6001.137996121012\n",
"501 6190 1475.6160798039427\n",
"502 9246 3958.254475739062\n",
"503 14322 5117.760831637467\n",
"504 7396 3351.115059928001\n",
"505 3851 11349.992398228365\n",
"506 4734 2254.841749289375\n",
"507 2058 4497.8123659139665\n",
"508 8869 6254.021135129916\n",
"509 11269 5503.560118534005\n",
"510 2506 3923.4245548541553\n",
"511 11730 13493.388189645208\n",
"512 8045 11793.907143350536\n",
"513 7500 19150.25573472374\n",
"514 9166 1503.1775986772748\n",
"515 5368 768.7325537958045\n",
"516 2395 11349.634056006476\n",
"517 9087 6323.225289121863\n",
"518 7407 12191.765888863798\n",
"519 5949 4662.532235685591\n",
"520 10216 1407.9870443357727\n",
"521 4731 2077.9540157496162\n",
"522 9248 7446.569623693983\n",
"523 18500 7152.090683775011\n",
"524 6308 2046.8540380357522\n",
"525 5748 7367.288137184615\n",
"526 3138 13384.130363257449\n",
"527 2012 10653.209976527616\n",
"528 8657 4045.4916586458935\n",
"529 7500 5925.985098665058\n",
"530 1463 16696.570686355375\n",
"531 7625 8283.901419829008\n",
"532 17260 1332.645261264805\n",
"533 7020 8097.968034350275\n",
"534 6592 12655.393492203057\n",
"535 1463 9686.161910222057\n",
"536 5112 14887.791991132963\n",
"537 9672 11980.464991642053\n",
"538 5360 3200.7882786135533\n",
"539 7338 4568.898795584218\n",
"540 4113 4548.0218263260895\n",
"541 5443 6464.617670339604\n",
"542 7368 3509.1119407497345\n",
"543 8017 14989.39181389453\n",
"544 8619 5951.016907958763\n",
"545 2651 2389.4447101228966\n",
"546 14840 5539.6976673052395\n",
"547 6041 5739.887811430656\n",
"548 8685 4713.845075975436\n",
"549 1252 10368.07303045706\n",
"550 2655 6283.479460803347\n",
"551 15140 10087.168600437875\n",
"552 7885 5075.27707615952\n",
"553 8685 8212.189918949982\n",
"554 7542 5046.9757285848955\n",
"555 4676 12393.032671740262\n",
"556 2450 4089.113201090722\n",
"557 7225 8668.848872884808\n",
"558 18500 3625.579521584379\n",
"559 8499 11175.583517484314\n",
"560 5057 11954.107603250402\n",
"561 8418 9871.105936883523\n",
"562 22885 4480.13584030295\n",
"563 2820 12949.498758756125\n",
"564 1868 9863.602442864936\n",
"565 2523 7594.763347975478\n",
"566 10058 4106.730423429261\n",
"567 7138 6882.786147983847\n",
"568 7610 8398.894749936191\n",
"569 2670 3175.8554412316626\n",
"570 2364 12814.987663022268\n",
"571 8435 5162.810338028615\n",
"572 8841 1036.8156262763082\n",
"573 15240 6022.001956780606\n",
"574 10180 10816.936615359207\n",
"575 12534 6207.885794866743\n",
"576 20520 4784.208803197017\n",
"577 13500 2214.8851307287455\n",
"578 5000 3893.0598787794556\n",
"579 12813 6018.340623795528\n",
"580 7050 4794.636511757451\n",
"581 6665 719.7944431444473\n",
"582 16350 12795.036594803416\n",
"583 25623 14184.768449790256\n",
"584 2063 9810.563762098913\n",
"585 3393 4663.9954601549625\n",
"586 2217 8773.41625094894\n",
"587 9003 3036.44495239287\n",
"588 14470 14674.536778589223\n",
"589 7603 7067.956282785245\n",
"590 8685 4819.903639940648\n",
"591 6436 3119.275984646008\n",
"592 6112 13083.263275048763\n",
"593 6127 4357.32710824466\n",
"594 1373 15735.44034049763\n",
"595 8046 9829.34768547027\n",
"596 6865 3214.003054487506\n",
"597 8286 5601.510414450099\n",
"598 6302 4623.138939835301\n",
"599 2208 11173.469568286891\n",
"600 3615 9099.567629826535\n",
"601 15940 1128.3453286817544\n",
"602 5010 12327.197143168583\n",
"603 8212 2358.011077505077\n",
"604 1272 3507.632555908359\n",
"605 2540 3225.323372800012\n",
"606 9600 4090.038562587634\n",
"607 26043 9172.521869455777\n",
"608 6103 9608.33642905634\n",
"609 2747 3357.020239766667\n",
"610 2960 6086.4085631268035\n",
"611 26043 7352.588636862007\n",
"612 11444 5749.178712087224\n",
"613 6608 7009.789042663147\n",
"614 8685 4860.877678091679\n",
"615 7809 2574.283478221735\n",
"616 10910 16177.070094482096\n",
"617 6015 7330.670097266955\n",
"618 5233 5874.080532458615\n",
"619 1425 13376.351664670756\n",
"620 11160 11489.591677776654\n",
"621 2105 8093.267208688064\n",
"622 7428 12065.410201066788\n",
"623 5204 4090.2545827148147\n",
"624 1851 4009.0006330108404\n",
"625 26043 3438.1572509050984\n",
"626 5426 2253.846596804711\n",
"627 6219 17137.025597423733\n",
"628 11212 8852.762121006672\n",
"629 8124 2764.2110979500026\n",
"630 1982 16415.374793629482\n",
"631 3694 8244.824334909112\n",
"632 6075 2457.9006791839233\n",
"633 4561 2321.330005122368\n",
"634 3042 4222.503424740425\n",
"635 19747 8223.799821601031\n",
"636 15145 1871.3160227674202\n",
"637 7072 4620.709006674663\n",
"638 2582 2230.203623949988\n",
"639 1425 5754.610018189932\n",
"640 5219 18795.832958315765\n",
"641 7182 2545.237704767577\n",
"642 8899 4793.967670294426\n",
"643 6313 3355.7302621566423\n",
"644 2435 1977.784883709689\n",
"645 3108 5286.771821824771\n",
"646 12198 6863.347568508702\n",
"647 5761 3753.5604597260553\n",
"648 8685 3501.396202209124\n",
"649 8141 6710.759936928313\n",
"650 9185 6449.711014158032\n",
"651 5331 6111.495678866401\n"
]
},
{
"ename": "IndexError",
"evalue": "index 652 is out of bounds for axis 0 with size 652",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m/tmp/ipykernel_56157/1621740581.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mv\u001b[0m \u001b[0;32min\u001b[0m \u001b[0menumerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0my_pred_rf\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;31mIndexError\u001b[0m: index 652 is out of bounds for axis 0 with size 652"
]
}
],
"source": [
"for i,v in enumerate(y):\n",
" print(i,v,y_pred_rf[i])"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "bba1ad86",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2171"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(y)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "970a3733",
"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
}