{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load\n\nimport pandas as pd\nimport numpy as np\nfrom sklearn.ensemble import RandomForestClassifier\nfrom sklearn.metrics import accuracy_score, average_precision_score\nimport os\nimport glob\n\n\n# Input data files are available in the read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))\n\n# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2023-04-21T02:42:38.399874Z","iopub.execute_input":"2023-04-21T02:42:38.400374Z","iopub.status.idle":"2023-04-21T02:42:38.428515Z","shell.execute_reply.started":"2023-04-21T02:42:38.400331Z","shell.execute_reply":"2023-04-21T02:42:38.427457Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"p = '../input/tlvmc-parkinsons-freezing-gait-prediction/'\n#short hand for future mentions\n\n\ntrain_data = glob.glob(p+\"train/**/**\")\ntest_data = glob.glob(p+'test/**/**')\n#list of CSV files obtained\n\nsubjects = pd.read_csv(p+'subjects.csv')\ntasks = pd.read_csv(p+'tasks.csv')\nsub = pd.read_csv(p+'sample_submission.csv')\n#labeling data\n\ntdcsfog_metadata = pd.read_csv(p+'tdcsfog_metadata.csv')\ndefog_metadata = pd.read_csv(p+'defog_metadata.csv')\ndaily_metadata = pd.read_csv(p+'daily_metadata.csv')\n#labelingdata\n\ntdcsfog_metadata[\"Module\"] = 'tdcsfog'\ndefog_metadata[\"Module\"] = \"defog\"\n#adding modulal source to metadata\n\nmetadata = pd.concat([tdcsfog_metadata, defog_metadata])\n#concatanation of metadata\n\nmetadata\n","metadata":{"execution":{"iopub.status.busy":"2023-04-21T02:42:38.430119Z","iopub.execute_input":"2023-04-21T02:42:38.430609Z","iopub.status.idle":"2023-04-21T02:42:38.635324Z","shell.execute_reply.started":"2023-04-21T02:42:38.430578Z","shell.execute_reply":"2023-04-21T02:42:38.634229Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def datagather(data):\n    \n    data_set = pd.DataFrame()\n    \n    for file in data:\n        \n        f = pd.read_csv(file)\n        \n        try:\n            if f.loc[:,['AccV','AccML','AccAP','StartHesitation','Turn','Walking']].equals(data_set):\n                pass\n            else:\n                try:\n                    df = f.loc[((f['Valid'] == True) & (f['Task'] == True)),['Time','AccV','AccML','AccAP','StartHesitation','Turn','Walking']]\n                    data_set = data_set.append(df, ignore_index = True)\n                    continue\n                except: pass\n                try:\n                    df = f.loc[((f['Valid'] == False) | (f['Task'] == False)),['Time','AccV','AccML','AccAP','StartHesitation','Turn','Walking']]\n                    continue\n                except: pass\n                try:\n                    df = f.loc[:,['Time','AccV','AccML','AccAP','StartHesitation','Turn','Walking']]\n                    data_set = data_set.append(df, ignore_index = True)\n                except: pass\n        except: \n            #print(\"dup\")\n            pass\n\n    return data_set","metadata":{"execution":{"iopub.status.busy":"2023-04-21T02:42:38.637169Z","iopub.execute_input":"2023-04-21T02:42:38.637602Z","iopub.status.idle":"2023-04-21T02:42:38.649121Z","shell.execute_reply.started":"2023-04-21T02:42:38.637560Z","shell.execute_reply":"2023-04-21T02:42:38.648120Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"data = datagather(train_data)\ndata.head()","metadata":{"execution":{"iopub.status.busy":"2023-04-21T02:42:38.652212Z","iopub.execute_input":"2023-04-21T02:42:38.652723Z","iopub.status.idle":"2023-04-21T02:45:31.502723Z","shell.execute_reply.started":"2023-04-21T02:42:38.652680Z","shell.execute_reply":"2023-04-21T02:45:31.501123Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"data","metadata":{"execution":{"iopub.status.busy":"2023-04-21T02:45:31.504408Z","iopub.execute_input":"2023-04-21T02:45:31.505459Z","iopub.status.idle":"2023-04-21T02:45:31.522554Z","shell.execute_reply.started":"2023-04-21T02:45:31.505422Z","shell.execute_reply":"2023-04-21T02:45:31.521505Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Split data into features and labels\nX_train = data.drop([\"StartHesitation\", \"Turn\", \"Walking\"], axis=1)\ny_train = data[[\"StartHesitation\", \"Turn\", \"Walking\"]]","metadata":{"execution":{"iopub.status.busy":"2023-04-21T02:45:31.523718Z","iopub.execute_input":"2023-04-21T02:45:31.525210Z","iopub.status.idle":"2023-04-21T02:45:32.022188Z","shell.execute_reply.started":"2023-04-21T02:45:31.525156Z","shell.execute_reply":"2023-04-21T02:45:32.021124Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Train random forest classifier with 5 trees\nrfc = RandomForestClassifier(n_estimators=5, random_state=42)\nrfc.fit(X_train, y_train)","metadata":{"execution":{"iopub.status.busy":"2023-04-21T02:45:32.023761Z","iopub.execute_input":"2023-04-21T02:45:32.024158Z","iopub.status.idle":"2023-04-21T02:52:34.318377Z","shell.execute_reply.started":"2023-04-21T02:45:32.024121Z","shell.execute_reply":"2023-04-21T02:52:34.317214Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Evaluate model performance on training data\ntrain_preds = rfc.predict(X_train)\naccuracy = accuracy_score(y_train, train_preds)\navg_precision = average_precision_score(y_train, train_preds, average=\"macro\")\nprint(\"Accuracy:\", accuracy)\nprint(\"Average Precision:\", avg_precision)","metadata":{"execution":{"iopub.status.busy":"2023-04-21T02:53:24.278677Z","iopub.execute_input":"2023-04-21T02:53:24.279472Z","iopub.status.idle":"2023-04-21T02:54:01.293120Z","shell.execute_reply.started":"2023-04-21T02:53:24.279424Z","shell.execute_reply":"2023-04-21T02:54:01.292278Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Create submission file\nsubmission = pd.read_csv(\"/kaggle/input/tlvmc-parkinsons-freezing-gait-prediction/sample_submission.csv\")\n\n# Save submission file\nsubmission.to_csv(\"submission.csv\", index=False)","metadata":{"execution":{"iopub.status.busy":"2023-04-21T03:17:57.912951Z","iopub.execute_input":"2023-04-21T03:17:57.913404Z","iopub.status.idle":"2023-04-21T03:17:58.495080Z","shell.execute_reply.started":"2023-04-21T03:17:57.913367Z","shell.execute_reply":"2023-04-21T03:17:58.493757Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission","metadata":{"execution":{"iopub.status.busy":"2023-04-21T03:17:49.067657Z","iopub.execute_input":"2023-04-21T03:17:49.068313Z","iopub.status.idle":"2023-04-21T03:17:49.082573Z","shell.execute_reply.started":"2023-04-21T03:17:49.068274Z","shell.execute_reply":"2023-04-21T03:17:49.081393Z"},"trusted":true},"execution_count":null,"outputs":[]}]}