{ "cells": [ { "cell_type": "markdown", "id": "c219123e-f4a5-46a5-8a54-6a888f633dcb", "metadata": {}, "source": [ "## Classification model" ] }, { "cell_type": "markdown", "id": "a15db152-e016-4971-b3e4-004c2c2ef9f9", "metadata": {}, "source": [ "#### Import all necessary libraries " ] }, { "cell_type": "code", "execution_count": 1, "id": "44d2688c-f97c-4758-a201-4c7794019703", "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 scipy import stats\n", "\n", "from sklearn.model_selection import (\n", " train_test_split, \n", " cross_val_score, \n", " cross_validate,\n", " KFold,\n", " StratifiedKFold\n", ")\n", "from sklearn.preprocessing import StandardScaler\n", "from sklearn.linear_model import (\n", " LinearRegression, \n", " Ridge, \n", " Lasso,\n", " LogisticRegression\n", ")\n", "from sklearn.discriminant_analysis import (\n", " LinearDiscriminantAnalysis,\n", " QuadraticDiscriminantAnalysis\n", ")\n", "from sklearn.neighbors import KNeighborsClassifier, KNeighborsRegressor\n", "from sklearn.naive_bayes import GaussianNB\n", "from sklearn.metrics import (\n", " mean_squared_error,\n", " r2_score,\n", " accuracy_score,\n", " precision_score,\n", " recall_score,\n", " f1_score,\n", " classification_report,\n", " confusion_matrix\n", ")\n", "from sklearn.pipeline import Pipeline\n", "from sklearn.ensemble import (\n", " RandomForestClassifier\n", ")\n", "from imblearn.over_sampling import SMOTE\n", "import pickle\n", "import warnings\n", "import os\n", "from pathlib import Path\n", "warnings.filterwarnings('ignore')\n", "np.random.seed(42)" ] }, { "cell_type": "markdown", "id": "617e80ac-43d6-41af-8208-1fbee6415af0", "metadata": {}, "source": [ "#### Load data" ] }, { "cell_type": "code", "execution_count": 2, "id": "2f41c8fc-830b-4dae-8b4d-024a65907517", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Dataset 1 - Weak Link Scores:\n", "Shape: (2096, 17)\n", "\n", "First few rows:\n", " ID Date SCORE \\\n", "0 cf0e95ab-d6ec-475a-9cc0-c9444b8dd080.Kinect 7/19/2018 0.612532 \n", "1 6210cc6d-575d-4e9f-bab1-4fe1da2a30a3.Kinect 7/30/2018 0.388809 \n", "\n", " ForwardHead LeftArmFallForward RightArmFallForward \\\n", "0 0.31 1.34 1.15 \n", "1 1.49 1.42 1.39 \n", "\n", " LeftShoulderElevation RightShoulderElevation ExcessiveForwardLean \\\n", "0 0.33 0.49 0.00 \n", "1 0.00 0.00 1.08 \n", "\n", " LeftAsymmetricalWeightShift RightAsymmetricalWeightShift \\\n", "0 0.0 0.08 \n", "1 0.1 0.00 \n", "\n", " LeftKneeMovesInward RightKneeMovesInward LeftKneeMovesOutward \\\n", "0 0.0 0.0 0.0 \n", "1 0.0 0.0 0.0 \n", "\n", " RightKneeMovesOutward LeftHeelRises RightHeelRises \n", "0 0.77 0.0 0.0 \n", "1 0.40 0.0 0.0 \n", "\n", "\n", "\n", "Dataset 2 - Movement Features:\n", "Shape: (2094, 43)\n", "\n", "First few rows:\n", " AimoScore No_1_Angle_Deviation No_2_Angle_Deviation \\\n", "0 0.323667 0.538020 0.815878 \n", "1 0.323699 0.443807 0.306552 \n", "\n", " No_3_Angle_Deviation No_4_Angle_Deviation No_5_Angle_Deviation \\\n", "0 0.346724 0.382114 0.302248 \n", "1 0.823529 0.188905 0.497370 \n", "\n", " No_6_Angle_Deviation No_7_Angle_Deviation No_8_Angle_Deviation \\\n", "0 0.947872 0.275945 0.52176 \n", "1 0.140124 0.664275 0.52176 \n", "\n", " No_9_Angle_Deviation ... No_20_NASM_Deviation No_21_NASM_Deviation \\\n", "0 0.457198 ... 0.656624 0.642276 \n", "1 0.729316 ... 0.721186 0.826399 \n", "\n", " No_22_NASM_Deviation No_23_NASM_Deviation No_24_NASM_Deviation \\\n", "0 0.552846 0.648972 0.578192 \n", "1 0.805356 0.848876 0.889048 \n", "\n", " No_25_NASM_Deviation No_1_Time_Deviation No_2_Time_Deviation \\\n", "0 0.560019 0.821616 0.818747 \n", "1 0.816834 0.307987 0.248207 \n", "\n", " EstimatedScore ID \n", "0 0.209947 0003cdcc-86ed-494a-a3b5-90d09e96e06b.Kinect \n", "1 0.457198 003115c4-bdb8-491c-b571-8fcebdecf8ed.Kinect \n", "\n", "[2 rows x 43 columns]\n" ] } ], "source": [ "# Configuration \n", "\n", "REPO_ROOT = os.path.abspath(os.path.join(os.getcwd(), \"..\"))\n", "DATA_DIR = os.path.join(REPO_ROOT, \"Datasets_all\")\n", "OUT_DIR = Path(\"models\")\n", "\n", "RANDOM_STATE = 42\n", "N_SPLITS = 5 # 5-fold CV\n", "\n", "# Dataset 1: New dataset with Weak link scores with 14 categories\n", "weaklink_scores_df = pd.read_csv(os.path.join(DATA_DIR,\"scores_and_weaklink.csv\"))\n", "\n", "# Dataset 2: Movement features 38 features\n", "movement_features_df = pd.read_csv(os.path.join(DATA_DIR, \"aimoscores.csv\"))\n", "\n", "print(\"Dataset 1 - Weak Link Scores:\")\n", "print(f\"Shape: {weaklink_scores_df.shape}\")\n", "print(\"\\nFirst few rows:\")\n", "print(weaklink_scores_df.head(2))\n", "\n", "print(\"\\n\\n\")\n", "\n", "print(\"Dataset 2 - Movement Features:\")\n", "print(f\"Shape: {movement_features_df.shape}\")\n", "print(\"\\nFirst few rows:\")\n", "print(movement_features_df.head(2))" ] }, { "cell_type": "markdown", "id": "97698c82-7b6f-4dcd-96a9-17c1f14151e5", "metadata": {}, "source": [ "#### Define weak link categories\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "40b37bda-7290-4cad-9ea1-dfff7bf98bb6", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Weakest Link Distribution:\n", "WeakestLink\n", "LeftArmFallForward 616\n", "RightArmFallForward 458\n", "RightKneeMovesOutward 274\n", "RightShoulderElevation 245\n", "ExcessiveForwardLean 128\n", "ForwardHead 109\n", "LeftAsymmetricalWeightShift 80\n", "LeftShoulderElevation 55\n", "LeftKneeMovesOutward 54\n", "RightKneeMovesInward 45\n", "RightAsymmetricalWeightShift 20\n", "LeftHeelRises 7\n", "LeftKneeMovesInward 3\n", "RightHeelRises 2\n", "Name: count, dtype: int64\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABJ8AAAJOCAYAAAAZP6bBAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA8y5JREFUeJzs3Qm851P9+PEzYzD2se+iEsYasm8hY0mWsWYZEpJ9p+yESJayVIRCoiwhW4iyLylLiVL42cla9u//8Trzf3/nfL/zvTOD+zX3znk9H49rZu73O3fuPT6fzznnfd7nfQY0Go1GkiRJkiRJkrpgYDe+qCRJkiRJkmTwSZIkSZIkSV1l5pMkSZIkSZK6xuCTJEmSJEmSusbgkyRJkiRJkrrG4JMkSZIkSZK6xuCTJEmSJEmSusbgkyRJkiRJkrrG4JMkSZIkSZK6xuCTJEnjwe9///s0YMCA5se//vWv8f7/ge+h/J74HsNhhx3W/Pzcc8+d+oJzzjmn5fud0FxzzTVp5ZVXTtNMM03zZxwyZEiakG2zzTbNn3WVVVZJteIei3bg3vu4JvR7RZLU9xl8kiSpF4JHfEwyySQ5UPDpT386rb766unwww9PTz75ZNfbl0l6fA9M3icEtU+WH3jggbTeeuulW265Jb322mvj/PeWWGKJZputvfbao72+1VZbtbTrP//5z5bX77333pbXr7766l75efq7sk24Nj9OULc3gkmSJPU3g8b3NyBJ0oTi3XffzR8ECx5//PF0ww03pCOPPDIdfPDB+WPgwFFrPp/5zGfS8ccf3/zzdNNNl8Y3vofye+J77Mu+8IUvtHy/E5JLLrkkvfPOO/n3k046adpjjz3SDDPMkAYPHjzGv7fSSiul++67L//+1ltvTR988EHLdfeHP/yh5f38mWBpuPnmm5u/5+8tv/zyvfYzadx9+9vfTq+++mr+/XLLLWfTSZL6PYNPkiT1gk033TQtueSSecLI5P/aa69N77//fv4g0+HZZ59Np59+evP9c845Z9pnn336RNsT5Gg0GmnqqafuM9/TuFhwwQXzx4To3//+d0uQ7dhjjx2nv0fw6aSTTsq/Jwh6//33p8UXXzz/mSy88uuCzKoRI0a0/Dksuuii+ZrQJ2/77be32SVJExS33UmS1AvWXHPNHLgh0+mqq67K26bmmWee5utnnHFGruEzLjWf3nzzzXTEEUfkoMFUU02VJp544jTTTDOlxRZbLE9K4+tEHaYyW+Xcc8/t+HXbt+Y9+OCDaf3110/TTz99zqz561//OsaaT+1ef/31tPfee+cgGtk4Q4cOTT/84Q9zEGtctwR22loX38O2227b8t5O25bGtjXvf//7XzrxxBNz9s60006bt0XOPPPMeTvaRRddNNr72/+fsCXttNNOS4ssskj+Gfl/8PWvfz395z//SR8GAcif/vSnabXVVsvZS/z/pN2/+MUvpp/85CfpvffeG61Nzj777Obn/vjHP47ztsoVV1yxpS3KTKcysDTrrLOO9jr/7/i3ykBWifbYbbfd0gILLJCmmGKKNNlkk+X/7wcccEB68cUXO7bndtttl69j/j2us8knnzx99rOfzf9/uUfG1RtvvJFWWGGFZjvQjpHhhT//+c/pa1/7Ws7W4/uacsop0+c///l09NFH5/upHUG4HXfcMc0777z5/fz/nX322fO1stdee+X7obx+S3zv3a5/1lPNp25co2TVxdebaKKJ8rUKrksCmcsuu2yuNTZo0KB83RLw3XrrrdOFF17YlZ9dkjSBakiSpA/tpptuIsrS/Dj77LNHe89dd93V8p411lijx7//+OOPN19bZZVVWl5r/9h0003z+w499NAxvq/8uiuvvHLzc5///OcbU0wxRcv7/vSnP+X3lp/jewzlvzXzzDM3llxyyY7/3q677trSBuW/O2LEiJbXaLPy76L9e+j0wffS098PzzzzTGPBBRcc49cZPnx449133+3x/8kKK6zQ8e+ttNJK43ydvPHGG/n9Y/o++Hdef/31jj9T+0d7G3YydOjQ5vs33HDD5ud33HHH/Lmpppqq5f/ns88+m19/4IEHWv6tX/3qV82/e9lllzUmn3zyHr+v2WefvfHwww+3fB977733GH+WSSaZpHH99de3/B1+vnidawf//e9/W66jmWaaqfGXv/yl+XdOO+20xqBBg3r8d2gProfw3HPPNWacccYxfm+nn356fm/573b6+NSnPjXW/x/t13Rcv2PC1+30/o96jfZ0r+y7777Nz0000USN888/v+P/i04fSy+99Fh/DkmSgtvuJEnqErZLsXWJrIzIPCELhuyCnpBxERlH1Nwhw+Bzn/tcziyhjlSZjbTGGmvkDA+280XhaLb+sQVwTLWk/vSnP+UsBopPk/nxt7/9bay1hErPPfdceuWVV9I3vvGNnBFx3nnnpaeeeiq/9oMf/CANHz48n9L2cepO3XPPPemXv/xl8/NlbadxqYGzxRZbpIceeqj554022ihn6Vx//fXp9ttvz5/79a9/nTNjDjnkkI5fgywgspX49y677LJmpg7/H++44460zDLLjPX7IFOozDji/xmZJPx9tmbGv8P7yDiJOlb87LQBqMm000475d8vtNBCY/03yVh6+OGHe8x84uch64qC+PH5jTfeuOX7jCwqcN1tvvnmOZMMZL5ssMEGuZ7U+eefn7OI/u///i//f6eN4vomO4rrYOGFF87/X8kweumll3JmINc52z35ueN77eStt97Khdcju2+22WbLtdTmn3/+/Ofbbrst7bLLLvl7Af9PyEIkM48sQO4bvj730XXXXdf8//7CCy/k35MRRyYTGT1PP/10vhfKNqPdv/zlL6d99913tC224ICB8enjXKPUoYv7imy8X/ziF/n/YWSacV8HPk8GG9uK+f9dZltKkjROmmEoSZLUq5lP2GSTTVre9/zzz3f8+5GhdN999zU/t8ACCzQ++OCDlq/33nvvNf71r3+Nc3ZRp/fwQSZLu3HNfOKjzJDg70088cTN17bYYotx+t7GlLk0ptfG9h6yuMrP77fffi3tt+yyyzZfm2666Rrvv/9+x/8nG2ywQbP9X3rppZwZEq+dcsopjbF58cUXW/4O10JP1wbv4/1jygAaVxdccEHLz0FG0gsvvNAYMGBA/vNRRx3V+N///teYdNJJW7LVyKiLvzPffPM1v96ee+7Z/PznPve5/HfD008/3fIzXn755S3fC2175513Ns4555zGSSed1Dj++OMbe+21V8v398QTT3T8ufn/tPbaazf/PNdcczUee+yxlq/P/6N4nYzB+H/ZKfPwz3/+c/7897///ebnyAbrlK0W2WBhXO718ZH5NK7XaPu9cuSRRzZ/z3VwxRVXtPz7L7/8cvP1qaeeuvH222+3vM6/+c9//vNDtYMkqW5mPkmS1EXtNZDGhno6ZGGQIUJ2CPVxqF1D9hN1XVZfffX0qU996mN9T2TPkE3yUZElUWZXUZ+Gejw33XRT/vO9996bxqfIbAplQW2ycrbccsvme15++eX0yCOP5HZvR9ZL1Pshc4c6Q2R9YVxq6tx11105063T9xF/jtpT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WfrrX/+ahg4dmu6+++605JJL5vdcc801ae21105PPfVU/vtj89prr6Vpppkmf22yp3qDp91JkiRJkqT+alxjJX0+8+k3v/lNDhhtvPHGaaaZZkqf//zn009+8pPm648//nh69tln81a7wA++9NJLp9tvvz3/mV/ZaheBJ/D+gQMH5kwpSZIkSZIkdUefDz7985//TKeffnqad95507XXXpt22mmntNtuu6Vzzz03v07gCWQ6lfhzvMavBK5KgwYNStNNN13zPe3efvvtHMErPyRJkiRJkvThDEp93AcffJAzlo4++uj8ZzKfHnzwwVzfacSIEV37d4855ph0+OGHd+3rS5IkSZIk1aDPZz5xgh31mkoLLLBAeuKJJ/LvZ5lllvzrc8891/Ie/hyv8evzzz/f8vp7772XT8CL97Q78MAD857F+HjyySd79eeSJEmSJEmqQZ8PPnHS3SOPPNLyub///e/pU5/6VP79PPPMkwNIN9xwQ/N1tshRy2nZZZfNf+bXV155Jd17773N99x44405q4raUJ1MOumkuVhW+SFJkiRJkqQJbNvdnnvumZZbbrm87W6TTTZJd911V/rxj3+cPzBgwIC0xx57pKOOOirXhSIYdfDBB+cT7NZff/1mptSaa66Ztt9++7xd791330277LJLPglvXE66kyRJkiRJ0gQafPrCF76QLr300rwN7ogjjsjBpZNOOiltscUWzffst99+6c0330w77LBDznBaYYUV0jXXXJMGDx7cfM/555+fA06rrbZaPuVu+PDh6ZRTThlPP5UkSZIkSVIdBjQajcb4/ib6A7byTTPNNLn+U29twRt25FWpr7r24HXG97cgSZIkSZImgFhJn6/5JEmSJEmSpP7L4JMkSZIkSZK6xuCTJEmSJEmSusbgkyRJkiRJkrrG4JMkSZIkSZK6xuCTJEmSJEmSusbgkyRJkiRJkrrG4JMkSZIkSZK6xuCTJEmSJEmSusbgkyRJkiRJkrrG4JMkSZIkSZK6xuCTJEmSJEmSusbgkyRJkiRJkrrG4JMkSZIkSZK6xuCTJEmSJEmSusbgkyRJkiRJkrrG4JMkSZIkSZK6xuCTJEmSJEmSusbgkyRJkiRJkrrG4JMkSZIkSZK6xuCTJEmSJEmSusbgkyRJkiRJkrrG4JMkSZIkSZK6xuCTJEmSJEmSusbgkyRJkiRJkgw+SZIkSZIkqf8x80mSJEmSJEldY/BJkiRJkiRJXWPwSZIkSZIkSV1j8EmSJEmSJEldY/BJkiRJkiRJXWPwSZIkSZIkSV1j8EmSJEmSJEldY/BJkiRJkiRJXWPwSZIkSZIkSV1j8EmSJEmSJEldY/BJkiRJkiRJXWPwSZIkSZIkSV1j8EmSJEmSJEldY/BJkiRJkiRJXWPwSZIkSZIkSV1j8EmSJEmSJEldY/BJkiRJkiRJXWPwSZIkSZIkSXUHnw477LA0YMCAlo/555+/+fpbb72Vdt555zT99NOnKaecMg0fPjw999xzLV/jiSeeSOuss06afPLJ00wzzZT23Xff9N57742Hn0aSJEmSJKkeg1I/seCCC6bf/e53zT8PGjTqW99zzz3TVVddlS6++OI0zTTTpF122SVtuOGG6dZbb82vv//++znwNMsss6TbbrstPfPMM2nrrbdOE088cTr66KPHy88jSZIkSZJUg34TfCLYRPCo3auvvprOOuusdMEFF6RVV101f+7ss89OCyywQLrjjjvSMsssk6677rr08MMP5+DVzDPPnBZbbLF05JFHpv333z9nVU0yySTj4SeSJEmSJEma8PWLbXd49NFH02yzzZY+/elPpy222CJvo8O9996b3n333bT66qs338uWvLnmmivdfvvt+c/8uvDCC+fAUxg2bFh67bXX0kMPPTQefhpJkiRJkqQ69IvMp6WXXjqdc845ab755stb5g4//PC04oorpgcffDA9++yzOXNpyJAhLX+HQBOvgV/LwFO8Hq918vbbb+ePQKBKkiRJkiRJE2Dwaa211mr+fpFFFsnBqE996lPpoosuSpNNNllX/s1jjjkmB7kkSZIkSZJUwba7EllOn/vc59Jjjz2W60C988476ZVXXml5D6fdRY0ofm0//S7+3KmOFA488MBcTyo+nnzyya79PJIkSZIkSROqfhl8euONN9I//vGPNOuss6Ylllgin1p3ww03NF9/5JFHck2oZZddNv+ZXx944IH0/PPPN99z/fXXp6mnnjoNHTq0478x6aST5tfLD0mSJEmSJE2A2+722WeftO666+atdk8//XQ69NBD00QTTZQ233zzNM0006Ttttsu7bXXXmm66abLQaJdd901B5w46Q5rrLFGDjJttdVW6bjjjst1ng466KC088475yCTJEmSJEmS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nSRJkiRJkiZ8g7rxRcluOvPMM/PHCy+8kD744IM044wzpoEDez3WJUmSJEmSpNqCTyWCTpIkSZIkSapTrwefjjjiiLG+hzpQBx98cG//05IkSZIkSZrQg0+HHXbYGINO1IAy+CRJkiRJklSHXi/CRH2n9o/33nsv/eMf/0h77rlnPvHu+eef7+1/VpIkSZIkSX3QJ1IBnELj88wzT/re976X5p133rTrrrt+Ev+sJEmSJEmSxrNP/Pi5lVZaKf32t7/9pP9ZSZIkSZIk1RB8uueee3ImlCRJkiRJkiZ8vV5w/Gc/+1nHz7/yyivplltuSZdcckn6+te/3tv/rCRJkiRJkmoIPm2zzTY9vjbDDDOkAw44IB1yyCEf6muefvrp+eNf//pX/vOCCy6Yv8Zaa62V//zWW2+lvffeO1144YXp7bffTsOGDUunnXZamnnmmZtf44knnkg77bRTuummm9KUU06ZRowYkY455pg0aFCvN4EkSZIkSZL+v16PvDz++OOjfW7AgAFp2mmnTVNNNdVH+ppzzDFHOvbYY3Ox8kajkc4999y03nrrpT/96U85EMUpeldddVW6+OKL0zTTTJN22WWXtOGGG6Zbb701//33338/rbPOOmmWWWZJt912W3rmmWfS1ltvnSaeeOJ09NFHf+yfWZIkSZIkSZ0NaBDN6Yemm266dPzxx6eNNtoozTjjjOmCCy7Iv8ff/va3tMACC6Tbb789LbPMMunqq69OX/7yl9PTTz/dzIY644wz0v77759eeOGFNMkkk4z133vttddyYOvVV19NU089da/8DMOOvCr1VdcevE7qy2w7SZIkSZLGr3GNlfS7yt9kMbG97s0330zLLrtsuvfee9O7776bVl999eZ75p9//jTXXHPl4BP4deGFF27ZhsfWPBrpoYceGi8/hyRJkiRJUg16fdsdJ9mxze7D4P3vvffeGN/zwAMP5GAT9Z2o2XTppZemoUOHpvvvvz9nLg0ZMqTl/QSann322fx7fi0DT/F6vNYJtaP4CASqJEmSJEmSNJ6DTxQCv+yyy3JGEdlF8803X3Mr3HXXXZcWWmihtP7663/or8vXIdBEKtevfvWrXDD85ptvTt1CMfLDDz+8a19fkiRJkiSpBr0efJptttnS888/nx588MFm4Cn89a9/Tauuump+z/bbb/+hvi7ZTZ/97Gfz75dYYol09913p5NPPjltuumm6Z133kmvvPJKS/bTc889lwuMg1/vuuuulq/H6/FaJwceeGDaa6+9WjKf5pxzzg/1PUuSJEmSJNWu12s+UQSc0+baA0+gCDivHXfccR/73/nggw/ytjgCUZxad8MNNzRfe+SRR9ITTzyRt+mBX9m2R1AsXH/99bkYFlv3Opl00knz6+WHJEmSJEmSxnPm01NPPZWDQT3hNd7zYZCFtNZaa+Ui4q+//no+2e73v/99uvbaa3NV9e222y5nKXECHkGiXXfdNQecOOkOa6yxRg4ybbXVVjnwRZ2ngw46KO288845yCRJkiRJkqR+EnyiptNpp52WvvrVr6bZZ5+95TWCTrzGyXMfBhlLW2+9dXrmmWdysGmRRRbJgacvfelL+fUTTzwxFzofPnx4zoai1hT/TphooonSlVdemXbaaacclJpiiilyzagjjjiil35qSZIkSZIkdTKg0Wg0Ui/64x//mIM/2GCDDZp1mh599NFciJx/jsLjK6ywQupPqPlE4IuC5721BW/YkVelvurag9dJfZltJ0mSJElS/4iV9HrmE0GlO++8Mx188MHp0ksvTf/73//y5yebbLIclOIEuQ+b+SRJkiRJkqT+qdeDT7H1jsATRcFfeOGF/LkZZ5wxb42TJEmSJElSPboSfAoEmwYPHpymnHJKA0+SJEmSJEkV6koq0j333JPWXHPNNPnkk6fpp58+3XzzzfnzL774YlpvvfXySXWSJEmSJEma8PV68Om2227LdZ8oML7lllvmrXdhhhlmyEWofvSjH/X2PytJkiRJkqQagk/f+ta30gILLJAefvjhdPTRR4/2+he/+MVckFySJEmSJEkTvl4PPt19991p2223TZNOOmkaMGDAaK/PPvvs6dlnn+3tf1aSJEmSJEk1BJ8mnnjilq127f7v//4vFyCXJEmSJEnShK/XT7tbZpll0q9+9au0xx57jPbam2++mc4+++y08sor9/Y/K2kcDDvyqj7bTtcevM74/hYkSZIkSf0h8+nwww/Pp92ts8466eqrr86f+/Of/5zOPPPMtMQSS6QXXnghHXzwwb39z0qSJEmSJKmGzKell146/fa3v0077bRT2nrrrfPn9t577/zrZz7zmfzaIoss0tv/rCRJkiRJkib04FOj0Uivv/56Wm655dIjjzyS7r///vTo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xuCTJEmSJEmSusbgkyRJkiRJkrrG4JMkSZIkSZK6xuCTJEmSJEmSusbgkyRJkiRJkrrG4JMkSZIkSZK6xuCTJEmSJEmSumZQ9760JEn6KIYdeVWfbrhrD15nfH8LkiRJ6kf6RebTLbfcktZdd90022yzpQEDBqTLLrus5fVGo5EOOeSQNOuss6bJJpssrb766unRRx9tec/LL7+ctthiizT11FOnIUOGpO222y698cYbn/BPIkmSJEmSVJd+EXx6880306KLLppOPfXUjq8fd9xx6ZRTTklnnHFGuvPOO9MUU0yRhg0blt56663mewg8PfTQQ+n6669PV155ZQ5o7bDDDp/gTyFJkiRJklSffrHtbq211sofnZD1dNJJJ6WDDjoorbfeevlzP/vZz9LMM8+cM6Q222yz9Ne//jVdc8016e67705LLrlkfs8PfvCDtPbaa6fvfe97OaNKkiRJkiRJlWY+jcnjjz+enn322bzVLkwzzTRp6aWXTrfffnv+M7+y1S4CT+D9AwcOzJlSnbz99tvptddea/mQJEmSJElSZcEnAk8g06nEn+M1fp1ppplaXh80aFCabrrpmu9pd8wxx+QgVnzMOeecXfsZJEmSJEmSJlT9PvjULQceeGB69dVXmx9PPvnk+P6WJEmSJEmS+p1+H3yaZZZZ8q/PPfdcy+f5c7zGr88//3zL6++9914+AS/e027SSSfNJ+OVH5IkSZIkSaos+DTPPPPkANINN9zQ/Bz1majltOyyy+Y/8+srr7yS7r333uZ7brzxxvTBBx/k2lCSJEmSJEmq+LS7N954Iz322GMtRcbvv//+XLNprrnmSnvssUc66qij0rzzzpuDUQcffHA+wW799dfP719ggQXSmmuumbbffvt0xhlnpHfffTftsssu+SQ8T7qTJEmSJEmqPPh0zz33pC9+8YvNP++111751xEjRqRzzjkn7bfffunNN99MO+ywQ85wWmGFFdI111yTBg8e3Pw7559/fg44rbbaavmUu+HDh6dTTjllvPw8kiRJkiRJtegXwadVVlklNRqNHl8fMGBAOuKII/JHT8iSuuCCC7r0HUqSJEmSJGmCrPkkSZIkSZKkvsvgkyRJkiRJkrrG4JMkSZIkSZK6xuCTJEmSJEmS6i44LkmSNC6GHXlVn22oaw9eZ3x/C5IkSeOFmU+SJEmSJEnqGoNPkiRJkiRJ6hqDT5IkSZIkSeoag0+SJEmSJEnqGoNPkiRJkiRJ6hqDT5IkSZIkSeoag0+SJEmSJEnqGoNPkiRJkiRJ6hqDT5IkSZIkSeoag0+SJEmSJEnqGoNPkiRJkiRJ6hqDT5IkSZIkSeoag0+SJEmSJEnqmkHd+9KSJEnqD4YdeVXqy649eJ3UV/XltuvL7SZJqouZT5IkSZIkSeoag0+SJEmSJEky+CRJkiRJkqT+x8wnSZIkSZIkdY0FxyVJkiR9oizULkl1MfNJkiRJkiRJXWPwSZIkSZIkSV1j8EmSJEmSJEldY/BJkiRJkiRJXWPwSZIkSZIkSV1j8EmSJEmSJEldY/BJkiRJkiRJXWPwSZIkSZIkSV1j8EmSJEmSJEldY/BJkiRJkiRJXWPwSZIkSZIkSV1j8EmSJEmSJEldY/BJkiRJkiRJXTOoe19akiRJktSbhh15VZ9t0GsPXmd8fwuS+igznyRJkiRJktQ1Bp8kSZIkSZLUNQafJEmSJEmS1DUGnyRJkiRJktQ1Bp8kSZIkSZLUNdUFn0499dQ099xzp8GDB6ell1463XXXXeP7W5IkSZIkSZpgDUoV+eUvf5n22muvdMYZZ+TA00knnZSGDRuWHnnkkTTTTDON729PkiRJktQFw468qs+267UHrzO+vwWp66rKfPr+97+ftt9++7TtttumoUOH5iDU5JNPnn7605+O729NkiRJkiRpglRN5tM777yT7r333nTggQc2Pzdw4MC0+uqrp9tvv328fm+SJEmSJPVFZo2pN1QTfHrxxRfT+++/n2aeeeaWz/Pnv/3tb6O9/+23384f4dVXX82/vvbaa732Pb331n9TX9WbP2c32Ha2m9db/7hfvVcnvHaD15zt5jXXP+5X79UJr93gNWe7ec31j/t1g+9em/qqS/cf1uv/DxqNxhjfN6AxtndMIJ5++uk0++yzp9tuuy0tu+yyzc/vt99+6eabb0533nlny/sPO+ywdPjhh4+H71SSJEmSJKn/ePLJJ9Mcc8zR4+vVZD7NMMMMaaKJJkrPPfdcy+f58yyzzDLa+9meR3Hy8MEHH6SXX345TT/99GnAgAGpryHaOOecc+b/4VNPPfX4/nb6DdvNtvOa6z+8X203r7f+wXvVdvOa6x+8V207r7n+47U+PN8nn+n1119Ps8022xjfV03waZJJJklLLLFEuuGGG9L666/fDCjx51122WW090866aT5ozRkyJDU13Eh9rWLsT+w3Ww7r7n+w/vVdvN66x+8V203r7n+wXvVtvOa6z+m7qPz/WmmmWas76km+AQymUaMGJGWXHLJtNRSS6WTTjopvfnmm/n0O0mSJEmSJPW+qoJPm266aXrhhRfSIYcckp599tm02GKLpWuuuWa0IuSSJEmSJEnqHVUFn8AWu07b7Po7tggeeuiho20VlO3mNde3eK/adl5z/YP3qm3nNdd/eL/abl5z/YP3at1tV81pd5IkSZIkSfrkDRwP/6YkSZIkSZIqYfBJkiRJkiRJXWPwSZIkSZIkSV1j8EkTJEuZ2XaSJKn/c0wnSRMGg0/9gJ3uh/Piiy+mAQMG2G4fEW33wQcffNS/LkmS9LHdfPPN+VfHdB+N8wdJfY3Bpz7qnHPOSQcddFD+vZ3uuOP4ydlmmy098cQTttuH9M1vfjMtv/zy+fcDBw40ACX1Yddee2166623xve30S8nY++///74/jZUkYsuuihddtll4/vb6HeOPfbYtPPOO6ef//zn+c+OhT/8s442kz4JxxxzTDrkkEMMeGqsDD71Qf/973/TH/7wh3TNNdek7373u/lzdrrjZsstt0wrrrhiWmmlldK///1v220cvffee7ndnn/++bT++uvnzxmAkvqmf/zjH2mttdZKe+yxR3r77bfH97fTrzzzzDNpookmyr//6U9/mv785z+P729JE/j1dvTRR6cf/ehHeUyncbfpppumeeedN9+n5557bv6cY+Fxc+edd6b77rsv/36HHXZIJ5xwgpfeh8wWe/zxx9Nzzz1nu42jySabLB111FHp+OOPNwD1IXxQ4U4Tg0990OSTT56+853v5GDAFVdckY488sj8eTvdsWOgQtbY0KFD0yqrrJKeeuop220cDBo0KG200Ubpe9/7XnrsscfSeuutlz9vAOqjdxymu49dtNEjjzySgwAPP/zwuFyu1fvMZz6TfvOb36Tzzz8/7bnnnul///tf9W0yNnfffXeeTMwxxxx5Urbvvvumb3/722nIkCG23Ye4V//zn/+kl156yTYbR7POOmsOPBEkPu2009KVV15p242Dd955J80zzzy57aaddtp0wQUXpPPOOy+/5li4Z4cffni644470oYbbpjHc1tvvXVuu9VXX93r7kNki5GpuNlmm6Vf/vKX6fXXX7ftxqHdWAw744wz0oEHHpiOO+649O6779pu4zB/GDhwZCjmJz/5SbrqqquqaDODT33wBiYLZZZZZknbbLNNWmCBBdKFF16YTjzxxPy6ne7YAwB//OMf06qrrpozn4YNG+YWvHFsu4knnjh/kPlE0HOLLbbInzcANeb7NToOBisEA9gOFfdqjSsaHwZt9Otf/zott9xyaYMNNkjLLrtsnmxozNcc19WXv/zldPHFF+esgCOOOCK9+eabNlsPlllmmbT77runqaaaKu244455YefHP/5xnqR96lOfMlA8jvfqpZdemtZZZ5205JJLpv333z/df//9XnNjwH3KFs+ll146l1F47bXX8vPtd7/7ne02lnabZJJJ8u//9Kc/5XuU4DHb8BgPx/XoAk+rNddcM49BeN4xDrnhhhvyn88888y06KKLNvsPjfk5x8LO5ptvnsfALMrSbwTbb3S0SbTLJptskrfeEYDiWecYeNzmD/vvv3867LDD8iIsCzwTOoNPfTQLhUnFfvvtl1dq/+///i+nzNLxwk53dHED02bcxNh+++2b28msATX2ttt7771zNgADZIIBBKDMgBq3egq0HantdLh77bVX2m677Zpta+fbue3icIBvfetbeYWWuh78fqeddsq1AzTme5YVMiZmZPKwPZssHmtAjY4gE1snbrvttjTDDDOk6aefPmeK0VZsidK4ueeee/IzjgwKnm8EAdhiEQWhNTr6B7Z4ErS75JJL0iuvvJK33pGdEosU6vx8A/3pVlttlZ9xBxxwQM6GOvnkk82A6uCBBx7Imf6XX355/jMBTnYAUAOVvuKuu+5qXpOOSXpGX8E2WfrU3XbbLU033XTphRdeyBlQBECdf3V+znHPspBIoJ2yAPS1tJ9b8Ho24P/PH77//e/nRUTuU8bAZHpO8Brqc+69997GFFNM0fjJT37S+L//+7/Gk08+2fjqV7/a+MIXvtA49thjm+/74IMPxuv32df89a9/bcwxxxyN3/zmN83P/fnPf26ssMIKjbnnnrvxxBNP5M/ZbqO7+eabGzPMMEP+FW+99Vbj3HPPze22/vrrN9/3/vvvfwL/J/uXf/zjH43VV1+98Ze//CVfYz/60Y8aCy64YGOTTTZpvsd2G90111zTOO644xq777574913321+/vTTT28MHDiwccwxx3xC/wf7n9/+9reNwYMHN0466aTGT3/608Zhhx3WmGSSSRrf/OY3G//73//G97fXp/z6179uzDfffLlfPeqooxo77bRT47bbbmvsvPPOjUknnbTxu9/9Lr+vvAY1+jPu+OOPbxx55JHNz915552NxRdfvLHBBhs0fv/739tkPaBPnXjiiXO/wHV31VVX5f5hrbXWalx77bW2W6Ecmz322GN5/HHZZZc1P/f444831lhjjcZiiy3WuPDCCzv+vVr95z//yePfbbbZpvGtb32rMfnkkzeef/75xn333df4zGc+k8cjd9111/j+Nvu8119/PT/XTjnllMZ///vf3JbLL798Y5ZZZmlMNNFEjcsvv3x8f4t90gMPPNCYaqqp8nPujTfeyPNW5quM5b773e86Bu7B22+/3dhqq61yG8Vz76KLLmqstNJKjW984xsTbN9q8KkPaO84ufDoLF555ZXm57iR6Txmm222POFQ64SeTuKf//xn7nAJOJXvYcA3zTTTND7/+c/nwYtGD4ZcffXVjRlnnLHx0ksvtXTCJ598cmPAgAGNrbfe2mbrgIn/Kqus0thss81yJ4I333yz8bOf/awxdOjQxqabbtrjfV779cegjmtr0UUXHW3iTwCK4MrBBx883r7HvuxrX/tay7WFSy65JAeg9thjjzz400gEhb/yla805p9//ny90Zfiueeea2y//fY5AFUO8L7zne80HnroIZvv/z+zmMDOPvvseUGMQHHp9ttvz/3qxhtv3Lj++uttsw4OP/zwxnLLLdfyuVtvvTUHRFkYi+Bn7coxyauvvtp49tlnG5/+9KebQab33nsv//rUU0/lhbKll1469xO1Y7wRGOsS6GQc/K9//avl88wpWMTm91h55ZUbp5122nj5nvsyxr30r4xLaMf11luv8cMf/jA/B9ddd90cKNDoY1r60M9+9rM5YaJ09NFH536Xa80Fns7zgC996Us5oP6rX/2qseqqqzZWW221xrbbbtuYd9558zhvQpw7GHzqA+LCYoWM1UQCAXQURJLLTvnRRx9tDBkypDHnnHPmjIGalTfjvvvu2/j617+eA1DcwHvttVfL66+99lpjmWWWyRF4OhKNcsQRR+RO4W9/+1se6P3yl78cbcWbiQedB+2qUcgwOfTQQ/O9ygSsFAGohRdeOGdFafT7lkAnK2NcW2ef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OjvpxGXdCQYtNR+/245VflawOd2OGii0GZMKrksKeFK3gxVvalNodLQV7VZiUMxkjdc6DehqnsyCySo1YljJDgSGyUohE4rMiaFDh+YT7VgFkj6K8vnORJZrjpR2nmtl3SICUHPOOWfemt1pW3HtaCsymmIRImoTga0UjFPg5HX0LShRL5HnGoGUGLOx8s/1yEKFR7N3RvCENiK7jowK6lCWr1HvqTzZuFbleIKMaxYMybSO/jWuRwJQlJtge2xZM0bqDSxOsMWT8hIs6JSn2pE5S+22su/Q2ANQzGPZ/u+4pB4DU5cNHDgw/f3vf0+HHHJI/vPFF1+cFllkkfTYY4/lP88+++xpyJAhaeWVV05//OMf0+9+97u00EIL5dcIjq211lrpc5/7XKrRfffdl7bYYot04oknpr322ivtuOOOaeKJJ04DBgzIry+++OLpD3/4Q5p//vnTjTfemGaYYYZmu9GmvI/fx/trdf3116df/epX6be//W064ogj0ogRI9K///3vtOKKK+b2HDx4cNpjjz3SQQcdlK699trcZhop2oI2ev7559Nbb73VbJpll102rbHGGumXv/xleu2110ZrsokmmqjqZnz55Zfzvcf9y3WFZZZZJn3/+99PF154YVp11VXTSy+9lB5//PHq71F9NB988EHLtfPMM8/kj4cffji9/fbbaZJJJknvvvtufm3jjTfO196PfvSj/ExU63OOtppuuunSlVdemT836aST5jbEkksumd55553mmEYpX3c333xz2mabbdL++++f7r333nTRRRflMdztt9+em2irrbZKX/va19IjjzySjjvuuOa1WOu92smcc86Z/ve//6Wdd945HXDAAekb3/hG/jyfO+OMM9IUU0yRZplllk/4u+1baIsYT/B8W2655dK3v/3t9Prrr6dHH300f/7/L6anmWeeOW2//fZp7bXXzn2w4zn1hriOpppqqnTuueempZZaKq233nq5P+VZyLONecZDDz1kg38I8847bzr++OPTSiut1Jz7qwLdjGyRisiJa2xxYpWC6OZEE03UPMkjttKR/USNJ1YrNAq1YciSmGWWWRpTTz11MyOszCJja2J5ZLtZTqOjzg71J3DhhRfm1cXTTjst/5ktZHGaHddjzdli7VtiS2wDoDjg1Vdf3dI2rPSQLeBpT61bUGKVlm0oZDiRiULh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9NFHp2WWWSYdccQR6YADDkirr756+t3vfpc+85nP5Paba6650s9//vM044wzpprRFtF2Z555ZnryySfznw866KC06KKLpq997Wvp0EMPTU899VS68sor00QTTZROPPHE9Nxzz+XrbsCAAflr8GuNHnzwwbTCCiuk9dZbr/m5m2++Of3xj3/M19uXv/zltMEGG6Qddtght+tOO+2Ur71dd911vH7ffcl7772Xr68555wzvfvuu+moo45KN9xwQ/rLX/6SJp100nTRRRelBRdcMG288cbphBNOSPPMM8/4/pY1AeBZNv3006ff/OY3aeutt07HH3982n777fPz7Iorrkj//ve/0y677JKmnHLK5t8ZNKjXuvh+gec6P/O//vWvNOusszY/R5tdfvnl+d7kddrxmmuuSRtttFEek5x77rlppplmSrWLvvEf//hH/j1tNffcc6dDDjkk/f73v8/jPMYnPAPff//9dPjhh6frrrsu3XjjjfnZVyPaa6mllsr9JmNg2uHxxx9vXn9vvvlmbkfGfXzw+2mmmSY99thjabbZZhvf336fw1yBfpWxMeNinnM77rhjfu3Pf/5z/jx96vzzz9/ybJTGFdfR+eefn5/95513XnrnnXear8X8Iiy00EK5nx08eHBaYoklbGSpFwwgAtUbX+jSSy/NwZFLLrkkPfroozl4suaaa6Yf/ehH+fW33347d8rPPvtsmnjiifPgr/bAEwO5n/zkJ+nHP/5xnqTuueee+fN33313Ovjgg9Pf//73PKltn7yWX6Mm5c9NsOmUU05Jyy+/fLrjjjvSZz/72fSLX/wi/8rnf/vb3+YB8dJLL52vtYsvvjhfdwyYax6o7LXXXnkSxuQCTCRovxdffDEHme6///60ySab5IDdf/7zn3TLLbekddddt+o262S77bbLzzyuR4J5q666atptt93SsssumwNPBEalj6Kn5/upp56a+wX6UvoLJrpg8YJ7loExk7Wa8XxnIkEQjrHGV7/61fS3v/0t/exnP0urrbZavk9Z5Nlss83StNNOm66//vr8915//fU01VRTje9vv0/41a9+lfsJAkyf/vSncxt+85vfTH/961/T8OHD02uvvZaDJrQfk7irr746ff7zn0+1op0iyEtQmKAmAbt77rknLx7SXkOGDMn3Nb/HWmutlc4555z8+1rHJOVzrmwDFq653q666qq86EWwCW+99VZ+zhEEuPDCC6scA6t38LznPmXM9sUvfjFfe0yFCTSB+5V+hPfxK8837tlaA+xSnw0+fe9738uBJz4Y3A0bNiydfvrpuYNgtZFVs5NPPjkHAJTS/vvvnx9+Sy65ZJ78M7BjFZHJRQSgyOCh3Vwha0UWExMvVmMXWWSR9PLLL+eJBZcy19+8886bJ2hkRZFdxyojq5PlILHWFe3bb789ryLSFvz5jTfeSPvss08OMDFgPvLII9P3v//9nCE1++yzN/9+rW0X7UZ7PPHEE3mljEEIbUE2BavaZE9MNtlkeQCz5ZZb5gnHYYcdVm12nT66MiuTbCYQFFlllVXy78keJshOAJnAAO/ffffdc/CYfqS2ezQmsGRKxNjilVdead6XTPYJzjGBXXnlldMcc8yR30PmNX0s2Z61tdmYrrunn346rbTSSunAAw/MwaU//OEP6de//nVeGIvFMfoHJmUEoFhkrDWz8+GHH05Dhw7Nv2esu8466+QFHMYmLChy/dE+XF+TTz55ft///ve//HuCeF53I7HQxfiXa5DxxyyzzJLvS65Bnn1klDHpJyj6zDPPpD/96U/NTDIDUPoofQTPOZ5fv/zlL/NY7ZFHHsk7JxjHsWjBr9EPc62RWLHwwgvb2FJvGdf9eVEP5n//+1/H1zkZYIUVVsj7szndqfw77KWlpgIn36nR+M1vfpPbKYo9U8TzuOOOy8XGOd0jUDdmzz33rH4/O8eexnV30kkn5dOcqH3FiROBa2vhhRduLLLIIh2LO9da64kTJQNFYalrcs011zT233//XM+JI5/LujDUQKFem4VQR6E+FvVOFl100XyCESeMtRf+f+655xoHH3xwY7rppuuxALk0rqiLSNF/auxQfJdT7sJXvvKVfGIWNRWpcbfiiis2i6TWWPuE4uIUFgc1OTgIgNPXqM3Gffnaa6+N9ndGjBiRa37UVhMrxNisPCWMZxrtSL2seP3JJ5/MJ91xiuJ3v/vd8fb99sWi2Isttliu+8cYjcL/jIHDdtttlw+aiJMoO6n12isde+yxjWmmmSa319xzz50/qEsJxikUe6a/XX311fM9G21W43NOvdNHUId48sknbzzxxBO5ViIHZDFvoC5sKIuOx2nQksZTwXFO89h4440bN95442ivMcDbY489cmCAwuJxShtFUilc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qYmZT0RElOaVKlVKpkyZoidqaLK7ceNGvR+BJ5zARUVFSevWrWX79u2xZnti4ImIvJU98HThwgXp16+ftGzZUk6cOKFZnB06dJCjR4/KwIEDdTbPzZs3S0hIiERHR2sGFPZvyI4iIiLyBsx8IiKiezoDCr1SEHjCCVtkZKQGpIiIvBkmREA/OwTJUTZcv359zXZq1KiRZMmSRVasWCEFChSQZcuWydKlSzWrs2TJklpqjPJjBNiDgoI0MPXss8+m9p9DRETE4BMREd2bAShkDaAB73vvvafNxXfu3KmBJ5baEZE3+/DDDzVohFK63377TYPpyOxs3ry57ssaNGggfn5+OuMdAlBw+PBhzXRCRhT2fSjFQ1Bq/fr18sADD6T2n0RERMSyOyIiundL8NDfiYEnIkpLgafu3bvLtGnTJCIiQmbPni3nz5+X5cuXaxYUAkm4H2V4Zv8GmPkOTcgx62fnzp315xYvXszAExEReQ32fCIionsyADVhwgTp0aOH7Nq1ixlPROT11q1bJy+//LIMGjRIWrVqpffVrVtXs5zQSPzixYty+fJlDSh99913OqECSosxI55934eG5Ci9q1y5cir+NURERLGx5xMREd3zWGpHRGmhZBgz2OXKlUt71lWpUkVatGgh4eHh0rBhQ20knjNnTnn00UddwSkE2WfMmCE+Pj6u2fGQIYWeT0RERN6EwSciIiIiIi/qWYdgUkxMjFy6dEk+/vhjKVOmjGYzoQfUmDFj5Ny5c/Lcc89pTzu4ceOG/gwREZG3YvCJiIiIiMiLAlDdunWTLVu2yMyZM3W2TjsEpXbs2KGz4DHgREREaQWDT0REREREXuTQoUPaeBzlc5j5DoGm+EqImfFERERpBYNPREREREReWoIHgwcP1ubiREREaRW7ERIREREReRnMXDdlyhQtrevVq5fO3ElERJRWMfhEREREROSlAahx48ZJ7dq1JTAwMLVfDhER0V1j2R0RERERURpw8+ZN7QNFRESU1jD4REREREREREREHsNLJ0RERERERERE5DEMPhERERERERERkccw+ERERERERERERB7D4BMREREREREREXkMg09EREREREREROQxDD4REREREREREZHHMPhEREREjvbSSy9J1qxZPfb869atk3Tp0unXu/3ZxYsXe+S1EREREaUEBp+IiIgoxSxcuFCD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aN68uZbdIRCEUrrp06ff8WeQ7YOZ3DAzIBp8305i1pd7tpb9vUFmFhp8365Je5EiRfTrwYMHY2Uq/fXXX3GyvrDs/v374zwHyg/tz3UnaOyO4Bfe40ceeUQbmCe0ETsRERElHcvuiIiIKMVhJjnThwfZNfbMJwSeHn74YQkLC9PeQ/Z+P5gZDhlDb731VpwMIfwfAQx7VpF9GXw/efLkW74mlNqh1xNmkEPgBrO9eRMEhaZMmSIzZszQ7KQ7adWqlWb5YHZA9M5yh5K8QYMGJXp9ISMKzp07F6e3EjKoMOOcO/R4Msujp1b69OnjBNAwK547BB7xPthfP7aJmTNnStGiRaVcuXKSEPh97dq105JKzMaH9WJmUyQiIiLPY+YTERERpTgEehDk2bBhgwabkO1kh2DUhAkT9Ht78AnZNW+//bZm8qDhNDKCkAl05MgRWbZsmTai7tu3r5aNYVl8j+AW+h8tWbIk3n5KdsjYCQ8P115AwcHBsn79egkMDLzj3/Puu+9KlixZYt2Hkq6BAwdKcurRo4c2EkfQCM29b/f8vr6+GkyrX7++1K5dW4NDyErC/Xv37tUeSOixhOBUYtaXea969uypDdoRuGrbtq32h3rllVdk1KhRsmPHDs3Uwu9CLyiUvCGQhYBY/vz55bXXXtP3t2nTppqVhKbzyDbLkydPrMyqAQMGaPYW3gv8PvSFQnYW3m+8vsSUzZngHRqfjxkzJtHrnoiIiJLAgzPpEREREd3SG2+8gTQbq0aNGnEeW7p0qT6WLVs26/r163EeX7JkiVWrVi3Lz89Pb2XKlLG6d+9u7d+/37XMvn37rPr161tZs2a18uTJY3Xp0sXauXOnPu/HH3/sWu7FF1/U57CLioqyypUrZ/n7+1sHDhy45d8wdOhQfb74bj4+PrrM2rVr9f/4atSpU8cqX758nOfDaylSpIjr/+ZnFy1aFGu5fv366f1Tp0617iQ6Otp68803rQoVKlhZsmSxMmXKZAUGBur6P3XqVKLXF96PkJAQK2/evFa6dOn0cbuZM2daQUFBVubMmfX9w+/F6z158mSs5xgyZIiuXyxXr149KzIy0sqdO7f16quvxnq+Q4cOWa1atbJy5sypr71atWpWeHh4rGVutZ7cYZ3fd9991vHjx++43oiIiCj5pMM/SQleERERERElFcrykImFzDZTDpjcMJshsqfWrFnjkecnIiKi+LHnExERERGlqMuXL8e5b9KkSfrVU43et27dquWA9obqRERElDKY+UREREREKQpNv3FDQ/GsWbPqrIfo7YQ+UatXr07W37Vnzx7Ztm2b9piKioqSw4cPa7N7IiIiSjlsOE5EREREKQozzWEGurFjx2oDddOEHCV3yW3x4sUyfPhwCQgI0AAXA09EREQpj5lPRERERERERETkMez5REREREREREREHsPgExEREREREREReQyDT0RERERERERE5DEMPhERERERERERkccw+ERERERERERERB7D4BMREREREREREXkMg09EREREREREROQxDD4REREREREREZHHMPhERERERERERETiKf8HJV/K44iOnZ8AAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "weaklink_categories = [\n", " \"ExcessiveForwardLean\",\n", " \"ForwardHead\",\n", " \"LeftArmFallForward\",\n", " \"LeftAsymmetricalWeightShift\",\n", " \"LeftHeelRises\",\n", " \"LeftKneeMovesInward\",\n", " \"LeftKneeMovesOutward\",\n", " \"LeftShoulderElevation\",\n", " \"RightArmFallForward\",\n", " \"RightAsymmetricalWeightShift\",\n", " \"RightHeelRises\",\n", " \"RightKneeMovesInward\",\n", " \"RightKneeMovesOutward\",\n", " \"RightShoulderElevation\"\n", "]\n", "\n", "# For each row, find the column name with the maximum score\n", "weaklink_scores_df['WeakestLink'] = weaklink_scores_df[weaklink_categories].idxmax(axis=1)\n", "\n", "print(f\"\\nWeakest Link Distribution:\")\n", "print(weaklink_scores_df['WeakestLink'].value_counts())\n", "\n", "# Visualize the distribution\n", "plt.figure(figsize=(12, 6))\n", "weaklink_scores_df['WeakestLink'].value_counts().plot(kind='bar', color='steelblue')\n", "plt.title('Distribution of Weakest Links', fontsize=14, fontweight='bold')\n", "plt.xlabel('Weak Link Category', fontsize=12)\n", "plt.ylabel('Frequency', fontsize=12)\n", "plt.xticks(rotation=45, ha='right')\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "5f9354f4-8dd7-4087-96c3-06d34e82e66d", "metadata": {}, "source": [ "#### Merge datasets" ] }, { "cell_type": "code", "execution_count": 4, "id": "e0b7b5a8-9e24-43f6-a445-cd42a68c4b92", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Merged dataset: (2094, 44)\n" ] } ], "source": [ "target_df = weaklink_scores_df[['ID', 'WeakestLink']].copy()\n", "merged_df = movement_features_df.merge(target_df, on='ID', how='inner')\n", "\n", "print(f\"Merged dataset: {merged_df.shape}\")" ] }, { "cell_type": "markdown", "id": "92098dca-dae7-4d12-8fe2-31d9a2dbd3df", "metadata": {}, "source": [ "#### Body regions " ] }, { "cell_type": "code", "execution_count": 5, "id": "124141b7-431f-4bbd-858d-0d40bc60c0bc", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Body region distribution:\n", "BodyRegion\n", "Upper Body 1484\n", "Lower Body 610\n", "Name: count, dtype: int64\n" ] } ], "source": [ "# Define the groups as mentioned in Slide 6 into 2 distinct regions\n", "upper_body_classes = [\n", " \"ForwardHead\",\n", " \"LeftArmFallForward\",\n", " \"RightArmFallForward\",\n", " \"LeftShoulderElevation\",\n", " \"RightShoulderElevation\"\n", "]\n", "\n", "lower_body_classes = [\n", " \"ExcessiveForwardLean\",\n", " \"LeftAsymmetricalWeightShift\",\n", " \"RightAsymmetricalWeightShift\",\n", " \"LeftKneeMovesInward\",\n", " \"RightKneeMovesInward\",\n", " \"LeftKneeMovesOutward\",\n", " \"RightKneeMovesOutward\",\n", " \"LeftHeelRises\",\n", " \"RightHeelRises\"\n", "]\n", "def get_region(label):\n", " if label in upper_body_classes:\n", " return \"Upper Body\"\n", " else:\n", " return \"Lower Body\"\n", "\n", "merged_df['BodyRegion'] = merged_df['WeakestLink'].apply(get_region)\n", "\n", "print(f\"\\nBody region distribution:\")\n", "print(merged_df['BodyRegion'].value_counts())" ] }, { "cell_type": "markdown", "id": "9b103ab6-dd2a-4945-a7bb-2aac325f7424", "metadata": {}, "source": [ "#### Prepare features" ] }, { "cell_type": "code", "execution_count": 6, "id": "13068de8-4cac-42b6-95db-935a554d8469", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Features shape: (2094, 41)\n", "Number of features: 41\n", "14-class target: 14 classes\n", "Region target: 2 classes\n" ] } ], "source": [ "# Exclude non-features\n", "exclude_from_X = ['ID', 'WeakestLink', 'EstimatedScore', 'BodyRegion']\n", "feature_columns = [col for col in merged_df.columns if col not in exclude_from_X]\n", "\n", "X = merged_df[feature_columns].values\n", "y_14class = merged_df['WeakestLink'].values # For predicting specific weak link\n", "y_region = merged_df['BodyRegion'].values # For predicting 2 body region\n", "\n", "print(f\"Features shape: {X.shape}\")\n", "print(f\"Number of features: {len(feature_columns)}\")\n", "print(f\"14-class target: {len(np.unique(y_14class))} classes\")\n", "print(f\"Region target: {len(np.unique(y_region))} classes\")" ] }, { "cell_type": "markdown", "id": "54b65680-f28b-4e37-a79b-927d8dd3db64", "metadata": {}, "source": [ "#### Train/test split" ] }, { "cell_type": "code", "execution_count": 7, "id": "2ca48980-f52f-48ef-8068-76327682881c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Training set: 1675 samples\n", "Test set: 419 samples\n" ] } ], "source": [ "# Same random split for all X, y_14class and y_Region\n", "X_train, X_test, y_train_14, y_test_14, y_train_region, y_test_region = train_test_split(\n", " X, y_14class, y_region, test_size=0.2, random_state=RANDOM_STATE, stratify=y_region\n", ")\n", "\n", "# Scaling\n", "scaler = StandardScaler()\n", "X_train_scaled = scaler.fit_transform(X_train)\n", "X_test_scaled = scaler.transform(X_test)\n", "\n", "print(f\"\\nTraining set: {X_train.shape[0]} samples\")\n", "print(f\"Test set: {X_test.shape[0]} samples\")" ] }, { "cell_type": "markdown", "id": "c324acc3-769f-44fb-9d4c-8a5fcd4f455e", "metadata": {}, "source": [ "#### Cross validation setup" ] }, { "cell_type": "code", "execution_count": 8, "id": "e777809d-c0ba-4c0f-b2ee-b1a1f39fc9c7", "metadata": {}, "outputs": [], "source": [ "# Body region (upper and lower) with cross validation\n", "\n", "cv_strategy = StratifiedKFold(n_splits=N_SPLITS, shuffle=True, random_state=RANDOM_STATE)\n", "def evaluate_classification_cv(model, X, y, cv, model_name=\"Model\"):\n", " scoring = {\n", " 'accuracy': 'accuracy',\n", " 'precision': 'precision_weighted',\n", " 'recall': 'recall_weighted',\n", " 'f1': 'f1_weighted'\n", " }\n", " \n", " cv_results = cross_validate(model, X, y, cv=cv, scoring=scoring)\n", " return {\n", " 'Model': model_name,\n", " 'Accuracy_mean': cv_results['test_accuracy'].mean(),\n", " 'Accuracy_std': cv_results['test_accuracy'].std(),\n", " 'Precision_mean': cv_results['test_precision'].mean(),\n", " 'Precision_std': cv_results['test_precision'].std(),\n", " 'Recall_mean': cv_results['test_recall'].mean(),\n", " 'Recall_std': cv_results['test_recall'].std(),\n", " 'F1_mean': cv_results['test_f1'].mean(),\n", " 'F1_std': cv_results['test_f1'].std()\n", " }, cv_results['test_f1']\n" ] }, { "cell_type": "code", "execution_count": 9, "id": "621f9c9d-0106-43c9-939e-ce232b33cd0b", "metadata": {}, "outputs": [], "source": [ "# Define models for region classification\n", "models_region = {\n", " 'Logistic Regression': LogisticRegression(max_iter=1000, random_state=RANDOM_STATE, class_weight='balanced'),\n", " 'Naive Bayes': GaussianNB(),\n", " 'LDA': LinearDiscriminantAnalysis(),\n", " 'QDA': QuadraticDiscriminantAnalysis(),\n", " 'KNN (k=5)': KNeighborsClassifier(n_neighbors=5),\n", " 'KNN (k=7)': KNeighborsClassifier(n_neighbors=7),\n", " 'KNN (k=10)': KNeighborsClassifier(n_neighbors=10)\n", "}\n", "\n", "results_region = []\n", "f1_scores_region_dict = {}\n", "\n", "for name, model in models_region.items():\n", " result, f1_scores = evaluate_classification_cv(model, X_train_scaled, y_train_region, cv_strategy, name)\n", " results_region.append(result)\n", " f1_scores_region_dict[name] = f1_scores\n", "\n", "results_region_df = pd.DataFrame(results_region).sort_values('F1_mean', ascending=False)" ] }, { "cell_type": "code", "execution_count": 10, "id": "d7362e1e-9e03-4330-b6bf-ce7ffa1128ef", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Body region (upper and lower) results of 5-FOLD CV\n", "\n", "\n", " Model Accuracy_mean Accuracy_std F1_mean F1_std\n", " KNN (k=7) 0.854925 0.010096 0.848728 0.009112\n", " KNN (k=10) 0.847761 0.012089 0.842864 0.011621\n", " KNN (k=5) 0.846567 0.011264 0.841796 0.009819\n", " LDA 0.845970 0.022065 0.841575 0.022885\n", "Logistic Regression 0.826866 0.023656 0.831218 0.022478\n", " Naive Bayes 0.786866 0.008142 0.786612 0.008865\n", " QDA 0.592239 0.104172 0.593148 0.117567\n", "\n", "Champion (Stage 1): KNN (k=7)\n", "F1-Score: 0.8487 ± 0.0091\n" ] } ], "source": [ "print(\"Body region (upper and lower) results of 5-FOLD CV\")\n", "print(\"\\n\")\n", "print(results_region_df[['Model', 'Accuracy_mean', 'Accuracy_std', 'F1_mean', 'F1_std']].to_string(index=False))\n", "\n", "champion_region = results_region_df.iloc[0]['Model']\n", "champion_region_f1 = results_region_df.iloc[0]['F1_mean']\n", "\n", "print(f\"\\nChampion (Stage 1): {champion_region}\")\n", "print(f\"F1-Score: {champion_region_f1:.4f} +/- {results_region_df.iloc[0]['F1_std']:.4f}\")" ] }, { "cell_type": "code", "execution_count": 11, "id": "61bb327b-61c9-4fd2-8c1a-100c63b38416", "metadata": {}, "outputs": [], "source": [ "# 14 weak link categories classification with cross validation\n", "models_14class = {\n", " 'Logistic Regression': LogisticRegression(max_iter=1000, random_state=RANDOM_STATE, class_weight='balanced'),\n", " 'Naive Bayes': GaussianNB(),\n", " 'LDA': LinearDiscriminantAnalysis(),\n", " 'KNN (k=5)': KNeighborsClassifier(n_neighbors=5),\n", " 'KNN (k=7)': KNeighborsClassifier(n_neighbors=7),\n", " 'KNN (k=10)': KNeighborsClassifier(n_neighbors=10)\n", "}\n", "results_14class = []\n", "f1_scores_14class_dict = {}\n", "\n", "for name, model in models_14class.items():\n", " try:\n", " result, f1_scores = evaluate_classification_cv(model, X_train_scaled, y_train_14, cv_strategy, name)\n", " results_14class.append(result)\n", " f1_scores_14class_dict[name] = f1_scores\n", " except Exception as e:\n", " print(f\"failed: {e}\")\n", "\n", "results_14class_df = pd.DataFrame(results_14class).sort_values('F1_mean', ascending=False)" ] }, { "cell_type": "code", "execution_count": 12, "id": "04276bda-c2e8-42d3-971d-ce2acbfceb37", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "14 weak link categories with 5 -fold cross validation\n", "\n", "\n", " Model Accuracy_mean Accuracy_std F1_mean F1_std\n", " LDA 0.576716 0.023076 0.575048 0.020004\n", "Logistic Regression 0.531343 0.022812 0.543853 0.019283\n", " KNN (k=10) 0.564179 0.011940 0.543014 0.011788\n", " KNN (k=7) 0.548060 0.016631 0.533035 0.019749\n", " KNN (k=5) 0.536119 0.016631 0.523832 0.018366\n", " Naive Bayes 0.470448 0.019123 0.484504 0.013492\n", "\n", "Champion (Single Model): LDA\n", "F1-Score: 0.5750 ± 0.0200\n" ] } ], "source": [ "print(\"14 weak link categories with 5 -fold cross validation\")\n", "print(\"\\n\")\n", "print(results_14class_df[['Model', 'Accuracy_mean', 'Accuracy_std', 'F1_mean', 'F1_std']].to_string(index=False))\n", "\n", "champion_14class = results_14class_df.iloc[0]['Model']\n", "champion_14class_f1 = results_14class_df.iloc[0]['F1_mean']\n", "\n", "print(f\"\\nChampion (Single Model): {champion_14class}\")\n", "print(f\"F1-Score: {champion_14class_f1:.4f} +/- {results_14class_df.iloc[0]['F1_std']:.4f}\")" ] }, { "cell_type": "markdown", "id": "97227c27-c686-420e-aea5-1426341a7328", "metadata": {}, "source": [ "### Improvements (as per A3 comments)" ] }, { "cell_type": "markdown", "id": "74f7108a-b588-4af6-81f5-c22f9de576da", "metadata": {}, "source": [ "### Predicting specific region and then train on specific region" ] }, { "cell_type": "code", "execution_count": 13, "id": "1168c973-a0ca-40ed-b764-f9b721be961c", "metadata": {}, "outputs": [], "source": [ "def evaluate_hierarchical_pipeline_cv(X, y_14class, y_region, cv, \n", " stage1_model_class, stage2_model_class):\n", " f1_scores = []\n", " \n", " for train_idx, test_idx in cv.split(X, y_region):\n", " # Split data\n", " X_train_fold = X[train_idx]\n", " X_test_fold = X[test_idx]\n", " y_train_14_fold = y_14class[train_idx]\n", " y_test_14_fold = y_14class[test_idx]\n", " y_train_region_fold = y_region[train_idx]\n", " \n", " # Stage 1: Train region classifier\n", " stage1 = stage1_model_class()\n", " stage1.fit(X_train_fold, y_train_region_fold)\n", " \n", " # Stage 2a: Train upper body \n", " upper_mask = y_train_region_fold == \"Upper Body\"\n", " X_train_upper = X_train_fold[upper_mask]\n", " y_train_upper = y_train_14_fold[upper_mask]\n", " \n", " stage2a = stage2_model_class()\n", " stage2a.fit(X_train_upper, y_train_upper)\n", " \n", " # Stage 2b: Train lower body \n", " lower_mask = y_train_region_fold == \"Lower Body\"\n", " X_train_lower = X_train_fold[lower_mask]\n", " y_train_lower = y_train_14_fold[lower_mask]\n", " \n", " stage2b = stage2_model_class()\n", " stage2b.fit(X_train_lower, y_train_lower)\n", " \n", " # Predict on test fold\n", " y_pred = []\n", " for i in range(len(X_test_fold)):\n", " x_sample = X_test_fold[i].reshape(1, -1)\n", " \n", " # Stage 1: Predict region\n", " region = stage1.predict(x_sample)[0]\n", " \n", " # Stage 2: Predict specific weak link\n", " if region == \"Upper Body\":\n", " weak_link = stage2a.predict(x_sample)[0]\n", " else:\n", " weak_link = stage2b.predict(x_sample)[0]\n", " \n", " y_pred.append(weak_link)\n", " \n", " # Compute F1-score\n", " f1 = f1_score(y_test_14_fold, y_pred, average='weighted', zero_division=0)\n", " f1_scores.append(f1)\n", " \n", " return np.array(f1_scores)" ] }, { "cell_type": "code", "execution_count": 14, "id": "06933c9e-0992-468c-a1a7-ea7dc42087a8", "metadata": {}, "outputs": [], "source": [ "# Use best models from previous evaluations\n", "stage1_model = lambda: KNeighborsClassifier(n_neighbors=7) # Best region classifier\n", "stage2_model = lambda: LinearDiscriminantAnalysis()\n", "\n", "pipeline_f1_scores = evaluate_hierarchical_pipeline_cv(\n", " X_train_scaled, y_train_14, y_train_region, cv_strategy,\n", " stage1_model, stage2_model\n", ")" ] }, { "cell_type": "code", "execution_count": 15, "id": "cb653084-cc96-42ce-958f-bfdcc0de4b7c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Comparison of Pipeline vs single model\n", "\n", "Single Model (LDA):\n", "F1-Score: 0.5750 ± 0.0200\n", "\n", "Hierarchical Pipeline:\n", "F1-Score: 0.5607 ± 0.0113\n", "\n", "Difference: -0.0143 (-2.49%)\n" ] } ], "source": [ "print(\"Comparison of Pipeline vs single model\")\n", "\n", "print(f\"\\nSingle Model ({champion_14class}):\")\n", "print(f\"F1-Score: {champion_14class_f1:.4f} +/- {results_14class_df.iloc[0]['F1_std']:.4f}\")\n", "\n", "print(f\"\\nHierarchical Pipeline:\")\n", "print(f\"F1-Score: {pipeline_f1_scores.mean():.4f} +/- {pipeline_f1_scores.std():.4f}\")\n", "\n", "improvement = pipeline_f1_scores.mean() - champion_14class_f1\n", "print(f\"\\nDifference: {improvement:+.4f} ({100*improvement/champion_14class_f1:+.2f}%)\")" ] }, { "cell_type": "markdown", "id": "d284b4e6-8596-4806-847b-84db5f41d1dd", "metadata": {}, "source": [ "### Statistical test" ] }, { "cell_type": "code", "execution_count": 16, "id": "47af57a8-ef5a-4ef9-a09c-c723acec2384", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Statistical Test (Corrected Resampled t-test):\n", "t-statistic: -0.661\n", "p-value: 0.5447\n", "Result: NOT statistically significant\n" ] } ], "source": [ "def corrected_resampled_ttest(scores_a, scores_b, n_train, n_test):\n", " k = len(scores_a)\n", " differences = scores_a - scores_b\n", " d_bar = differences.mean()\n", " s_squared = differences.var(ddof=1)\n", " var_corrected = (1/k + n_test/n_train) * s_squared\n", " t_stat = d_bar / np.sqrt(var_corrected)\n", " df = k - 1\n", " p_value = 2 * (1 - stats.t.cdf(abs(t_stat), df))\n", " return t_stat, p_value\n", "\n", "n_total = len(X_train_scaled)\n", "n_test_fold = n_total // N_SPLITS\n", "n_train_fold = n_total - n_test_fold\n", "\n", "champion_14class_scores = f1_scores_14class_dict[champion_14class]\n", "t_stat, p_value = corrected_resampled_ttest(pipeline_f1_scores, champion_14class_scores, n_train_fold, n_test_fold)\n", "\n", "print(f\"\\nStatistical Test (Corrected Resampled t-test):\")\n", "print(f\"t-statistic: {t_stat:.3f}\")\n", "print(f\"p-value: {p_value:.4f}\")\n", "if p_value < 0.05:\n", " print(f\" Result: Statistically SIGNIFICANT difference\")\n", "else:\n", " print(f\"Result: NOT statistically significant\")\n" ] }, { "cell_type": "markdown", "id": "281ae294-b939-41af-bdda-030e77aefe08", "metadata": {}, "source": [ "### Visualization" ] }, { "cell_type": "code", "execution_count": 17, "id": "b254832b-4cb3-4541-bd5e-4f47d42fb2ef", "metadata": {}, "outputs": [ { "data": { "image/png": "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NEeOHDFr1qwxL7/8sm1z0atXL1OyZEk/Tw9kOT0aNDBt03D0eWopAABAugUVChq6dOliJk+e7N532lxMnz7dLFy40AYUCiwARI90JADIuNQ+Yu/O/7WRiMbxY8fc2+tXLjd5/q9tarSKlSpj22IAcRtUjBw50kyaNCnsY+3atTMLFiww06ZNI6gAAABxY9bkD8yUUcNjWvfpLh2Svc6/evcxne5/NKbXAzJFUDF27FhbM3HxxReb22+/3fTs2dN97LzzzrP///7775TbSgAAgHTWulNX07Bl6zR7PdVUAHEdVPz111/2/1NPPWWKFCkS9FipUqXcfr0BAADihVKRSEcCwoupw+RcuXLZ/4cOHUrwmFNDkS9fvlieGgAAAEBWCCpq1apl/w8cOND8/vvv7vwff/zRPP/88zY1qm7duim3lQAAAADiK6i44447bI9Pq1evNg888IA7unaLFi3M5s2b3WUAAAAAxL+YgooePXqYrl272sBCk8O53a1bN9vlLAAAAID4F/Pgd++995655pprzIQJE9yG2+r5ScHEjTfemJLbCAAAACBeR9RW8EAAAQAAAGRtMaU/de7c2bz11ltm+fLlKb9FAAAAAOK/pmLy5MlmypQp9nbRokXNJZdcYi699FJz2WWXmfr165ucOX1VgAAAAADIRGK++ncaZe/du9d89dVXdnLGp2jcuLENMAYMGJByWwoAAAAgftKfVqxYYcaMGWO7ja1Zs6ad5/QEdeTIETNnzhzz7LPPpvS2AgAAAIiXmorq1avbSV3Lyv79+82kSZPMiBEjbE9Q3m5mAQAAAMS3mIKKkydPmiVLlpi5c+eaefPm2Wnr1q1BwUSFChVScjsBAAAAxFNQUbhwYXPixAl7W4FErly5TMOGDU2TJk3cqWLFiim9rQAAAADiJag4fvy4yZYtm7194YUXmt69e5sWLVrYwe8AAAAAZC0xBRW33HKLmT9/vlm3bp0dq6JXr152frFixczFF1/s1la0bNkypbcXAAAAQDwEFePHj7f/d+7c6bap0LRo0SIzY8YMO6km49SpUym9vQAAAADioUtZR6lSpUzVqlXtVKVKFVO2bNmg7mUBAAAAxL+Yair69+9v058WLlxoDh48GPQYwQQAAACQtcQUVDz33HM2vSk0gKhWrZodSfvSSy+1/wEAAADEv5iCCketWrXcAEKT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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(8, 6))\n", "\n", "models = [f'Single Model\\n({champion_14class})', 'Hierarchical\\nPipeline']\n", "means = [champion_14class_f1, pipeline_f1_scores.mean()]\n", "stds = [results_14class_df.iloc[0]['F1_std'], pipeline_f1_scores.std()]\n", "\n", "bars = ax.bar(models, means, yerr=stds, capsize=10, \n", " color=['lightcoral', 'lightblue'], edgecolor='black', linewidth=2)\n", "ax.set_ylabel('F1-Score (weighted)', fontsize=12, fontweight='bold')\n", "ax.set_title('Hierarchical Pipeline vs Single Model\\n14-Class Weak Link Classification',\n", " fontsize=14, fontweight='bold')\n", "ax.grid(axis='y', alpha=0.3)\n", "ax.set_ylim([0, 1])\n", "\n", "# Add value labels on bars\n", "for i, (bar, mean, std) in enumerate(zip(bars, means, stds)):\n", " height = bar.get_height()\n", " ax.text(bar.get_x() + bar.get_width()/2., height + std + 0.02,\n", " f'{mean:.4f}+/-{std:.4f}',\n", " ha='center', va='bottom', fontsize=11, fontweight='bold')\n", "\n", "plt.tight_layout()\n", "plt.show()\n" ] }, { "cell_type": "code", "execution_count": 18, "id": "4eb142dc-1e25-4249-9264-b2afa1d104e7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Final moodel training\n", "\n", "Training the single model (LDA) on full training set\n", "\n", "Test Set Performance (LDA):\n", "Accuracy: 0.5680\n", "F1-Score: 0.5633\n" ] } ], "source": [ "print(\"Final moodel training\")\n", "\n", "if pipeline_f1_scores.mean() > champion_14class_f1 and p_value < 0.05:\n", " print(\"\\nTraining the pipeline model on full training set\")\n", " \n", " # Train Stage 1\n", " final_stage1 = KNeighborsClassifier(n_neighbors=7)\n", " final_stage1.fit(X_train_scaled, y_train_region)\n", " \n", " # Train Stage 2a (Upper region)\n", " upper_mask_train = y_train_region == \"Upper Body\"\n", " final_stage2a = LogisticRegression(max_iter=1000, random_state=RANDOM_STATE, class_weight='balanced')\n", " final_stage2a.fit(X_train_scaled[upper_mask_train], y_train_14[upper_mask_train])\n", " \n", " # Train Stage 2b (Lower region)\n", " lower_mask_train = y_train_region == \"Lower Body\"\n", " final_stage2b = LogisticRegression(max_iter=1000, random_state=RANDOM_STATE, class_weight='balanced')\n", " final_stage2b.fit(X_train_scaled[lower_mask_train], y_train_14[lower_mask_train])\n", " \n", " # Test set evaluation\n", " y_pred_test = []\n", " for i in range(len(X_test_scaled)):\n", " x_sample = X_test_scaled[i].reshape(1, -1)\n", " region = final_stage1.predict(x_sample)[0]\n", " if region == \"Upper Body\":\n", " weak_link = final_stage2a.predict(x_sample)[0]\n", " else:\n", " weak_link = final_stage2b.predict(x_sample)[0]\n", " y_pred_test.append(weak_link)\n", " \n", " test_f1 = f1_score(y_test_14, y_pred_test, average='weighted')\n", " test_acc = accuracy_score(y_test_14, y_pred_test)\n", " \n", " print(f\"\\nTest Set Performance (Hierarchical Pipeline):\")\n", " print(f\"Accuracy: {test_acc:.4f}\")\n", " print(f\"F1-Score: {test_f1:.4f}\")\n", " \n", " # Save pipeline\n", " final_model = {\n", " 'type': 'hierarchical_pipeline',\n", " 'stage1': final_stage1,\n", " 'stage2a': final_stage2a,\n", " 'stage2b': final_stage2b,\n", " 'scaler': scaler,\n", " 'feature_columns': feature_columns,\n", " 'upper_classes': upper_body_classes,\n", " 'lower_classes': lower_body_classes\n", " }\n", " \n", "else:\n", " print(f\"\\nTraining the single model ({champion_14class}) on full training set\")\n", " \n", " # Train single model\n", " if champion_14class == 'Logistic Regression':\n", " final_model_obj = LogisticRegression(max_iter=1000, random_state=RANDOM_STATE, class_weight='balanced')\n", " elif champion_14class == 'LDA':\n", " final_model_obj = LinearDiscriminantAnalysis()\n", " elif 'KNN' in champion_14class:\n", " k = int(champion_14class.split('k=')[1].rstrip(')'))\n", " final_model_obj = KNeighborsClassifier(n_neighbors=k)\n", " else:\n", " final_model_obj = GaussianNB()\n", " \n", " final_model_obj.fit(X_train_scaled, y_train_14)\n", " \n", " # Test set evaluation\n", " y_pred_test = final_model_obj.predict(X_test_scaled)\n", " test_f1 = f1_score(y_test_14, y_pred_test, average='weighted')\n", " test_acc = accuracy_score(y_test_14, y_pred_test)\n", " \n", " print(f\"\\nTest Set Performance ({champion_14class}):\")\n", " print(f\"Accuracy: {test_acc:.4f}\")\n", " print(f\"F1-Score: {test_f1:.4f}\")\n", " \n", " final_model = {\n", " 'type': 'single_model',\n", " 'model': final_model_obj,\n", " 'scaler': scaler,\n", " 'feature_columns': feature_columns\n", " }" ] }, { "cell_type": "markdown", "id": "898490a6-59e2-4c42-bc98-943d9ac1c6c0", "metadata": {}, "source": [ "### Classification report" ] }, { "cell_type": "code", "execution_count": 19, "id": "b4c216b2-4af1-4e75-b5f4-67571a7cbc2a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Classification Report:\n", " precision recall f1-score support\n", "\n", " ExcessiveForwardLean 0.50 0.65 0.57 20\n", " ForwardHead 0.50 0.67 0.57 18\n", " LeftArmFallForward 0.60 0.60 0.60 128\n", " LeftAsymmetricalWeightShift 0.53 0.44 0.48 18\n", " LeftHeelRises 0.00 0.00 0.00 1\n", " LeftKneeMovesInward 0.00 0.00 0.00 1\n", " LeftKneeMovesOutward 0.42 0.62 0.50 8\n", " LeftShoulderElevation 0.12 0.12 0.12 8\n", " RightArmFallForward 0.45 0.41 0.43 87\n", "RightAsymmetricalWeightShift 0.33 0.33 0.33 6\n", " RightKneeMovesInward 0.25 0.14 0.18 7\n", " RightKneeMovesOutward 0.94 0.95 0.94 61\n", " RightShoulderElevation 0.47 0.45 0.46 56\n", "\n", " accuracy 0.57 419\n", " macro avg 0.39 0.42 0.40 419\n", " weighted avg 0.56 0.57 0.56 419\n", "\n" ] } ], "source": [ "print(\"\\nClassification Report:\")\n", "print(classification_report(y_test_14, y_pred_test, zero_division=0))" ] }, { "cell_type": "markdown", "id": "d8004001-9372-4c40-85e7-179f80ce6a7a", "metadata": {}, "source": [ "### Class imbalance analysis - Using Random forest\n" ] }, { "cell_type": "code", "execution_count": 20, "id": "caa895a5-ed03-43a3-97e2-b12143ae1528", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Random Forest trained with 200 trees\n", "\n", "Test Set Performance:\n", "Accuracy: 0.6181\n", "Precision: 0.6141\n", "Recall: 0.6181\n", "F1-Score: 0.6110\n", "\n", "Comparison to baselines:\n", "Baseline (LDA): F1 = 0.5750\n", "Baseline (Pipeline): F1 = 0.5473\n", "Random Forest: F1 = 0.6110\n", "Improvement vs LDA: +6.25%\n" ] } ], "source": [ "\n", "# Train Random Forest\n", "rf_model = RandomForestClassifier(\n", " n_estimators=200, # 200 decision trees\n", " max_depth=15, # Max tree depth\n", " min_samples_split=5, \n", " min_samples_leaf=2, \n", " class_weight='balanced', \n", " random_state=RANDOM_STATE,\n", " n_jobs=-1 \n", ")\n", "\n", "rf_model.fit(X_train_scaled, y_train_14)\n", "\n", "# Predict on test set\n", "y_pred_rf = rf_model.predict(X_test_scaled)\n", "\n", "# Evaluate\n", "rf_f1 = f1_score(y_test_14, y_pred_rf, average='weighted')\n", "rf_acc = accuracy_score(y_test_14, y_pred_rf)\n", "rf_precision = precision_score(y_test_14, y_pred_rf, average='weighted', zero_division=0)\n", "rf_recall = recall_score(y_test_14, y_pred_rf, average='weighted', zero_division=0)\n", "\n", "print(f\"\\nRandom Forest trained with {rf_model.n_estimators} trees\")\n", "print(f\"\\nTest Set Performance:\")\n", "print(f\"Accuracy: {rf_acc:.4f}\")\n", "print(f\"Precision: {rf_precision:.4f}\")\n", "print(f\"Recall: {rf_recall:.4f}\")\n", "print(f\"F1-Score: {rf_f1:.4f}\")\n", "\n", "print(f\"\\nComparison to baselines:\")\n", "print(f\"Baseline (LDA): F1 = 0.5750\")\n", "print(f\"Baseline (Pipeline): F1 = 0.5473\")\n", "print(f\"Random Forest: F1 = {rf_f1:.4f}\")\n", "improvement_vs_lda = ((rf_f1 - 0.5750) / 0.5750) * 100\n", "print(f\"Improvement vs LDA: {improvement_vs_lda:+.2f}%\")" ] }, { "cell_type": "markdown", "id": "0b16e409-7698-4f98-9c2e-20eec70213c4", "metadata": {}, "source": [ "### Final comparison" ] }, { "cell_type": "code", "execution_count": 21, "id": "8559eb54-5bbc-436c-ba9b-f279e5d3bdd7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", " Approach F1-Score\n", " Random Forest 0.61096\n", "Baseline - LDA (Lab 3) 0.57500\n", " Hierarchical Pipeline 0.54730\n", "Model: Random Forest\n", "F1-Score: 0.6110\n", "Improvement over baseline: +6.25%\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxYAAAJOCAYAAAAqFJGJAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAgNNJREFUeJzt3QecE9X6//EnCyy9I1VAQLEiIvaGigV7L1hAsGPvWBHs1971WhDLtResWLBcCzYUFRULIIIsvS+dnf/re+7/5DfJJtnszvb9vF+vQDaZTCYnM5PznPOcM7EgCAIDAAAAgAhyorwYAAAAAAgsAAAAAJQKeiwAAAAAREZgAQAAACAyAgsAAAAAkRFYAAAAAIiMwAIAAABAZAQWAAAAACIjsAAAAAAQGYEFgGrppJNOslgs5m6777671WS///67HXnkkda6dWurVatWvFwmTJhQZu957bXXxt9ngw02SHhOf/vntFxZ+uuvv+LvpdvHH39sldUTTzyRsK3JZs2aZYMGDbIOHTpY7dq148u99tpr7nOFX6vPXdlk2idQ84T3V+37qB4ILIBKZvbs2XbddddZnz59rE2bNpabm2sNGza0zTff3E4++WR75513LAiCit5MVBHLly+3/fff315++WWbO3euFRQUlGg9qtTWqVMnoTKgYKUiTJkyxYYOHWo77LCDrbfeem67mjRpYltttZWdffbZ9tlnn1l1o2Ne5a0K2MyZM23dunVWmVTHoOHbb79N2N91u/jiiyt6s4BKrXZFbwCA//PAAw/YRRddZCtXrkwoljVr1tgvv/zibo8//rhNnTq12vx4l5Vjjz3WtthiC3e/Y8eOVlN98803Nnny5PjfJ554ovXo0cNVktTyna2nnnrK1q5dm/DYG2+8YQsWLLAWLVpYeVBQNHz4cLvhhhsKVayXLl1qP/zwg7vdf//9VTL43nbbbe3WW29N+dzff/9tn3/+efzvAw880HbddVfLyclx+3ndunUTXlte30lx7LPPPtaoUSN3v2nTplbZjRw5stBjzzzzjN18882uxwhAYRwZQCXxr3/9yy677LL430pZOeCAA6x3796uEvjnn3/au+++63o0kN6SJUtc63W/fv3craabNm1aocqS9q3iGjVqVKHHVq9ebf/5z39cL0F50Ps8+OCD8b/r1atnhx12mG222WYu6Jk0aZKNGTPGFi9ebFWReiV1y+Z7vOuuu6xbt24Jj1X21vSddtrJ3aqCVatW2XPPPZey5077mAK7yiw/P9/q16/vAk+gXAUAKtzPP/8c1KpVS02s7ta6devgu+++K7Tc6tWrg3//+9/B7NmzEx6fMWNGcPHFFwdbbLFF0LBhw6Bu3bpB586dg+OPPz746quvCq1n2LBh8ffScjNnzgwGDBgQtGzZMmjcuHFw4IEHBr/99ptbdvz48cG+++4bNGrUKGjWrFlw5JFHBn///XfC+j766KP4+nSbPHlycOeddwabbrqp25b27dsHF1xwQbBkyZKE182fPz+45JJLgj333NNth96jTp067vPvtddewZNPPhkUFBRkfK8//vgjuPXWW4NNNtkkyM3NDQ455BC33MCBA+PL9OnTJ2EdP/74oysbvadeU69evaBjx47BHnvsEQwdOtSVZ7KXXnop2H///YM2bdq4bVRZ7LjjjsFtt90W5OfnF1o+vI0jR44M3nvvvWD33Xd3348+Z79+/YKJEycGxfXBBx8ERxxxRNChQwe37fq+evXqFVxzzTWuPL2pU6cmbEPyTZ89W19//XXCa7t37x6/37t375SvSd7HwvS3f07LZWPMmDGFtmHKlCmFltN3cfPNN6ctB+0/nl5/3nnnBbvsskuw/vrrBw0aNHBlqv1Vx8Drr7+eclv0fWqf0vFSu3Ztty9oe44++ujg/vvvT1j2r7/+Ck477bRgww03dPuZPx522mknd0z88ssvCesNb6uX6Xv0yyUfF/rcYTqOXnzxxeCggw5y76/P2bx582CrrbZy27Fq1ar4so899lhw1FFHuWPKf0btZz179gwuvfTSYO7cufFlk9831U2fq6h9QhYsWBAMHz7c7VNNmjRxx5m29bDDDnPHT6rvIfw+K1euDK6//vpgo402cp9Px8hFF13kHi+uF154Ib7eWCzm1un/1vGXSvI5559//nGP6Xym713H6bPPPlvodVrWv07L//rrr8Hhhx/uvp/69esHO++8c/D+++8Xel3ycfTpp58Gffv2dWWnxxYuXBhf9ttvvw1OPPHEYIMNNnDbovPQ5ptvHlx44YXB9OnTC61b3+vgwYPdNrdt29aVp7alW7duwUknneTOoakUZz9L3kc++eQT91ug82NR50j9xpxzzjluH9Vxq2NLvzeXXXZZwv7p6THtC5tttplbXvuWzuXbbrttcNZZZwXjxo1L+T4oPgILoBI444wzEk6yL7/8ctav1clYJ+50P+o5OTnB7bffnvCa8A98ixYt3I9N8uvWW2+94NVXX3U/QsnP6Ud2xYoVaSsX+nFItS06iYdf99NPPxVZKRk0aFDCtie/16677prwd1GBhYI4/bBkes933nknvvzatWtdhTHT8vpBU3AWFn5eFQNVTpJfp0rbnDlzsv6uVQnItB2qSPkf4tIMLM4888z461QBf+211xLWlaqSUdqBhSoZ4fdURSkbmQKLN954o8j9TxXddJ8r1U2VFU8NADqOMi3/4IMPlnlgoWPugAMOyLiOcCVUFfui9jNVmlO9b0kDCwVY2rcyrUdBYFhyeSlATPU6VaiLa7/99ou/XkHg3XffHf9bleV58+YVek34nKNAU+WUanuSz8fhwMIHVanO4wp20h1HauQIN06Fv1M18uj16cq1adOmCceFqBKe6btQGSQHO8Xdz8KP77333im3MdU5UuefTOdwlXs4YNd2bbzxxhm3SwEJSgepUEAlMHbs2Pj95s2b26GHHprV6xYtWmSHH364LVy40P2trm/NGqNUoGeffdalTygvXSkSSqnSgPBkypFfsWKFnXfeea77/NFHH3WPa6Cv0kyUE60UFK3rpZdecs/98ccfbiYajWNI5cMPP7RDDjnEevbs6QabK89f9L9Svq655hr3t7rpN910U9tuu+2sbdu21qxZMze+5Pvvv3f5+/rtUerOGWec4ZZJ5dNPP3XpIwcddJBbvqg0H6X0aECzrL/++nbCCSe4wfEzZsywiRMn2pdffpmw/I033mgvvPBC/G8NGFau+K+//movvviie0z3jz/+ePe5U1Fu/CabbOK+K83E9Pbbb7vH58+fb4899pgbiJzNGIc77rgj/rc+s74fDeTVZ9KYg3/++ce9x88//+xy7JVzrwGozz//fPx1Pg8/2xz35JSQo48+2vbbbz/3XWn/Ew0ovv32262saB8Oz+ak/Ur7c1TKk9eA72222cYNAtdxo2NA39dHH33kltFECpo0wY9HCadi7bXXXm7GMb1m+vTpbtC4jiXPD5j3x7WOzZYtW7rvTGlb2nezoe9M42Qeeuih+GNXXHGFW2c2NG7rrbfeiv+tMUfad7QPaF958803E5bX7GE6npRqpf1Ix5T2Le1H2md1//rr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UW+ZPqO2WZ9L+6J62fT967vTPqPvVJ/H72/aP4477jjXG6Eek5KkN+rYOO2009z7irZVrf+bbLKJO37CPTvqqZk8ebJLpfS0D2p/8+OOiqLemfC+rzRK9RxqO9599934963l1KuRip7XmBztqzqfff755+7xP/74w1577TXXywJUiDIJVwCgEvZYTJ48Od5yeskll6RsCSxuj8X++++f8PritBZm6rGQRYsWBW+//Xbw0EMPBbfffntw6623JrR07rnnnvFlzz333PjjN910U6F1LViwwN38fb9skyZNCrXGq1dnypQpWX+OffbZJ76+7bbbzj122223xR+bMWNGQgv8+PHjXWts7dq1C22zeivCreDXXHNNwnv961//ij+nHgrfy1GSMpPwd3fBBRcELVq0iP89YMCAQr0iFdVjcf7558efmzBhQspeouRjoVOnTsGpp54a/7t58+bBV199FRRHeB/V61Weuun4adu2bcpW/eTX6aaeiWQqb/+8eg/Dx87MmTODWrVqxZ8fPXq0e3zcuHEJ673qqqvir1m8eHHCvpNtj8Xhhx8efzwnJyf473//m/A6HR/Tp0+P/52pN6KoZebNm5fwuY4++uiE1+lv/5yW0/KpzlM6zlavXu2e0/+tW7eOP3fhhRdm8c0CZYMeCwA1gm/pVMu1crmvu+66rF6n1u5UecvHHHOMG6BZFtRyqvzyu+++O2FWpWThGajUK3DPPfe4+1dddZUbUK0W14033tjlYet5tfiKWlfVOvzzzz/bkiVLXI64Wj/VmtyjRw+X963HsqWxEe+9956773sq/FgK5ah36NAhYfyEnlPufDiP3A/c/u233xLy6keMGOFuqai1XK3m+pwlKbNkd955Z8JAX7VK+16UijZkyJD4fX2nYeFxLWF///23y9cX5fHrO+rVq1eJt0Hvc8kll6R8Ti3nGp+QilrxNVYmmW9lF32PmXoP1dOlaZz9WAdPM7F56o1Rb5mmdS4Otf6HP0fyJAIa36PesNKgyQvUY+cNHDgw4Xn97adt1nJafr/99iu0nlNOOSU+A5f+1/E6Z86cjPsDUB4ILADUCEoFUYqPKtdKG8p2RpoHH3wwZWqQZqNSYKFKc5jSPJSiE4UChPBUlemEB+5qYK4G1d57773ucQ0e181TepBm7lFAIf/5z39cGooGlWvWqtGjR8eXVWVa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iIzAAgAAAEBkBBYAAAAAImOMBQAAlcS6detszZo1Vh1zvvW5NPaLcV+UE/tSdLm5uZXyWCKwAACkFZx0ki2fPdtyNSsU5VSm887PmjXLzeZSXT+fggvNrc/1hygn9qXoFFR06dLFBRiVCYEFACC9Pn1s9Zw5Zq1bU0plyAcVrVu3tgYNGlS7yrcCi7Vr11rt2rWr3WcrTZQTZVScCwXn5eVZp06dKtUxRWABAEAFpz/5oKJly5bV8rugwkw5sS+VLl2nSsGFAvY6depYZVH5krMAAKhB/JgK9VQAQDZ8CpQaJioTAgsAQHr//GM5M2a4/1G2KlM6A4DKLVZJzxekQgEA0opddZU1ycuzWLt2ZqNGUVIAgLTosQAAAOXur7/+cq2uEyZMyPo1TzzxhDVr1qzCt6OiaDtfe+21ct/u1atX24YbbmhffPFFmb8XzIYOHWrnnHNOlSwKAgsAAFAi06dPt8GDB1v79u1dznfnzp3tvPPOs/nz5xf52o4dO7pZbbbYYous3++YY46x33//vdy/rd13391V4v2tTZs2dtRRR9m0adOsopSk/ErqoYceclOb7rTTTimDnGQff/xxvKw0LWrTpk2tV69edumll7ptTuXZZ5+1WrVq2VlnnWXlQddU0XtpwoRGjRrZEUccYbNnz874mpNOOilhP9CtX79+KT93LOn2zTffJASEybcvv/wyvp6LL77YRo0aZVOmTLGqhsACAAAUmyo922yzjf3xxx+uUvjnn3+6CujYsWNtxx13tAULFmRsAVclsm3btm4K2mzVr1/fzZ5VEU499VRXKdZMPKNHj3ZB1QknnGAVpSTlV9IZve677z47+eSTi/3a3377zZWXKtWXXXaZffDBBy4Q+umnnwot+9hjj7nAQ/uSKv1l7YILLrA33njDXnzxRfvkk0/cdh5++OFFvk6BhPYDf9P2ejvttFPCc7qdcsopLijTsRKmsggv17t37/hzrVq1sn333dcefPBBq2oILAAAQLGptVe9FO+995716dPHzae/3377uQrTP//8Y1deeWV8WVWsbrjhBhs4cKA1adLETjvttJSpPK+//rpttNFGVq9ePdtjjz1cq62W8RcOTE6Fuvbaa22rrbayp556yjbYYAPXMn7ssce6C/F5Y8aMsV122cW9Tq3TBx54oE2ePLnYn1ezdqki365dO9thhx3s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HaxAg23bt6eUAAAZEVgAANIKrr/elsyZY/Vatzbm8gEAZEIqFAAAAIDICCwAAAAAREZgAQAAACAyxlgAANK7/XZrlJdn1q6d2SWXUFIAgLQILAAAacUmTrTaeXkWmz+fUgIAZEQqFAAAAIDICCwAAAAAREZgAQAAACAyAgsAAAAAkRFYAAAAAIiMwAIAAABAZAQWAAAAACIjsAAAAAAQGRfIAwCkFeyzj62aNcty27a1GOUEAMiAwAIAkF7//rZizhxr3Lo1pQQAyIhUKAAAAACREVgAAAAAiIzAAgAAAEBkjLEAAKQVGzTImuXlWaxdO7NRoygpAEBa9FgAAAAAiIzAAgAAAACBBQAAAICKR48FAAAAgMgILAAAAABERmABAAAAIDICCwAAAACREVgAAAAAiIzAAgAAAEBkXHkbAJBWcOGFtmz2bMtt08ZilBMAIAMCCwBAej162No2bcxat6aUAAAZkQoFAAAAIDICCwAAAACREVgAANL76Ser/eOP7n8AADJhjAUAIK3YHXdYo7w8i7VrZzZqFCUFAEiLHgsAAAAAkRFYAAAAAIiMwAIAAABAZAQWAAAAACIjsAAAAAAQGYEFAAAAgMgILACgCM8995xtvfXWVr9+fWvRooUdeeSRNnny5IyvOemkkywWixW6rb/++imXnzFjhlu3X27MmDHx53bfffeU69Jtgw02iC931113Wc+ePa1Zs2ZWt25d915HHXWU/ajrUAAAUBMCiyeeeML9EFZW1157rW211VYZl9EP//nnn19q76lKyaGHHlri13/88ceu0rFo0SIrTVrna6+95u7/9ddf7u8JEyaU6nsAlcljjz1m/fv3t++//97atWtn69ats5dfftl22mknmzVrVpGv79Chg22//fbxmwKUZAUFBTZgwABbuHBhynVsttlmCevQrXbt/12GSNvkffLJJzZ37lzr2rWrdevWzfLy8uyll16yPfbYw/Lz8yOVAwAAFRpYpKscJ1d6jznmGPv999+tKnvllVfsuuuuK7f382Xob23atLEjjjjCpkyZ4p5XpUeViqZNm5bZNnTs2NG9xxZbbFFm7wFUpNWrV9vQoUPdfX98/frrr9a4cWObM2eO3XjjjUWu45RTTrEvv/wyfnv99dcLLXPrrbfaRx99ZEcffXTKdTzwwAMJ67j//vtt7dq17rlzzjknvtyzzz5rM2fOtO+++85++eUXu+KKK9zjCxYssEmTJpW4HAAAqDI9FkovaN26daR1rFmzpsQVh9KgFAZVNsrbb7/95ioSL774ov3888920EEHuRbV3Nxca9u2rQs6ykqtWrXce/iWU6C6+eabb2zevHnxwELat29vO+ywg7sfTldKR+lJSktSIH7ssccWSqFSEHD11Ve7Y/fMM8/MarsUiEinTp0SgpF69erZq6++6rZPvRw+8FlvvfWse/fuVhLByJG26Mkn3f8AAFTJVKjRo0e7lAH9UKpbf/jw4fEWOlGF+cEHH7SDDz7YGjZsaDfccIOrUJ988snWpUsXF6xsvPHGdvfdd6fsRdHyqiBoGZ/frHQHBQha3zbbbGNfffVVwmufeuopl8+sXgBVEJYuXZo2FWrVqlV22WWXucqEKhUbbrihS6mQbLYzWwrIlAqx22672TXXXONaKf/8889CvUK+jJXGtNFGG7ly3XfffW369OnFKvew5FQo/55jx4515degQQPXc6Lgp6TvAVSk8PERbvxQD6H8/fffGV+vAF/Hp8Y66Bzz/PPP27bbbmv//POPe3758uV23HHHWatWrezxxx/Papt03Cm9SXTOSQ7sZ8+e7c5d6llRipXOM+oNqYiGDwBAzVIpAotkn376qcs3Pu+881xF+eGHH3YVYwUDyWMfDjvsMPvpp59s8ODB7kdUP+BqvdfrVNFWKsALL7yQ8DpVfFXZff/99+3NN9+0ZcuWWZ8+fdyPvdIUfvjhB7v00kvd+jy1MqpSruV1Uy7zzTffnPYzaPuVlnDPPfe4H3h9hkaNGrnnst3O4lKQkqkXRpUYleGTTz5pn3/+uQs6FCAVt9yLcuWVV9rtt99u3377rav06LuJ8h4K0pYsWZJwAypSEARFLnPxxRfb/Pnz3fGv88dDDz3kHtc4ipH/v/X/8ssvd2mgo0aNcsFFNu68807XOKGGglNPPbXQ82eccYY7x0ybNs2lmU6dOtX9H24IAQCgLJR5Dosq4b5C7elHMRO1YCuveeDAge5vtWpr/IIq+8OGDYsvp5a+QYMGFXqtp5a6cePGuQp7OF1APRKPPvqoa02Uf//7327Ao9Ie1GMh6mEI0w+1KsC+1e/EE090AUqqCrEqCnpPBS577bVX/DN4derUyWo7i0NjHW677TY3UFQ9IF988UXKdLH77rvPDfwUVWY23XRT+/rrr2277bbLutyLojJRoCZa3wEHHGArV650PRQleY+bbropobyA8qIeR09jKpLvKxUpneSxR8cff7yr9Id7OtSIIWogST436jH1rqqBwlNQ4ns2tK7kc6unnkNtmxos1EuiNEmt57TTTivW5wcAoFL1WGg2EqXKhG+q1GeiH9sRI0a4H01/U8ucKs9qdfeUbpNMgxp79+7tcor1OgUNyekKPXr0iAcVom3q1atXPKhIRSlQ4VQCpTeEKxphWp/GH/jKdSrZbGc21POhQElpXZr1RbPVhD9bmHoPlIbhbbLJJq7VUy2qxSn3omy55Zbx+37GGl9WJXkPteouXrw4fktO3wLKio6Xli1buvs6tkRjmjSAWvr16xc/lnRT4O4pUFaDRXjKWi88Rax6P3Ts6qYA3NP9FStWJGyP0j/Vw6pj/Nxzz014Tr0jStcM91i+/fbb8fslnhXq2Wet/jPPuP8BAKjQHgtVepNb/5VrnIl+ONVCffjhhxd6Tq3e4XWH6Ydb6QdKw9lxxx1dIKBBjsljJZJf51OIMlEvQ3KLYDhVqjjry3Y7s6HUoiZNmrj876g51NmWe3HKyg8e92VVkvfQGBXdgPKmCrwGQJ9++ukusFAPmyrwSitS6pKfMcqPI/IDvUUB9PXXX+9eo+DBD9rWhAeaKcqPSwrT32qMkXfeeSceuIgChnvvvTfe+xGeZla0TUoz1LZqqtlwEK5zQ6pjLhux996zunl5FtP7HX98idYBAKgZKuV0PhrYqx/q5ICkKBo3oMHCQ4YMiT9W1EWsfAu7elE0JWOmXotsqUdEFWmNw/CpUKWxnakojSrba4BogLTGPSjtSVTGGmehdKgo5V4c5fEeQGlS+pAaI5RqqN49BcCqpGuMlXoKM6UEKjhQaqTGBWmf1/ngqquuKtEseE8//bS7boaC9YsuuqjQ8zoPaMyUUht1PlHqo1K51HOqlKjOnTsX+z0BAKjygYUGMx944IEuR1hXuM3JyXEpNBMnTnQtgOlotiMNTH733XddhVtpARo3ofuZaDYotUoqn1n5/GoJ1MWwVGlQj0JxKc1BYwg0aFmDt3UlXA2kVDqQxlCUdDujUk+C5rzXNikt6uyzz3bTUvpAo6TlXhzl8R5AaVMPgW7FGcytyry/jkS2NLtcuoHhOp+EJ0JIFViEx2MAAFDeKuWsUJoGVYO+33vvPZfjrMqvZkIpqsVNKQBqSdQMKBqgrJSFcK9ApnQHvZdaEffff3/X46DWSI2TKCnlQqvirPdX7rXGEfgc55JuZ1Sa/lVT4GrQ+8477+zGN2hgZ9RyL47yeA8AAACUv1iQzbyJqPI0o5XmvPfXtajKlFaia4kM+2Sy1WvcpKI3p3IKAmu0YqEtq99cA12splm9It+G7bxBfFxP8rgqUbqiehHVoKCeM6QWDBxoq/LyrG67dhYbNYpiSoF9qWiUUXYoJ8qoNKiu17x5czfWTuNwyxO/pgAAAAAiI7AAAAAAEBmBRQ1x0kknVYs0KAAAAFROBBYAAAAAqud0swCAyiHYYgtb27Kl5WrwdkVvDACgUiOwAACkd9FFtmzOHGtQgov6AQBqFlKhAAAAAERGYAEAAAAgMgILAAAAAJExxgIAkFbsqqusycyZFmvf3uzGGykpAEBaBBYAgPT++cdy8vLMgoBSAgBkRCoUAAAAgMgILAAAAABERmABAAAAIDICCwAAAACREVgAAAAAiIzAAgAAAEBkBBYAAAAAIiOwAAAAABAZF8gDAKQVHHOMrZg923LbtLEY5QQAyIDAAgCQXr9+tmrOHLPWrSklAEBGpEIBAAAAiIzAAgAAAEBkBBYAgPQWLLDY/PnufwAAMmGMBQAgrdhFF1nTvDyLtWtnNmoUJQUASIseCwAAAACREVgAAAAAiIzAAgAAAEBkBBYAAAAAIiOwAAAAABAZgQUAAACAyAgsAAAAAERGYAEAAAAgMgILAAAAAJFx5W0AQFrB9dfbktmzrVWbNhajnAAAGRBYAADS69DBCurUMWvdmlICAGREKhQAAACAyAgsAAAAAERGKhQAIL1PPrHc2bPN2rQx22MPSgoAkBaBBQAgrdgTT1iDvDyLtWtHYAEAyIhUKAAAAACREVgAAAAAiIzAAgAAAEBkBBYAAAAAIiOwAAAAABAZgQUAAACAyAgsAAAAAERGYAEAAAAgMi6QBwBIr3lzC1audP8DAJAJgQUAIK3gjjts8Zw5Vrd1a4tRTgCADEiFAgAAABAZgQUAAACAyAgsAAAAAETGGAtUWatX5ltO7VoVvRmVUxDY2tUrbbXlm8VqXmb86hXLK3oTqo8HHrCGeXlm7dqZnX12RW8NAKASI7BAlXVzv54WBEFFb0allJOTY71797bx48dbQUFBRW8OqrDYN99Ynbw8iymwAAAgA1KhAAAAAERGjwWqrOnTp1uzZs0qejMqJfVSzJ8/31q2bOl6L2qyBg0aVPQmAABQIxBYoMpq2LChuyF1YJGfn+/Kp6YHFgAAoHxQ4wAAAAAQGYEFAAAAgMgILAAAAABERmABAAAAIDICCwAAAACRMSsUACCtYNddbfWsWZbbtq3VvGu4AwCKg8ACAJDe4MG2fM4ca9S6NaUEAMiIVCgAAAAAkRFYAAAAAIiMwAIAAABAZIyxAACkFTvzTGual2exdu3MHn6YkgIApEWPBQAgvZUrLbZypfsfAIBMCCwAAAAAREZgAQAAACAyAgsAAAAAkRFYAAAAAIiMwAIAAABAZAQWAAAAACIjsAAAAAAQGYEFAAAAgMi48jYAIK1gyBDLnzXLctu2tRjlBADIgMACAJDettvamjlzzFq3ppQAABmRCgUAAAAgMgILAAAAAAQWAIAy9OefVuuPP9z/AABkwhgLAEBasRtusMZ5eRZr185s1ChKCgCQFoEFqqz8/HyrU6dORW9GpVRQUGArV650ZZSTQ8YjZVRyuWvXWsG6dRYoyCi1PRQAUB0RWKDK6tixowWBqjtIpmCid+/eNn78eBdkoDDKKDtPmFnXpk1th7ZtGZQHAMiIpkwAAAAAkdFjgSpr6JgfrF6jJhW9GZVTEFiT1UvswNwmZjESWCijklm9YrnZXpuV6q4JAKi+CCxQZeXWa2i59RtW9GZUTkFgtW31/8qHwIIyAgCgHJAKBQAAACAyAgsAAAAAkRFYAAAAAIiMwAIAAABAZAzeBgCkNSQWs627dbO377zTuBwlACATeiwAAGmtjMVsVa1aZvXrU0oAgIwILAAAAABERmABAAAAIDICCwBAWocEge07f77VfvNNSgkAkBGBBQAgY2CxD4EFACALBBYAAAAAIiOwAAAAABAZgQUAAACAyAgsAAAAAERGYAEAAAAgMgILAAAAAJERWAAAAACIjMACAAAAQGQEFgCAtCbHYjatXj0r6NKFUgIAZERgAQBI64ZYzO7p1MlWX3YZpQQAyIjAAgAAAEBkBBYAAAAAIiOwAAAAABAZgQUAIK0rg8DO/ftvy73lFkoJAJARgQUAIK1uQWCdV660nKlTKSUAQEYEFgAAAAAiI7AAAAAAEBmBBQAAAIDICCwAAAAAREZgAQAAACAyAgsAAAAAkRFYAAAAAIiMwAIAAABAZAQWAIC0Rsdi9l7Llrb2wAMpJQBARgQWAICMgcW7BBYAgCwQWAAAAACIjMACAAAAQGQEFgCAtOoFgdVdt85sxQpKCQCQEYEFACCtB4LAbpw82epdcAGlBADIiMACAAAAQGQEFgAAAAAiI7AAAAAAEBmBBQAAAIDICCwAAAAAREZgAQAAACAyAgsAAAAAkRFYAAAAAIiMwAIAAABAZLWjrwIAUF3dEItZz44drdcll1idit4YAEClRmABAEhrcixmzerXt6BbN0oJAJARqVAAAAAAIiOwAAAAABAZgQUAIK1tgsB6Ll1qOePHU0oAgIwILAAAaQ0JAhuQl2e5jzwSqZSee+4523rrra1+/frWokULO/LII23y5MkZX3PSSSdZLBYrdFt//fXjy1x77bUpl/G3v/76yy338ccfp13mgw8+iLytAIAqGlhssMEGdtddd8X/1g/Da6+9VqHbVJk89thjts8++5Ta+vwP8qJFi6w0/fLLL66CkJ+fX6rrBVD5zkn9+/e377//3tq1a2fr1q2zl19+2XbaaSebNWtWka/v0KGDbb/99vGbKv2eziHh53RTMCB169a15s2bJ6wrNze30PJNmzYttW0FgJqsWIFFcutRy5YtrV+/fvbjjz9aRcrLy7P99tvPKppaxlQuEyZMSPn8E088ES+7WrVquR88/aiNGDHCFi9enPI1N910k1v21ltvzWobVq5caVdffbUNGzYsoUVvq622svJ2+umnW7du3Vyr33rrrWeHHHKITZo0Kf78ZpttZjvssIPdcccd5b5tAMrH6tWrbejQoe7+EUccYVOmTLFff/3VGjdubHPmzLEbb7yxyHWccsop9uWXX8Zvr7/+etrnPvroI3fOlAEDBiQEDaJgIby8bttuu22pbSsA1GTF7rFQIKGKvG5jx4612rVr24EHHmgVqW3btq5lqipo0qSJK7sZM2bYF198Yaeddpo9+eSTruI/c+bMQss//vjjdumll7r/s/HSSy+599h5552tovXu3dtGjhzpfpjfffddC4LA9aSoBdAbNGiQPfjgg7Z27doK3VYAZeObb76xefPmxSvr0r59e9eoIGPGjClyHeqh1jm+Y8eOduyxx2ZMSxo1apTNnTvXNeBcdNFFhZ7XebZZs2bupm3QObM0txUAarJiBxY6uasir5sqw2rdmT59ujuRe5dddpl1797dGjRoYF27dnUt6GvWrIk//8MPP9gee+zhWoFUCVYF9Ntvv40//9lnn9muu+7qWrr1Q3LuuedmTJcJp0L5XoNXXnnFvYe2oWfPnjZu3LiE1xT3PUqLtk1lp1azTTfd1E4++WQXYCxbtswFEGGffPKJrVixwvVoLFmyxC1XFOUGH3TQQcXapqeeesq22WYb931o24477jjXOpfs888/ty233NLq1avnfmgnTpyYcb0KmnbbbTeXuqbUheuvv97tKz7nWfbee29bsGCB+6wAqh8d817r1q3j99u0aeP+//vvvzO+XqlLOl8q5UkNMs8//7zrYfjnn38KLVtQUBDvAdV5cOONNy60jLahc+fOrnf3q6++sqOOOso1bpTGtgJATRdpjIUqw08//bRtuOGGLi3KUwVVaT/Kob/77rvtkUcesTvvvDP+/PHHH+9+JNQ6NH78eBec1Knzv2u6qiVKvSJqLVKKlX5EFAScffbZxdq2K6+80i6++GKXlqQgRzmzvlW8tN6jtOgHTGWi7v1wa77P9VXZ6H/9XRR9DgUJxaGg77rrrnMBnwI0VfyV9pbskksusdtvv919b0pt0g93OGDMREGbei+6dOniArlwpUEB6qeffpr2tatWrXKBVfgGoGpTD2ZRdA6fP3++6/XUefuhhx5yjy9cuNCdT5KNHj3a/vjjj/j5KmzzzTe3P//80wUnOtf9/vvv8YBB57Wo2woAKEFg8eabb1qjRo3cTQGEKsOqmOfk/N+qrrrqKjfQTS3Vqnzqx+GFF16IP69Wn7322ss22WQT22ijjVyLkXoV/JgCVbLPP/9895zWc88997h0IbUwZUvvecABB7igYvjw4TZt2jT3o1Ka71GaVBZLly51P6KiyrO66E844QT3t/5XGSqYS0eDqzVWQ133xTF48GA3RkW9S+qJUFm88847hd5L4zbUw9CjRw+XbjB79mx79dVXM677gQceiO8vWuf777/vgokwba++n3T0fSlP2t/CgQmAyi18vIZ7Qv39Tp06pX3tFlts4c4dns7bXqreg9tuu839r/PYLrvskvCcGkM05svT+/pl/LqibCsAoASBhdKL1Aug29dff2377ruvq5SGK4YKNJTjr7Qa/Sgo0Aj/CFx44YVuwJ2Ci5tvvjkhX1YtSert8JVR3fQe6uKeOnVq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rtvWU+uLulk7dOhgDRo0sB49etizzz6bsI7dd9/dtdSot0Ndu1rftddem7DMH3/8Ybvttpvr0t1ss80S3sP76aefbM8994yfUE877TRbtmxZoVZ9tcKoBadZs2Y2YsQIW7t2rV1yySXuvddff30bOXJk1p87fKtVq5Z77pNPPrHtttvOLaOuZbUI6T3Cn/fss8+2888/31q1amX77ruve9y3QDVq1Mht34knnhg/6ctLL73kys9/PpV1fn6+Kyt1nY8ePTree/Lxxx9n+Q0CAErL9OnT4/dbt24dv+97Df7++++Ur9NvXBAE7v4rr7xiBQUF7vfuq6++cr8L+r+ybCuA8lEjA4swVYy/+OILN6DMU1pU79697a233nLPq7KvCvPXX3+d8FpVjBs2bOhOnv/6179chd8HDzrBHn744W69ev6hhx6yyy67LOH1qmCrgq6WHrXCvPjii/bBBx+4CnzYhx9+aDNnzrT//ve/dscdd7jelQMPPNC9Tus+44wz7PTTT7cZM2aUqAzUfb3//vu7PFl1Vz/44IMuh/X6668v9Hn1eT7//HP3eRYtWuSCol69etm3337rWoqUI3v00Ue75dUjogBt8ODBrqtagYPKRD9EF198sVsu3Iui/NhUVq1a5XJ3wzcAQNnyQUM64cYnNRpp8LTSa9XgpXEP+i2pLNsKoHz8Xz9lDfLmm2+6FnadFFVpzcnJsfvuuy/+vHoqVPH1zjnnHHv33XfdoDK16ntbbrllPIVqo402cusYO3as7b333i5AmDRpknudumlFvQ7h/NL//Oc/Loh58sknXYAiWsdBBx1kt9xyS7wFRifpe+65x22nclAVxCxfvtyuuOIK9/zll19uN998s+t6TjeDRvhze9oWBTMPPPCA673Re6vnYJNNNnGBjAKha665xr2v/4x6b0+Bh4KKcE7r448/7talAX3qeVEZK5jo3Lmze169F556MVT+qWYHCbvpppts+PDhGZcBUEa+CSx3yWKzJoHZ/53+UI2E05Q0TiH5fqdOnVK+Tr+VntKg9PvRtGlT6969u3355Zf2119/VZptBVA+amSPhQaZTZgwwbX2Dxw40AYNGhTP1RS1tFx33XWuEqxKvSrjChCSu1gVWIQphcif3NRCrxOgDypkxx13TFhey/Ts2TMeVMjOO+/sejt+++23+GObb755vHIvCjjC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f/75YNKkScG4ceOC7bbbLujdu3fCejp37hyMGDEiYT3Lli0Lasp+NHDgQLefhJdZsGBBwjJVaT8qq3IKP6eb1h2LxYLJkyfXiH1p1apVwTbbbBPsv//+wWeffRZMnTo1+Pjjj4MJEyYUa51nnHFG0LFjx2Ds2LHBt99+G+ywww7BTjvtFNSUMtp3333d/jZx4kT3uJbt1KlTwn7Sp08f917h/Wjx4sVBZVUW5TRs2LBg8803TyiDuXPnJqynpu9Lc+bMSSif999/P1D19qOPPqox+9L8+fMTPpuOq1q1arljrLzrSgQWKFeq0J511lnxv9etWxe0b98+uOmmm1Iur4NCB0I6BQUFQdu2bYNbb701oSJdt27d4Nlnn3V///LLL+4k880338SXeeedd1xl6J9//gmqexml8vXXX7symTZtWkJl8M477wyqgrIoIwUWhxxySNrnq9p+VF77kspszz33THisOu9LDz74YNC1a9dg9erVJV6nzlF16tQJXnzxxfgyv/76q9u/FPjXhDJKpsqhPv8nn3ySUBk877zzgqqiLMpJgYUqeumwLxWmfaZbt26uflBT9qVkOv82btw4HqiXZ12JVCiUm9WrV9v48eNd91v4cvP6e9y4cWlfp264zp07W8eOHe2QQw6xn3/+Of7c1KlTbdasWQnrbNq0qes29OvU/+rS22abbeLLaHm991dffWXVvYxSWbx4sesmVbmEKV1F3em9evVyqS1r1661yqYsy+jjjz92aRkbb7yxnXnmmTZ//vz4c1VpPyqvfUnpFm+99ZbrLk9WXfel119/3XbccUeXZtGmTRvbYost7MYbb7R169ZlvU49rxTF8DJKb+nUqVPG76a6lFG6c5K0aNEi4fFnnnnGWrVq5dZx+eWX2/Lly60yKstyUrqKUli7du3q0lT+/vvv+HPsS4W/h6efftoGDx7sfuNqyr6U7LHHHrNjjz3WpT+Xd12pdtZLAhHNmzfPnTB1Ag3T35MmTUr5GlXwHn/8cdtyyy3dD89tt91mO+20k6vsrL/++u5A8etIXqd/Tv+rshhWu3Zt9wPml6nOZZRM+bgac9G/f3+XR+mde+65tvXWW7ty+eKLL9yJNy8vz+644w6rCWWk8RSHH364denSxSZPnmxXXHGF7bfffu5kW6tWrSq1H5XXvjRq1CiXI69yC6vO+9KUKVPsww8/dBU85Xn/+eefNmTIEBco6IJU2axT+0tubm6hwD583qrOZZSsoKDAzj//fNt5551dpc877rjjXJCrSvWPP/7ozlsah/HKK69YZVNW5aSKn8Y+6djUMTR8+HDbddddbeLEie7YY19K9Nprr7kxGRozF1bd96UwjcXQ/qHgwivPuhKBBSo1tebo5qmSs+mmm9rDDz9s1113XYVuW1UsI/1gHX300W4Q14MPPpjw3IUXXhi/r4qlKj6nn366G2RZ1a9ynk0ZqXXH00B3lUG3bt1cL0bfvn2tJiju8aYgRJWi5AHe1XlfUiVYP77//ve/XcDZu3dv++eff1yvTKpKc01U3DJSi70qQp999lnC46eddlrCMalBpzoWFfjr2KwJ5aTGjfCxpEBDFeQXXnghZU9hTd+XVJlWmSmAqEn7UnIZ6DNut912VhFIhUK5URekTgzJs1Xo77Zt22a1jjp16rjUCrXsiH9dpnXq/zlz5iQ8r7QMzX6Q7ftW5TJKDiqmTZtm77//fkJvRSr6AVM5/fXXX1ZTyihMaQd6r/C+VlX2o/Iop08//dS1+J1yyilFrqc67UuqkGhWGr3OU/ClFj2lMGSzTv2vZdWymu37VqcyCjv77LPtzTfftI8++ihlr1jyfiSZjtvqWk6eern0mvB5iX3pf/Tb9sEHH2R9TqpO+5KXn59vzz33XKGgszzrSgQWKDdqtVRrw9ixYxNaI/R3uJU0E3UP/vTTT+6ELEpb0Q4fXueSJUtcPqBfp/7XD7hyFj11P+u9/cmlOpdROKhQrq5OvMp9L8qECRNcbmVy12h1LaNkM2bMcGMs/DJVaT8qj3JSq5jW37Nnzxq1LyldR5URLef9/vvvroy0vmzWqecVtIWXUZCm3Plsv5uqXEaiXlMFFa+++qo7jnQuz2Y/kkzHbXUrp1RjoNTK7suAfen/jBw50p1jwlOs1pR9yXvxxRdt1apVdsIJJ1hYudaVsh7mDZTSFGqaheCJJ55wMxCcdtppbgo1P6XliSeeGAwdOjS+/PDhw4N3333XTWU5fvz44Nhjjw3q1avnpl8LT6GmdYwePTr48ccf3Sw1qaZQ69WrV/DVV1+5Kes22mijSjtNaGmXkWYc0bRy66+/vpuiLzwlnabyky+++MLNIqHntZ6nn346WG+99YIBAwYENaGMli5dGlx88cVuRh5NZ/jBBx8EW2+9tdtPVq5cWSX3o7I63kTTNDZo0MDNapOsuu9Lf//9t5tt5eyzzw5+++234M033wxat24dXH/99Vmv008RqulVP/zwQzdF6I477uhuNaWMzjzzTDcDmaYODZ+Tli9f7p7/888/3ZTFKhsdkzq/awal3XbbLaisyqKcLrroIldGKoPPP//cTR3eqlUrN4uWV9P3JT9rksrgsssuK/SeNWFf8nbZZZfgmGOOCVIpr7oSgQXK3b333utOAJqjWVOqab7k8JRwmvbTO//88+PLtmnTxs1l/d133yWsT9OoXX311e55HYh9+/Z1J6DkOZ51cDRq1MjN0z9o0CBXmawJZaQTqdoQUt38PN+qRG6//fbuh14VyU033TS48cYbEyrV1bmMVJnZZ599XAVY04BqulTNG558DYeqth+VxfEmDz/8cFC/fn03XWGy6r4v+eBJn1HnG1VQbrjhhmDt2rVZr1P0Yz5kyJCgefPmLkg77LDDXMW6ppRRunOSn3dfFUpV/Fq0aOHWofn0L7nkkkp97YGyKCdVEtu1a+fW16FDB/e3KsphNX1fEjWIaP9J/u2vSfvSpEmTXBm89957KddXXnWlmP7Jvn8DAAAAAApjjAUAAACAyAgsAAAAAERGYAEAAAAgMgILAAAAAJERWAAAAACIjMACAAAAQGQEFgAAAAAiI7AAAAAAEBmBBQAAxZSfn29t2rSxWCxmN9xwQ4WU3wYbbODeX7eSeuKJJ+LruPbaa62y8Nukz+h9/vnn8ce/+eabCt0+AKkRWABANaLKoa98pbo1a9YsYfmRI0faUUcdZR06dEhYriTGjRtnhxxyiLVu3drq1KljrVq1ss0339yOO+44e/bZZ606uffee23OnDlWr149O/30062m+Ouvv9w+pttrr71Wru+9884727bbbuvuX3PNNeX63gCyUzvL5QAA1dDdd99tP/zwQ+T1jB071vr162dr166NPzZ//nx3++WXX1wlvH///lYd6DPedddd7v6hhx7qAqiK8NJLL9nKlSvLPbAYPny4uz9w4ED3+cvTKaec4norxowZYxMnTrQtttiiXN8fQGYEFgBQTe233352xRVXJDxWu3biaX/jjTe23r17u5bgM888s8TvpRZkH1QMGTLEDjroIPf3lClT7MMPP7RVq1ZZRSkoKLDVq1e73oXS8M4779js2bPd/SOOOMIqyjbbbGM1jQIZ7af6TpXGddttt1X0JgEICwAA1cawYcMCndp1GzhwYNavW7FiRfx1JflpqFevnntdixYtUj6fn59f6LFffvnFbWOnTp2C3NzcoFWrVsEee+wRfPDBBwnLjR07Nth///2Dli1bBnXq1AnWX39997rff/897Wd/7LHHguuuu86tOycnJ/joo4/cMgUFBcHjjz8e7LTTTkHjxo3ddm+55ZbBXXfdFaxbty6rzzpo0CD3HrFYLFi0aFH88ddffz3+/ldeeWX88eOPP949ps+4cuXK+Gf3yx599NHxZYuzfZ07d075fc2bNy8YMGBA0KRJk6Bp06bBiSeeGMydOze+rF7njRw5Mv64yu+FF14IevTo4bZ1o402Cp5//vn4sn369EnYR8K38L42Z86c4IILLgg23HBDt55mzZq572/cuHGFylLbpe3LZlu9rbbayj3XtWvXrL4vAOWHwAIAqpGKCizWW2+9+GuHDh0a/PTTT66SnM6YMWOC+vXrp6yk6jN4999/v6vAp1pOFe+vv/465WdXpTO8rA8sVOFOVzk+5phjsvqs3bt3d8t369Yt4fEFCxbEt7Vv377xx8Pb8sUXX7jHFPj4x+677774ssXZvlSBxerVq4Ntttmm0Gt79uxZZGCxySabFHqdgrJJkyZlHVhMmzbNBX6pllFQOHr06Ph7r1q1KujVq1eh5RRIZQosBg8eHH8+Ly8vq+8MQPlg8DYAVFOjRo0qNHj7pJNOKpP32muvveL3b775ZuvRo4c1b97cDj74YHv++edV840/v3z5chswYICtWLHC/b3rrru6ZV5//XW78MILrWHDhu7x6dOn2wUXXOBem5OTY1dddZW99dZbbrC5LF261H2e8Lo9pWAdf/zxbvknn3zSDU7XmATd9ylgGlD+xhtv2A477OAe0zbolonSu/744w93f8MNN0x4Tp/X5/x//fXXLl1HY0u0Ld4XX3yR8L///FIa26fB+N9++218ex599FF74YUXbPHixVaUSZMm2cknn2xvvvmm9e3b1z2mz6B1+AHr99xzT0Kq3aeffupuV155ZTwNbsaMGe6+vmONhXjwwQetUaNGtmbNGhs8eLCbUctv6/fff+/ut2zZ0h5//HF78cUXbdmyZRm3M1zuGr8DoPJgjAUAoEiqmP70008Jj2nMgs/zV67777//buPHj094jSrGuqly+/LLL7vH33vvPVfhli5dutj7779vdevWdX9rbIanirbGRshhhx1m1113nbu/9957u8rsrFmzXMVSg8+32mqrQjMIPf300wmPXXLJJfH7Z511lq2//vruvirTX375pbuv1xxzzDFpy2HBggXxQEYV92QKElROCno0uHjq1Knucc2O9fPPP7uZs8T/r1m6fDAS3t6Sbl94pqYRI0a410qTJk3c4PpMevbsGQ8iNCBdA/Llzz//dP8rWNRgfE+zf+2yyy4JZfP222+7+23btrVTTz3V3dfn03f26quvutcr2NDYlNGjRyds66BBg+JlouXTCZf7vHnzMn4mAOWLwAIAatDgbV17oSTUsrzHHnskPNa5c2c3S5C0b9/eVZY1sFkVyE8++SReqZZXXnnFBRT77LOPC0DCPR0+qEgWXm777beP39dUtr169XLv5ZdLDiwOPPDAjOs799xzU77nr7/+atlK1VOy22672QMPPODuqzx8GShQOO+889xjixYtir+PAiD1xpTW9oV7R8JltuOOOxb5efr06RO/rx4ET9ubDQUgvkwU9PmemHSfIbytfhpZ2W677Ypd7gAqBwILAKimkluUy5oq/Ep90k3UYq+0JaXYyHfffecCi9JQ1LU2ShpA+TSddFq0aOHeW5XbhQsXpgwsvHBgoaBMwZBSpJ577rl45Thd5buk2xdW3OuRhHsCwrOHlXZFvqjPUNR2h8u9oqb6BZAaYywAAEXafffdXQUzfPO9FaLeA+XjhykFRr0m3rp169z/3bt3jz/2wQcfxNOdkoWXU4XcU66+z81PXi5T5TS83EcffVTo8+g2efLkjOWgCvdGG22UkCIU1q5dO+vWrZu7r3QtjXdQhV1jJnyvgb8GRnIgUhrb599bwlen9qlXUfneFUn+vjX2wZe7tkPjUZK3X9+10p6ka9eu8df6cSHy1VdfZdyGcLlvttlmpfCpAJQWeiwAoAZTytLcuXNdZT1M4xtkvfXWS0iRSUf59Lm5uS7/X6ksypNXT4UG6Canu6jXQr0pGmehFn39ffbZZ7sxG5999plLw9F4iCOPPNIuu+wyt21KpRo2bJgbyKxB6Xl5efGKpcYGZEODuX1e/4knnugGHCtI0OfXgGwN9FYgpPfJROlLSlvStmscSdOmTROeV7CgAMCn+qj8VOFWYKELEv7222/u8fr167triJTm9uk6D36cg64tovfQYHiVY2kI92rou1JA2bhxYxcU6TvV9un99fnVc6UxHnp+2rRpLhjU96ggZ4MNNnDP+3Q2v60a5H355Zdn3AYfVCow0VgOAJVIOc0+BQCohNPNZppCVDc9n40OHTpkXI+uTxGefvbtt98O6tatW2bTzWoa1VQyTeea/N7pvPHGG/HlX3rppULP6zoU4XWOGDEiPhVr+PHdd9890vYVZ7rZdFO4Jl/Hwps6dWrKfWDNmjVB27ZtC63fl3em6Wb9Tev2082Gp8H1N10/I910s7Nnz3ZT4Oq5iy++uMjvCkD5IhUKABCZxg0MHTrUtcprNiP1XjRo0MANqr7hhhtcK3Y4PUkt25pBSi3zWl7jM9RToZSr8LgDTV+qWaO0vMY3KBVJA8U1laleHx70mw31dmhKV/UiqKdB29mpUyc3vaqmUtX7FUWzK/mWcrXAJwunN4lPgdL7aNpbL9X4iqjbp3LUrEsqV80EpVv//v3jM3KJvpeSUvlrWmCN3VFPRDJtq3oU1OO0ySabuF4oLaf7+s702o4dO7pl9dn03aqnxm/r0UcfbR9//HHGWa98ClZZTZ0MoORiii4ivB4AgBrnlltucYGU0nd0vY3wLEoVTT/ryWNMFGz48S5KQQpP9VqVKM1OY0d8yhWAyoUeCwAAikljQjSmQBf5e+ihhypV+Q0cONBdzG7ChAlubIOm/z3jjDPiz2e6DkZl9vnnn8cHpA8fPryiNwdACvRYAABQjSidTIPyU1FQoSt6F3cqWgDIBrNCAQBQjWhMhaZ61exTuridxjho5iyNSdA4B4IKAGWFHgsAAAAAkTHGAgAAAEBkBBYAAAAAIiOwAAAAABAZgQUAAACAyAgsAAAAAERGYAEAAAAgMgILAAAAAJERWAAAAACIjMACAAAAgEX1/wD+5iPAywAsEwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\n", "\n", "# Collect all results\n", "results_all = [\n", " {'Approach': 'Baseline - LDA (Lab 3)', \n", " 'F1-Score': 0.5750}, \n", " \n", " {'Approach': 'Hierarchical Pipeline', \n", " 'F1-Score': 0.5473},\n", " \n", " {'Approach': 'Random Forest', \n", " 'F1-Score': rf_f1},\n", "]\n", "\n", "# Create DataFrame and sort\n", "results_comparison_df = pd.DataFrame(results_all)\n", "results_comparison_df = results_comparison_df.sort_values('F1-Score', ascending=False)\n", "\n", "print(\"\\n\")\n", "print(results_comparison_df.to_string(index=False))\n", "\n", "# Identify best approach\n", "best_approach = results_comparison_df.iloc[0]\n", "baseline_f1 = 0.5750\n", "\n", "\n", "print(f\"Model: {best_approach['Approach']}\")\n", "print(f\"F1-Score: {best_approach['F1-Score']:.4f}\")\n", "print(f\"Improvement over baseline: {((best_approach['F1-Score'] - baseline_f1) / baseline_f1 * 100):+.2f}%\")\n", "\n", "# Visualization\n", "fig, ax = plt.subplots(figsize=(8, 6))\n", "\n", "approaches = results_comparison_df['Approach']\n", "f1_scores = results_comparison_df['F1-Score']\n", "\n", "bars = ax.barh(approaches, f1_scores, color='skyblue', edgecolor='black', linewidth=1.5)\n", "\n", "# Color best bar gold\n", "bars[0].set_color('gold')\n", "bars[0].set_edgecolor('darkgoldenrod')\n", "bars[0].set_linewidth=2\n", "\n", "# Add baseline reference line\n", "ax.axvline(0.5750, color='red', linestyle='--', linewidth=2, \n", " label='Original Baseline (LDA = 0.575)', alpha=0.7)\n", "\n", "ax.set_xlabel('F1-Score (weighted)', fontsize=12, fontweight='bold')\n", "ax.set_title('Comparison of All Classification Approaches\\n14-Class Weak Link Prediction', \n", " fontsize=14, fontweight='bold')\n", "ax.legend(fontsize=10)\n", "ax.grid(axis='x', alpha=0.3)\n", "ax.set_xlim([0.5, 0.7])\n", "\n", "# Add value labels\n", "for bar, score in zip(bars, f1_scores):\n", " ax.text(score + 0.005, bar.get_y() + bar.get_height()/2, \n", " f'{score:.4f}',\n", " va='center', fontsize=10, fontweight='bold')\n", "\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 22, "id": "78ebe496-49a6-416a-956a-ac7ac466f81c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Classification Report for: Random Forest\n", " precision recall f1-score support\n", "\n", " ExcessiveForwardLean 0.53 0.80 0.64 20\n", " ForwardHead 0.68 0.83 0.75 18\n", " LeftArmFallForward 0.64 0.56 0.60 128\n", " LeftAsymmetricalWeightShift 0.53 0.50 0.51 18\n", " LeftHeelRises 0.00 0.00 0.00 1\n", " LeftKneeMovesInward 0.00 0.00 0.00 1\n", " LeftKneeMovesOutward 0.57 0.50 0.53 8\n", " LeftShoulderElevation 0.33 0.12 0.18 8\n", " RightArmFallForward 0.51 0.53 0.52 87\n", "RightAsymmetricalWeightShift 0.75 0.50 0.60 6\n", " RightKneeMovesInward 0.33 0.14 0.20 7\n", " RightKneeMovesOutward 0.90 0.93 0.92 61\n", " RightShoulderElevation 0.51 0.62 0.56 56\n", "\n", " accuracy 0.62 419\n", " macro avg 0.49 0.47 0.46 419\n", " weighted avg 0.61 0.62 0.61 419\n", "\n" ] } ], "source": [ "# Detailed analysis of the champion model\n", "\n", "if best_approach['Approach'] == 'Random Forest':\n", " best_model = rf_model\n", " best_predictions = y_pred_rf\n", "else:\n", " best_model = None\n", " best_predictions = y_pred_rf\n", "\n", "print(f\"\\nClassification Report for: {best_approach['Approach']}\")\n", "print(classification_report(y_test_14, best_predictions, zero_division=0))\n" ] }, { "cell_type": "code", "execution_count": 23, "id": "7f6355aa-1149-40ac-9e03-b17f9bae19a6", "metadata": {}, "outputs": [], "source": [ "# Prepare the final model package\n", "final_model_package = {\n", " 'model_type': 'Random Forest',\n", " 'model': rf_model,\n", " 'scaler': scaler,\n", " 'feature_columns': feature_columns,\n", " 'weaklink_categories': weaklink_categories,\n", " 'upper_body_classes': upper_body_classes,\n", " 'lower_body_classes': lower_body_classes,\n", " 'test_performance': {\n", " 'accuracy': rf_acc,\n", " 'precision': rf_precision,\n", " 'recall': rf_recall,\n", " 'f1_score': rf_f1\n", " },\n", " 'training_info': {\n", " 'n_estimators': rf_model.n_estimators,\n", " 'max_depth': rf_model.max_depth,\n", " 'random_state': RANDOM_STATE,\n", " 'training_samples': X_train.shape[0],\n", " 'test_samples': X_test.shape[0],\n", " 'n_features': len(feature_columns)\n", " }\n", "}\n", "\n", "# Save to pickle file\n", "model_path = OUT_DIR / 'weaklink_classifier_rf.pkl'\n", "with open(model_path, 'wb') as f:\n", " pickle.dump(final_model_package, f)" ] }, { "cell_type": "code", "execution_count": null, "id": "c97378c3-bc86-4ca1-8829-e97da3c8f560", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.10.11" } }, "nbformat": 4, "nbformat_minor": 5 }