RasaBh commited on
Commit
03e5721
·
1 Parent(s): 1070098

Changes in pkl file and report

Browse files
A4/A4_Classification.ipynb CHANGED
@@ -18,7 +18,7 @@
18
  },
19
  {
20
  "cell_type": "code",
21
- "execution_count": 1,
22
  "id": "44d2688c-f97c-4758-a201-4c7794019703",
23
  "metadata": {},
24
  "outputs": [],
@@ -82,7 +82,7 @@
82
  },
83
  {
84
  "cell_type": "code",
85
- "execution_count": 2,
86
  "id": "2f41c8fc-830b-4dae-8b4d-024a65907517",
87
  "metadata": {},
88
  "outputs": [
@@ -195,7 +195,7 @@
195
  },
196
  {
197
  "cell_type": "code",
198
- "execution_count": 3,
199
  "id": "40b37bda-7290-4cad-9ea1-dfff7bf98bb6",
200
  "metadata": {},
201
  "outputs": [
@@ -279,7 +279,7 @@
279
  },
280
  {
281
  "cell_type": "code",
282
- "execution_count": 4,
283
  "id": "e0b7b5a8-9e24-43f6-a445-cd42a68c4b92",
284
  "metadata": {},
285
  "outputs": [
@@ -308,7 +308,7 @@
308
  },
309
  {
310
  "cell_type": "code",
311
- "execution_count": 5,
312
  "id": "124141b7-431f-4bbd-858d-0d40bc60c0bc",
313
  "metadata": {},
314
  "outputs": [
@@ -368,7 +368,7 @@
368
  },
369
  {
370
  "cell_type": "code",
371
- "execution_count": 6,
372
  "id": "13068de8-4cac-42b6-95db-935a554d8469",
373
  "metadata": {},
374
  "outputs": [
@@ -408,7 +408,7 @@
408
  },
409
  {
410
  "cell_type": "code",
411
- "execution_count": 7,
412
  "id": "2ca48980-f52f-48ef-8068-76327682881c",
413
  "metadata": {},
414
  "outputs": [
@@ -447,7 +447,7 @@
447
  },
448
  {
449
  "cell_type": "code",
450
- "execution_count": 8,
451
  "id": "e777809d-c0ba-4c0f-b2ee-b1a1f39fc9c7",
452
  "metadata": {},
453
  "outputs": [],
@@ -479,7 +479,7 @@
479
  },
480
  {
481
  "cell_type": "code",
482
- "execution_count": 9,
483
  "id": "621f9c9d-0106-43c9-939e-ce232b33cd0b",
484
  "metadata": {},
485
  "outputs": [],
@@ -508,7 +508,7 @@
508
  },
509
  {
510
  "cell_type": "code",
511
- "execution_count": 10,
512
  "id": "d7362e1e-9e03-4330-b6bf-ce7ffa1128ef",
513
  "metadata": {},
514
  "outputs": [
@@ -529,7 +529,7 @@
529
  " QDA 0.592239 0.104172 0.593148 0.117567\n",
530
  "\n",
531
  "Champion (Stage 1): KNN (k=7)\n",
532
- "F1-Score: 0.8487 ± 0.0091\n"
533
  ]
534
  }
535
  ],
@@ -547,7 +547,7 @@
547
  },
548
  {
549
  "cell_type": "code",
550
- "execution_count": 11,
551
  "id": "61bb327b-61c9-4fd2-8c1a-100c63b38416",
552
  "metadata": {},
553
  "outputs": [],
@@ -577,7 +577,7 @@
577
  },
578
  {
579
  "cell_type": "code",
580
- "execution_count": 12,
581
  "id": "04276bda-c2e8-42d3-971d-ce2acbfceb37",
582
  "metadata": {},
583
  "outputs": [
@@ -597,7 +597,7 @@
597
  " Naive Bayes 0.470448 0.019123 0.484504 0.013492\n",
598
  "\n",
599
  "Champion (Single Model): LDA\n",
600
- "F1-Score: 0.5750 ± 0.0200\n"
601
  ]
602
  }
603
  ],
@@ -631,7 +631,7 @@
631
  },
632
  {
633
  "cell_type": "code",
634
- "execution_count": 13,
635
  "id": "1168c973-a0ca-40ed-b764-f9b721be961c",
636
  "metadata": {},
637
  "outputs": [],
@@ -693,7 +693,7 @@
693
  },
694
  {
695
  "cell_type": "code",
696
- "execution_count": 14,
697
  "id": "06933c9e-0992-468c-a1a7-ea7dc42087a8",
698
  "metadata": {},
699
  "outputs": [],
@@ -710,26 +710,10 @@
710
  },
711
  {
712
  "cell_type": "code",
713
- "execution_count": 15,
714
  "id": "cb653084-cc96-42ce-958f-bfdcc0de4b7c",
715
  "metadata": {},
716
- "outputs": [
717
- {
718
- "name": "stdout",
719
- "output_type": "stream",
720
- "text": [
721
- "Comparison of Pipeline vs single model\n",
722
- "\n",
723
- "Single Model (LDA):\n",
724
- "F1-Score: 0.5750 ± 0.0200\n",
725
- "\n",
726
- "Hierarchical Pipeline:\n",
727
- "F1-Score: 0.5607 ± 0.0113\n",
728
- "\n",
729
- "Difference: -0.0143 (-2.49%)\n"
730
- ]
731
- }
732
- ],
733
  "source": [
734
  "print(\"Comparison of Pipeline vs single model\")\n",
735
  "\n",
@@ -753,22 +737,10 @@
753
  },
754
  {
755
  "cell_type": "code",
756
- "execution_count": 16,
757
  "id": "47af57a8-ef5a-4ef9-a09c-c723acec2384",
758
  "metadata": {},
759
- "outputs": [
760
- {
761
- "name": "stdout",
762
- "output_type": "stream",
763
- "text": [
764
- "\n",
765
- "Statistical Test (Corrected Resampled t-test):\n",
766
- "t-statistic: -0.661\n",
767
- "p-value: 0.5447\n",
768
- "Result: NOT statistically significant\n"
769
- ]
770
- }
771
- ],
772
  "source": [
773
  "def corrected_resampled_ttest(scores_a, scores_b, n_train, n_test):\n",
774
  " k = len(scores_a)\n",
@@ -794,7 +766,15 @@
794
  "if p_value < 0.05:\n",
795
  " print(f\" Result: Statistically SIGNIFICANT difference\")\n",
796
  "else:\n",
797
- " print(f\"Result: NOT statistically significant\")\n"
 
 
 
 
 
 
 
 
798
  ]
799
  },
800
  {
@@ -807,21 +787,10 @@
807
  },
808
  {
809
  "cell_type": "code",
810
- "execution_count": 17,
811
  "id": "b254832b-4cb3-4541-bd5e-4f47d42fb2ef",
812
  "metadata": {},
813
- "outputs": [
814
- {
815
- "data": {
816
- "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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",
817
- "text/plain": [
818
- "<Figure size 800x600 with 1 Axes>"
819
- ]
820
- },
821
- "metadata": {},
822
- "output_type": "display_data"
823
- }
824
- ],
825
  "source": [
826
  "fig, ax = plt.subplots(figsize=(8, 6))\n",
827
  "\n",
@@ -850,24 +819,10 @@
850
  },
851
  {
852
  "cell_type": "code",
853
- "execution_count": 18,
854
  "id": "4eb142dc-1e25-4249-9264-b2afa1d104e7",
855
  "metadata": {},
856
- "outputs": [
857
- {
858
- "name": "stdout",
859
- "output_type": "stream",
860
- "text": [
861
- "Final moodel training\n",
862
- "\n",
863
- "Training the single model (LDA) on full training set\n",
864
- "\n",
865
- "Test Set Performance (LDA):\n",
866
- "Accuracy: 0.5680\n",
867
- "F1-Score: 0.5633\n"
868
- ]
869
- }
870
- ],
871
  "source": [
872
  "print(\"Final moodel training\")\n",
873
  "\n",
@@ -961,39 +916,10 @@
961
  },
962
  {
963
  "cell_type": "code",
964
- "execution_count": 19,
965
  "id": "b4c216b2-4af1-4e75-b5f4-67571a7cbc2a",
966
  "metadata": {},
967
- "outputs": [
968
- {
969
- "name": "stdout",
970
- "output_type": "stream",
971
- "text": [
972
- "\n",
973
- "Classification Report:\n",
974
- " precision recall f1-score support\n",
975
- "\n",
976
- " ExcessiveForwardLean 0.50 0.65 0.57 20\n",
977
- " ForwardHead 0.50 0.67 0.57 18\n",
978
- " LeftArmFallForward 0.60 0.60 0.60 128\n",
979
- " LeftAsymmetricalWeightShift 0.53 0.44 0.48 18\n",
980
- " LeftHeelRises 0.00 0.00 0.00 1\n",
981
- " LeftKneeMovesInward 0.00 0.00 0.00 1\n",
982
- " LeftKneeMovesOutward 0.42 0.62 0.50 8\n",
983
- " LeftShoulderElevation 0.12 0.12 0.12 8\n",
984
- " RightArmFallForward 0.45 0.41 0.43 87\n",
985
- "RightAsymmetricalWeightShift 0.33 0.33 0.33 6\n",
986
- " RightKneeMovesInward 0.25 0.14 0.18 7\n",
987
- " RightKneeMovesOutward 0.94 0.95 0.94 61\n",
988
- " RightShoulderElevation 0.47 0.45 0.46 56\n",
989
- "\n",
990
- " accuracy 0.57 419\n",
991
- " macro avg 0.39 0.42 0.40 419\n",
992
- " weighted avg 0.56 0.57 0.56 419\n",
993
- "\n"
994
- ]
995
- }
996
- ],
997
  "source": [
998
  "print(\"\\nClassification Report:\")\n",
999
  "print(classification_report(y_test_14, y_pred_test, zero_division=0))"
@@ -1009,31 +935,10 @@
1009
  },
1010
  {
1011
  "cell_type": "code",
1012
- "execution_count": 20,
1013
  "id": "caa895a5-ed03-43a3-97e2-b12143ae1528",
1014
  "metadata": {},
1015
- "outputs": [
1016
- {
1017
- "name": "stdout",
1018
- "output_type": "stream",
1019
- "text": [
1020
- "\n",
1021
- "Random Forest trained with 200 trees\n",
1022
- "\n",
1023
- "Test Set Performance:\n",
1024
- "Accuracy: 0.6181\n",
1025
- "Precision: 0.6141\n",
1026
- "Recall: 0.6181\n",
1027
- "F1-Score: 0.6110\n",
1028
- "\n",
1029
- "Comparison to baselines:\n",
1030
- "Baseline (LDA): F1 = 0.5750\n",
1031
- "Baseline (Pipeline): F1 = 0.5473\n",
1032
- "Random Forest: F1 = 0.6110\n",
1033
- "Improvement vs LDA: +6.25%\n"
1034
- ]
1035
- }
1036
- ],
1037
  "source": [
1038
  "\n",
1039
  "# Train Random Forest\n",
@@ -1083,36 +988,10 @@
1083
  },
1084
  {
1085
  "cell_type": "code",
1086
- "execution_count": 21,
1087
  "id": "8559eb54-5bbc-436c-ba9b-f279e5d3bdd7",
1088
  "metadata": {},
1089
- "outputs": [
1090
- {
1091
- "name": "stdout",
1092
- "output_type": "stream",
1093
- "text": [
1094
- "\n",
1095
- "\n",
1096
- " Approach F1-Score\n",
1097
- " Random Forest 0.61096\n",
1098
- "Baseline - LDA (Lab 3) 0.57500\n",
1099
- " Hierarchical Pipeline 0.54730\n",
1100
- "Model: Random Forest\n",
1101
- "F1-Score: 0.6110\n",
1102
- "Improvement over baseline: +6.25%\n"
1103
- ]
1104
- },
1105
- {
1106
- "data": {
1107
- "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/F5Y8aMsV122cW9Tq3TBx54oE2ePLnYn1ezdqki365dO9thhx3s7LPPtu+++y7+vGbnUeVbn1UB0MYbb2x33313wjrUor3ddttZw4YN3fbsvPPOCb0eClj0vF7ftWtXGz58uJtONJXk8vOt5QrsVInV9qqiq8p9mN5j6623dmVc1HvI+PHjXXkdcMABxS4zBYEqs+7du7vv5fPPP3fTpJ555pkJy02dOtWlWSkFSMu+8sorVpYWL17sApk77rjD9txzT1epHzlypNuGcM9BKnXr1nWfyd+aN28efy43NzfhOe1vKu9BgwYVGmyt58LLJk8Ze9BBB9lzzz1nVQ2BBQAAKBb1Rrz77rs2ZMgQVwkOUyXp+OOPt+eff961dnt33nmnbbnllvb999/b1VdfXWidqlweeeSRduihh9oPP/xgp59+ekJwko4qvUrJefPNN91Nrc8333xz/Pn8/Hy78MIL7dtvv3WVbqXmHHbYYe4iY1E+/wsvvGDbb799/DGtb/3113ct4L/88otdc801dsUVV7jlRJV3fTYFYT/++KONGzfOBVi+wvnpp5+6wEsBy88//2wPP/ywC6QUkBWHyuz22293n1e9GUpV8/QeAwYMcOlq2sZs3kOvUWW/cePGFpX2lTPOOMMFGHN04c3/T5V6BS4KDNULpEp/Ufbff3+XwpTutvnmm2cMljTN81577RV/bJNNNnHBsb6XTBTAKWBS4KgAKVPa3+uvv+6eV2CR7OCDD3brUdCr5ZIpwJwxY4YLIKsSZoUCAKAyUv56mhz2BN26mSVX1K+7TjXuol976KH/uxWT0p8UNGy66aYpn9fjCxcutLlz58ZTlzRO4aKLLopXpJMrTKrkqrJ26623ur91f+LEiUVWrFWhV+XYV3xPPPFEF0D41yl3Puzxxx93reaqWBdnfMIDDzxgjz76qPvcy5cvd5VtBVeeWpzV+u+p50KVVAUWRx99tC1ZssS1lKvHpJu+s/9fTp5eq3QhVfwVEGiZ6667zqUHDRs2LOvt1OdW8CLqAVCFXalF6qHQe+gxBTCiHoui3kM9KhpDU1pUgfffv/YN//3de++97nH1bGg/UaCpMkznkUceyZgylemicbrSvXoXkicC0NgZPZcpDUrpUtouBbQKHNVLp+9ZqWnJFCAppUkBp6egR4GfeqsU5L788ssu4FRwrGDD82Wu8ldvXFVBYAEAQGW0fLlZFoOgrVWrwo8tXpzda/UeEYR7JIoSziFPRSk72267baFW26Ko0hVuTVeqUrg1XEGQeg+++uormzdvXryn4u+//y5WYKFeGN+DokG+N954o+2zzz6u9du///333+8CF617xYoVbiyJUrWkRYsWbvCvKpp77723ay1XwKHtFfXSqCVf6w2nV6nyrEAm2wsoqlcoXBai8lBrvH+PcLBW1HvocygoKS1+n/EB5vvvv+96ldQD4ccXqHxUjgp60unQoUO5X8tBQY/Xo0cPV9YKANWL0bdv34Rl1dugwNP3WHn6fOpB87TPa3yHAupwYOF7AvW9VCUEFqiydCKqTJexr0z0w6kfCpWRWkRqMv1QVtYLCQEZqZLXsmXRhdS0aerHsnltCa/2ralHdVz9+uuvLq0omR5X7rl6BjyNKygLyb8D2q5wmpNy1TVblVq41Qqs5xRQqNJfHErT0ecW/a/WaFXclfKlAbrKh9dsPmqN1uB1BRuqLCqgCaf8nHvuuW7ch1531VVXuYq1xmwsW7bMjRlR5VI9FuHzVnEq9uHy8Ovw5aH3UK9FqkHK6d5DFeFUg61LSvuG+FZ4laNSy8IpddpepYtpW9P9hikQUZpWOvrOlVKWitL19P1r7E6410IBo57Llnp8VD6auCA5sBg5cqQbRxEOFtJRSp32gzA/+UH4GKoKCCxQZWmqveK0ltUkOhGrdVAtaVHyiKsD/ZCWVYUGKFMlTFNyUoxhKE2qMKlVWelBml0nXClUKskzzzzjUnqKE9Qr9entt99OeMxP0VlSym9XT4iCil133dU99tlnn1lp8KkvatEX9QRosLTGnXipBolr2lXdLr/8cheA/Oc//3GBhQZUa1sVtCQHFqUl/B7Z0rZqdiL93kbdJpXVv//9b9ttt91chVnfjwY3KygLj4lQL4rGHmhigPB0rqWVCqXfRz2vlDmfKqdyUU+TvpNsqVdCn8H3DHkqKwUWOgayaQDVAPzkdSgNUK/NNFakMiKwAACkFdx+uy2ePdvWa9PG6PdBmKYgVUVaqT3XX3+9yztXC/Ell1zi0lSKO+hYg7U1S4/GGWh2JVW2lHsvJa3QqtdEQZAqs6q4qeKoMQYloZQUn3+vlm2l6aiVX+lQotmsnnzySZf+orLQTFUKjPw4AY0Z0HaoBVs9J6rIKk1LlU9RupbGXygfXylSClyUuqQKpsq3NPj3UFqUBsqrEaqo99DsXGqg0XebnDqmz5R8gT6Vg6cULFX+NUuXGrr+9a9/uXQ0P+uTykjfjz5v8nesHgn1ZqQLLKKkQqn3SfuYUpKUoqaZynRBOgUVCvLC40Fuuukm1yvne3sUiKhXQ0GjxqYoSNMxEPbhhx+6slFPVjLNdKbxHQrYRGWhtC+N3wlTb4yC4eTJESo7AgtUWUPH/GD1GjWp6M2onILAmqxeYgfmNtEvstU0q1cstxv22qyiN6N6aNHCAk1F2aJFRW8JKhlVIDXzkAb9qmKo1A1VuDQQVY+pwlYcqoC/9NJLbuCupmlVJU9jGjTzjqb4LAlVnNUarvQjVYrVK3LPPfe4geTFpRZy3XzAovx69bBonT4w0oxXuoifKrz9+/d3vRfvvPNOPC1z0qRJrmLpW7k1Za9eJ6qc6roKI0aMsNtuu821Vqtim6pyWlJ6D82cpfe45ZZbsnoPVfxVsVYvlCrZYeGxAl44PUllo7LQgGWlDSkI02t8upEq1Fp3qgBBFXgNxFcgonSj0qZZyrR/6H1WrVrlykY9cGEK/jTgXhToKT1L359SqBQc6vMowEzePx977DEXdPuB6sn0Gg3KVs+UllFanAK9MO23So2ramIBuSSoYjSzhlobhn0y2eo1JrBIKQis0YqFtqx+8xoaWOTbsJ03yJgKpRQxtaZpVpKaPg4lE8qp7MtILbp+BpzSHCRbmaiqoelWi5vio14PXXRPF6OrCUpaTmVNFWqlvqmVXkFCRaqsZVSa3nnnHRdgq9zTXQAx03lDgY+CXwVF6o0pT/yaAgCASkEtxkof0lW9lSajwc9+alRUHPXOqIdDFVmUvfz8fDdGo6yvql4Wqt4WAwDKz5gxVnf2bE3wrqRnSh5lSmMOlOuvtCqNA1CrrQY5o+JpqlyUjyOT0qKqEgILAEBaseeft/p5eRbTjCUEFihjynvXDUDVRCoUAAAAgMgILAAAAABERmABAEAlUNMvZgkge5V1UlfGWAAAUIF0sSxNUztz5kx3NWL9Xd2m0awJU4SWBsqJMsp2P5k7d647lrK5snd5IrAAAKACKajQXPR5eXkuuKiuFSH1yOizElhQTuxL0ek40lXadeG+yoTAAgCACqZeCk2vqlb9devWWXWjoEJXm9ZVnLkgJeXEvhSdeioqW1AhBBYAAFQCPq2hsqU2lFZgoc+lKwQTWFBO7EvVF4O3AQAAAERGjwUAIL0OHaxAg23bt6eUAAAZEVgAANIKrr/elsyZY/Vatzbm8gEAZEIqFAAAAIDICCwAAAAAREZgAQAAACAyxlgAANK7/XZrlJdn1q6d2SWXUFIAgLQILAAAacUmTrTaeXkWmz+fUgIAZEQqFAAAAIDICCwAAAAAREZgAQAAACAyAgsAAAAAkRFYAAAAAIiMwAIAAABAZAQWAAAAACIjsAAAAAAQGRfIAwCkFeyzj62aNcty27a1GOUEAMiAwAIAkF7//rZizhxr3Lo1pQQAyIhUKAAAAACREVgAAAAAiIzAAgAAAEBkjLEAAKQVGzTImuXlWaxdO7NRoygpAEBa9FgAAAAAiIzAAgAAAACBBQAAAICKR48FAAAAgMgILAAAAABERmABAAAAIDICCwAAAACREVgAAAAAiIzAAgAAAEBkXHkbAJBWcOGFtmz2bMtt08ZilBMAIAMCCwBAej162No2bcxat6aUAAAZkQoFAAAAIDICCwAAAACREVgAANL76Ser/eOP7n8AADJhjAUAIK3YHXdYo7w8i7VrZzZqFCUFAEiLHgsAAAAAkRFYAAAAAIiMwAIAAABAZAQWAAAAACIjsAAAAAAQGYEFAAAAgMgILACgCM8995xtvfXWVr9+fWvRooUdeeSRNnny5IyvOemkkywWixW6rb/++imXnzFjhlu3X27MmDHx53bfffeU69Jtgw02iC931113Wc+ePa1Zs2ZWt25d915HHXWU/ajrUAAAUBMCiyeeeML9EFZW1157rW211VYZl9EP//nnn19q76lKyaGHHlri13/88ceu0rFo0SIrTVrna6+95u7/9ddf7u8JEyaU6nsAlcljjz1m/fv3t++//97atWtn69ats5dfftl22mknmzVrVpGv79Chg22//fbxmwKUZAUFBTZgwABbuHBhynVsttlmCevQrXbt/12GSNvkffLJJzZ37lzr2rWrdevWzfLy8uyll16yPfbYw/Lz8yOVAwAAFRpYpKscJ1d6jznmGPv999+tKnvllVfsuuuuK7f382Xob23atLEjjjjCpkyZ4p5XpUeViqZNm5bZNnTs2NG9xxZbbFFm7wFUpNWrV9vQoUPdfX98/frrr9a4cWObM2eO3XjjjUWu45RTTrEvv/wyfnv99dcLLXPrrbfaRx99ZEcffXTKdTzwwAMJ67j//vtt7dq17rlzzjknvtyz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kRFYAAAAAIiMwAIAAABAZAQWAIC0Rsdi9l7Llrb2wAMpJQBARgQWAICMgcW7BBYAgCwQWAAAAACIjMACAAAAQGQEFgCAtOoFgdVdt85sxQpKCQCQEYEFACCtB4LAbpw82epdcAGlBADIiMACAAAAQGQEFgAAAAAiI7AAAAAAEBmBBQAAAIDICCwAAAAAREZgAQAAACAyAgsAAAAAkRFYAAAAAIiMwAIAAABAZLWjrwIAUF3dEItZz44drdcll1idit4YAEClRmABAEhrcixmzerXt6BbN0oJAJARqVAAAAAAIiOwAAAAABAZgQUAIK1tgsB6Ll1qOePHU0oAgIwILAAAaQ0JAhuQl2e5jzwSqZSee+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==",
1108
- "text/plain": [
1109
- "<Figure size 800x600 with 1 Axes>"
1110
- ]
1111
- },
1112
- "metadata": {},
1113
- "output_type": "display_data"
1114
- }
1115
- ],
1116
  "source": [
1117
  "\n",
1118
  "\n",
@@ -1180,39 +1059,10 @@
1180
  },
1181
  {
1182
  "cell_type": "code",
1183
- "execution_count": 22,
1184
  "id": "78ebe496-49a6-416a-956a-ac7ac466f81c",
1185
  "metadata": {},
1186
- "outputs": [
1187
- {
1188
- "name": "stdout",
1189
- "output_type": "stream",
1190
- "text": [
1191
- "\n",
1192
- "Classification Report for: Random Forest\n",
1193
- " precision recall f1-score support\n",
1194
- "\n",
1195
- " ExcessiveForwardLean 0.53 0.80 0.64 20\n",
1196
- " ForwardHead 0.68 0.83 0.75 18\n",
1197
- " LeftArmFallForward 0.64 0.56 0.60 128\n",
1198
- " LeftAsymmetricalWeightShift 0.53 0.50 0.51 18\n",
1199
- " LeftHeelRises 0.00 0.00 0.00 1\n",
1200
- " LeftKneeMovesInward 0.00 0.00 0.00 1\n",
1201
- " LeftKneeMovesOutward 0.57 0.50 0.53 8\n",
1202
- " LeftShoulderElevation 0.33 0.12 0.18 8\n",
1203
- " RightArmFallForward 0.51 0.53 0.52 87\n",
1204
- "RightAsymmetricalWeightShift 0.75 0.50 0.60 6\n",
1205
- " RightKneeMovesInward 0.33 0.14 0.20 7\n",
1206
- " RightKneeMovesOutward 0.90 0.93 0.92 61\n",
1207
- " RightShoulderElevation 0.51 0.62 0.56 56\n",
1208
- "\n",
1209
- " accuracy 0.62 419\n",
1210
- " macro avg 0.49 0.47 0.46 419\n",
1211
- " weighted avg 0.61 0.62 0.61 419\n",
1212
- "\n"
1213
- ]
1214
- }
1215
- ],
1216
  "source": [
1217
  "# Detailed analysis of the champion model\n",
1218
  "\n",
@@ -1229,7 +1079,7 @@
1229
  },
1230
  {
1231
  "cell_type": "code",
1232
- "execution_count": 23,
1233
  "id": "7f6355aa-1149-40ac-9e03-b17f9bae19a6",
1234
  "metadata": {},
1235
  "outputs": [],
@@ -1240,6 +1090,7 @@
1240
  " 'model': rf_model,\n",
1241
  " 'scaler': scaler,\n",
1242
  " 'feature_columns': feature_columns,\n",
 
1243
  " 'weaklink_categories': weaklink_categories,\n",
1244
  " 'upper_body_classes': upper_body_classes,\n",
1245
  " 'lower_body_classes': lower_body_classes,\n",
@@ -1290,7 +1141,7 @@
1290
  "name": "python",
1291
  "nbconvert_exporter": "python",
1292
  "pygments_lexer": "ipython3",
1293
- "version": "3.12.8"
1294
  }
1295
  },
1296
  "nbformat": 4,
 
18
  },
19
  {
20
  "cell_type": "code",
21
+ "execution_count": 24,
22
  "id": "44d2688c-f97c-4758-a201-4c7794019703",
23
  "metadata": {},
24
  "outputs": [],
 
82
  },
83
  {
84
  "cell_type": "code",
85
+ "execution_count": 25,
86
  "id": "2f41c8fc-830b-4dae-8b4d-024a65907517",
87
  "metadata": {},
88
  "outputs": [
 
195
  },
196
  {
197
  "cell_type": "code",
198
+ "execution_count": 26,
199
  "id": "40b37bda-7290-4cad-9ea1-dfff7bf98bb6",
200
  "metadata": {},
201
  "outputs": [
 
279
  },
280
  {
281
  "cell_type": "code",
282
+ "execution_count": 27,
283
  "id": "e0b7b5a8-9e24-43f6-a445-cd42a68c4b92",
284
  "metadata": {},
285
  "outputs": [
 
308
  },
309
  {
310
  "cell_type": "code",
311
+ "execution_count": 28,
312
  "id": "124141b7-431f-4bbd-858d-0d40bc60c0bc",
313
  "metadata": {},
314
  "outputs": [
 
368
  },
369
  {
370
  "cell_type": "code",
371
+ "execution_count": 29,
372
  "id": "13068de8-4cac-42b6-95db-935a554d8469",
373
  "metadata": {},
374
  "outputs": [
 
408
  },
409
  {
410
  "cell_type": "code",
411
+ "execution_count": 30,
412
  "id": "2ca48980-f52f-48ef-8068-76327682881c",
413
  "metadata": {},
414
  "outputs": [
 
447
  },
448
  {
449
  "cell_type": "code",
450
+ "execution_count": 31,
451
  "id": "e777809d-c0ba-4c0f-b2ee-b1a1f39fc9c7",
452
  "metadata": {},
453
  "outputs": [],
 
479
  },
480
  {
481
  "cell_type": "code",
482
+ "execution_count": 32,
483
  "id": "621f9c9d-0106-43c9-939e-ce232b33cd0b",
484
  "metadata": {},
485
  "outputs": [],
 
508
  },
509
  {
510
  "cell_type": "code",
511
+ "execution_count": 33,
512
  "id": "d7362e1e-9e03-4330-b6bf-ce7ffa1128ef",
513
  "metadata": {},
514
  "outputs": [
 
529
  " QDA 0.592239 0.104172 0.593148 0.117567\n",
530
  "\n",
531
  "Champion (Stage 1): KNN (k=7)\n",
532
+ "F1-Score: 0.8487 +/- 0.0091\n"
533
  ]
534
  }
535
  ],
 
547
  },
548
  {
549
  "cell_type": "code",
550
+ "execution_count": 34,
551
  "id": "61bb327b-61c9-4fd2-8c1a-100c63b38416",
552
  "metadata": {},
553
  "outputs": [],
 
577
  },
578
  {
579
  "cell_type": "code",
580
+ "execution_count": 35,
581
  "id": "04276bda-c2e8-42d3-971d-ce2acbfceb37",
582
  "metadata": {},
583
  "outputs": [
 
597
  " Naive Bayes 0.470448 0.019123 0.484504 0.013492\n",
598
  "\n",
599
  "Champion (Single Model): LDA\n",
600
+ "F1-Score: 0.5750 +/- 0.0200\n"
601
  ]
602
  }
603
  ],
 
631
  },
632
  {
633
  "cell_type": "code",
634
+ "execution_count": 36,
635
  "id": "1168c973-a0ca-40ed-b764-f9b721be961c",
636
  "metadata": {},
637
  "outputs": [],
 
693
  },
694
  {
695
  "cell_type": "code",
696
+ "execution_count": null,
697
  "id": "06933c9e-0992-468c-a1a7-ea7dc42087a8",
698
  "metadata": {},
699
  "outputs": [],
 
710
  },
711
  {
712
  "cell_type": "code",
713
+ "execution_count": null,
714
  "id": "cb653084-cc96-42ce-958f-bfdcc0de4b7c",
715
  "metadata": {},
716
+ "outputs": [],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
717
  "source": [
718
  "print(\"Comparison of Pipeline vs single model\")\n",
719
  "\n",
 
737
  },
738
  {
739
  "cell_type": "code",
740
+ "execution_count": null,
741
  "id": "47af57a8-ef5a-4ef9-a09c-c723acec2384",
742
  "metadata": {},
743
+ "outputs": [],
 
 
 
 
 
 
 
 
 
 
 
 
744
  "source": [
745
  "def corrected_resampled_ttest(scores_a, scores_b, n_train, n_test):\n",
746
  " k = len(scores_a)\n",
 
766
  "if p_value < 0.05:\n",
767
  " print(f\" Result: Statistically SIGNIFICANT difference\")\n",
768
  "else:\n",
769
+ " print(f\"Result: NOT statistically significant\")\n",
770
+ "\n",
771
+ "## - 54.47% chance this difference occurred by random chance\n",
772
+ "# Cannot reject null hypothesis (no significant difference)\n",
773
+ "# Pipeline is NOT reliably better than single LDA\n",
774
+ "\n",
775
+ "# determine if there is a significant difference between the means (averages) of two groups, or between one group and a known standard value. \n",
776
+ " #It calculates a \n",
777
+ "# statistic to assess whether observed differences between sample averages are likely due to real effects or just random chance"
778
  ]
779
  },
780
  {
 
787
  },
788
  {
789
  "cell_type": "code",
790
+ "execution_count": null,
791
  "id": "b254832b-4cb3-4541-bd5e-4f47d42fb2ef",
792
  "metadata": {},
793
+ "outputs": [],
 
 
 
 
 
 
 
 
 
 
 
794
  "source": [
795
  "fig, ax = plt.subplots(figsize=(8, 6))\n",
796
  "\n",
 
819
  },
820
  {
821
  "cell_type": "code",
822
+ "execution_count": null,
823
  "id": "4eb142dc-1e25-4249-9264-b2afa1d104e7",
824
  "metadata": {},
825
+ "outputs": [],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
826
  "source": [
827
  "print(\"Final moodel training\")\n",
828
  "\n",
 
916
  },
917
  {
918
  "cell_type": "code",
919
+ "execution_count": null,
920
  "id": "b4c216b2-4af1-4e75-b5f4-67571a7cbc2a",
921
  "metadata": {},
922
+ "outputs": [],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
923
  "source": [
924
  "print(\"\\nClassification Report:\")\n",
925
  "print(classification_report(y_test_14, y_pred_test, zero_division=0))"
 
935
  },
936
  {
937
  "cell_type": "code",
938
+ "execution_count": null,
939
  "id": "caa895a5-ed03-43a3-97e2-b12143ae1528",
940
  "metadata": {},
941
+ "outputs": [],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
942
  "source": [
943
  "\n",
944
  "# Train Random Forest\n",
 
988
  },
989
  {
990
  "cell_type": "code",
991
+ "execution_count": null,
992
  "id": "8559eb54-5bbc-436c-ba9b-f279e5d3bdd7",
993
  "metadata": {},
994
+ "outputs": [],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
995
  "source": [
996
  "\n",
997
  "\n",
 
1059
  },
1060
  {
1061
  "cell_type": "code",
1062
+ "execution_count": null,
1063
  "id": "78ebe496-49a6-416a-956a-ac7ac466f81c",
1064
  "metadata": {},
1065
+ "outputs": [],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1066
  "source": [
1067
  "# Detailed analysis of the champion model\n",
1068
  "\n",
 
1079
  },
1080
  {
1081
  "cell_type": "code",
1082
+ "execution_count": null,
1083
  "id": "7f6355aa-1149-40ac-9e03-b17f9bae19a6",
1084
  "metadata": {},
1085
  "outputs": [],
 
1090
  " 'model': rf_model,\n",
1091
  " 'scaler': scaler,\n",
1092
  " 'feature_columns': feature_columns,\n",
1093
+ " 'classes': list(rf_model.classes_),\n",
1094
  " 'weaklink_categories': weaklink_categories,\n",
1095
  " 'upper_body_classes': upper_body_classes,\n",
1096
  " 'lower_body_classes': lower_body_classes,\n",
 
1141
  "name": "python",
1142
  "nbconvert_exporter": "python",
1143
  "pygments_lexer": "ipython3",
1144
+ "version": "3.10.11"
1145
  }
1146
  },
1147
  "nbformat": 4,
A4/models/weaklink_classifier_rf.pkl CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:c2a7bd0fc95d0154e4897a68aff2fbda6b95d8a6a7b9510569ef2c88e06192fc
3
- size 16381856
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3206d29daa330ab3f0a25c01c92a5aed0035f3fdad39709cc9ef5b6be26c020b
3
+ size 16381898
A4/report.ipynb CHANGED
@@ -285,7 +285,7 @@
285
  "\n",
286
  "Two datasets were merged into a single dataset containing 41 features (including movement angles and weak-link indicators). For each data point, the weakest link was identified by selecting the column with the maximum score.\n",
287
  "\n",
288
- "Initially, a 14-class classifier was used. An alternative approach was then explored by separating features into upper-body and lower-body regions, following lab guidance and feedback. Models were trained separately for body regions and then combined to evaluate performance improvements.\n",
289
  "\n",
290
  "- 5-fold cross-validation was applied \n",
291
  "- Weighted averages were used due to class imbalance \n",
@@ -295,17 +295,25 @@
295
  "- LDA \n",
296
  "- QDA \n",
297
  "- Naive Bayes \n",
298
- "- KNN (best performer with k = 7)\n",
 
299
  "\n",
300
  "For the 14-class weak-link classification:\n",
301
- "- LDA performed best initially (F1 = 0.57)\n",
 
 
 
 
302
  "\n",
303
  "Following feedback, a two-step approach was tested:\n",
304
  "1. Predict body region using KNN \n",
305
  "2. Apply LDA for upper/lower classification \n",
306
  "\n",
307
- "This did not improve performance (F1 ≈ 0.54). \n",
308
- "Applying Random Forest improved results:\n",
 
 
 
309
  "\n",
310
  "- Baseline (LDA): F1 = 0.57 \n",
311
  "- After feedback adjustments: F1 = 0.54 \n",
@@ -317,13 +325,15 @@
317
  "\n",
318
  "## A4 – Regression Task\n",
319
  "\n",
320
- "The regression setup remains consistent with A2, with Random Forest introduced to improve performance.\n",
321
  "\n",
322
  "- Baseline model R²: 0.54 \n",
323
  "- Random Forest R²: 0.65 \n",
324
  "\n",
325
  "This represents a direct improvement over the earlier regression pipeline.\n",
326
  "\n",
 
 
327
  "The A4_Regression notebook is an enhanced version of A2_ModelBuilding.ipynb, while A4_Classification extends A3 based on feedback and model experimentation.\n"
328
  ]
329
  },
@@ -351,7 +361,7 @@
351
  "name": "python",
352
  "nbconvert_exporter": "python",
353
  "pygments_lexer": "ipython3",
354
- "version": "3.12.8"
355
  }
356
  },
357
  "nbformat": 4,
 
285
  "\n",
286
  "Two datasets were merged into a single dataset containing 41 features (including movement angles and weak-link indicators). For each data point, the weakest link was identified by selecting the column with the maximum score.\n",
287
  "\n",
288
+ "Initially, a 14-class classifier was used. An alternative approach was then explored by separating features into upper-body and lower-body regions and further trained another model on upper and lower body features, following lab guidance and feedback. Models were trained separately for body regions and then combined to evaluate performance improvements.\n",
289
  "\n",
290
  "- 5-fold cross-validation was applied \n",
291
  "- Weighted averages were used due to class imbalance \n",
 
295
  "- LDA \n",
296
  "- QDA \n",
297
  "- Naive Bayes \n",
298
+ "- KNN (k = 5, 7, 10)\n",
299
+ "(Champion model -> best performer with knn = 7)\n",
300
  "\n",
301
  "For the 14-class weak-link classification:\n",
302
+ "- Logistic Regression \n",
303
+ "- LDA \n",
304
+ "- Naive Bayes \n",
305
+ "- KNN (k = 5, 7, 10)\n",
306
+ "(Champion model -> LDA performed best (F1 = 0.57))\n",
307
  "\n",
308
  "Following feedback, a two-step approach was tested:\n",
309
  "1. Predict body region using KNN \n",
310
  "2. Apply LDA for upper/lower classification \n",
311
  "\n",
312
+ "This did not improve performance (F1 ≈ 0.54).\n",
313
+ "\n",
314
+ "Conducting a statistical t-test among the two-step approach and the previous model gave t-statistic = -0.661 and p-value of 0.5447 which indicates the result is not statistically significant. It can be concluded that pipeline is not better than single LDA. \n",
315
+ "\n",
316
+ "Applying Random Forest Classifier improved results:\n",
317
  "\n",
318
  "- Baseline (LDA): F1 = 0.57 \n",
319
  "- After feedback adjustments: F1 = 0.54 \n",
 
325
  "\n",
326
  "## A4 – Regression Task\n",
327
  "\n",
328
+ "The regression setup remains consistent with A2, with Random Forest Regressor introduced to improve performance. \n",
329
  "\n",
330
  "- Baseline model R²: 0.54 \n",
331
  "- Random Forest R²: 0.65 \n",
332
  "\n",
333
  "This represents a direct improvement over the earlier regression pipeline.\n",
334
  "\n",
335
+ "Conducting a statistical t-test among Random forest and the previous champion model (feature_selection_lasso) gave t-statistic = 11.76 and p-value of 0.00029 which indicates the result is statistically significant (p < 0.05). It can be concluded that random forest is reliably better than feature_selection_lasso. Even looking at the 95% confidence interval score [0.0935, 0.1435] we can say with 95% confidence that the improvement is positive. \n",
336
+ "\n",
337
  "The A4_Regression notebook is an enhanced version of A2_ModelBuilding.ipynb, while A4_Classification extends A3 based on feedback and model experimentation.\n"
338
  ]
339
  },
 
361
  "name": "python",
362
  "nbconvert_exporter": "python",
363
  "pygments_lexer": "ipython3",
364
+ "version": "3.10.11"
365
  }
366
  },
367
  "nbformat": 4,