{"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":"import numpy as np\nimport pandas as pd\nimport seaborn as sn\nimport gc\nimport matplotlib.pyplot as plt\nfrom sklearn import *\nimport glob","metadata":{"papermill":{"duration":2.681775,"end_time":"2023-03-14T16:13:47.463860","exception":false,"start_time":"2023-03-14T16:13:44.782085","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2023-03-14T18:36:37.493481Z","iopub.execute_input":"2023-03-14T18:36:37.493900Z","iopub.status.idle":"2023-03-14T18:36:39.524273Z","shell.execute_reply.started":"2023-03-14T18:36:37.493862Z","shell.execute_reply":"2023-03-14T18:36:39.523027Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Reading data","metadata":{"papermill":{"duration":0.003856,"end_time":"2023-03-14T16:13:47.472474","exception":false,"start_time":"2023-03-14T16:13:47.468618","status":"completed"},"tags":[]}},{"cell_type":"code","source":"path=\"/kaggle/input/tlvmc-parkinsons-freezing-gait-prediction/\"\n\ntrain_defog = glob.glob(path+'train/defog/**')\ntrain_tdcsfog = glob.glob(path+'train/tdcsfog/**')","metadata":{"papermill":{"duration":0.176032,"end_time":"2023-03-14T16:13:47.652426","exception":false,"start_time":"2023-03-14T16:13:47.476394","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2023-03-14T18:36:39.529718Z","iopub.execute_input":"2023-03-14T18:36:39.530058Z","iopub.status.idle":"2023-03-14T18:36:39.606336Z","shell.execute_reply.started":"2023-03-14T18:36:39.530026Z","shell.execute_reply":"2023-03-14T18:36:39.604908Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def get_data(f):\n    df = pd.read_csv(f)\n    df['Id'] = f.split('/')[-1].split('.')[0]\n    df['data_type'] = f.split('/')[-2]\n    return df\n#-----------------------------------\ndf_train_defog = pd.concat([get_data(f) for f in train_defog])\ndf_train_tdcsfog = pd.concat([get_data(f) for f in train_tdcsfog])\n#-----------------------------------\ndf_train=pd.concat([df_train_defog,df_train_tdcsfog])\n#-----------------------------------\nprint(df_train_defog.shape)\nprint(df_train_tdcsfog.shape)\n\nprint(df_train.shape)\n#-----------------------------------\ndf_train.fillna(0,inplace=True)\nprint(df_train.isnull().sum().sum())","metadata":{"papermill":{"duration":106.389399,"end_time":"2023-03-14T16:15:34.045662","exception":false,"start_time":"2023-03-14T16:13:47.656263","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2023-03-14T18:36:39.608097Z","iopub.execute_input":"2023-03-14T18:36:39.608444Z","iopub.status.idle":"2023-03-14T18:37:42.382944Z","shell.execute_reply.started":"2023-03-14T18:36:39.608408Z","shell.execute_reply":"2023-03-14T18:37:42.382127Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"features=['Time', 'AccV', 'AccML', 'AccAP']\nTargets=['StartHesitation', 'Turn' , 'Walking']","metadata":{"papermill":{"duration":0.015788,"end_time":"2023-03-14T16:15:34.065560","exception":false,"start_time":"2023-03-14T16:15:34.049772","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2023-03-14T18:37:42.385053Z","iopub.execute_input":"2023-03-14T18:37:42.385600Z","iopub.status.idle":"2023-03-14T18:37:42.389876Z","shell.execute_reply.started":"2023-03-14T18:37:42.385566Z","shell.execute_reply":"2023-03-14T18:37:42.388965Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X_train, X_valid, y_train, y_valid = model_selection.train_test_split(df_train[features], df_train[Targets], test_size=.30, random_state=42)\n","metadata":{"papermill":{"duration":9.419419,"end_time":"2023-03-14T16:15:43.489137","exception":false,"start_time":"2023-03-14T16:15:34.069718","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2023-03-14T18:37:42.391020Z","iopub.execute_input":"2023-03-14T18:37:42.391985Z","iopub.status.idle":"2023-03-14T18:37:49.944953Z","shell.execute_reply.started":"2023-03-14T18:37:42.391947Z","shell.execute_reply":"2023-03-14T18:37:49.943593Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"del df_train\ngc.collect()","metadata":{"papermill":{"duration":0.471515,"end_time":"2023-03-14T16:15:43.964938","exception":false,"start_time":"2023-03-14T16:15:43.493423","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2023-03-14T18:37:49.946860Z","iopub.execute_input":"2023-03-14T18:37:49.947330Z","iopub.status.idle":"2023-03-14T18:37:50.382754Z","shell.execute_reply.started":"2023-03-14T18:37:49.947278Z","shell.execute_reply":"2023-03-14T18:37:50.381178Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Fitting","metadata":{"papermill":{"duration":0.003923,"end_time":"2023-03-14T16:15:43.973163","exception":false,"start_time":"2023-03-14T16:15:43.969240","status":"completed"},"tags":[]}},{"cell_type":"code","source":"model_Reg = ensemble.RandomForestRegressor(n_estimators=200, max_depth=10, random_state=3)\nmodel_Reg.fit(X_train, y_train)","metadata":{"papermill":{"duration":0.015326,"end_time":"2023-03-14T16:15:44.124588","exception":false,"start_time":"2023-03-14T16:15:44.109262","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2023-03-14T18:37:50.384686Z","iopub.execute_input":"2023-03-14T18:37:50.385474Z","iopub.status.idle":"2023-03-14T18:39:23.033788Z","shell.execute_reply.started":"2023-03-14T18:37:50.385425Z","shell.execute_reply":"2023-03-14T18:39:23.032147Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Evaluation","metadata":{"papermill":{"duration":0.006845,"end_time":"2023-03-14T16:57:22.119280","exception":false,"start_time":"2023-03-14T16:57:22.112435","status":"completed"},"tags":[]}},{"cell_type":"code","source":"print(metrics.average_precision_score(y_valid, model_Reg.predict(X_valid).clip(0.0,1.0)))","metadata":{"papermill":{"duration":20.02674,"end_time":"2023-03-14T16:57:42.153041","exception":false,"start_time":"2023-03-14T16:57:22.126301","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2023-03-14T18:39:23.034962Z","iopub.status.idle":"2023-03-14T18:39:23.035740Z","shell.execute_reply.started":"2023-03-14T18:39:23.035443Z","shell.execute_reply":"2023-03-14T18:39:23.035474Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Submission","metadata":{"papermill":{"duration":0.004578,"end_time":"2023-03-14T16:57:42.162897","exception":false,"start_time":"2023-03-14T16:57:42.158319","status":"completed"},"tags":[]}},{"cell_type":"code","source":"sub = pd.read_csv(path+'sample_submission.csv')\ntest = glob.glob(path+'test/**/**')\n\nsub['t'] = 0\nsubmission = []\nfor f in test:\n    df = pd.read_csv(f)\n    df['Id'] = f.split('/')[-1].split('.')[0]\n    df = df.fillna(0).reset_index(drop=True)\n    res = pd.DataFrame(np.round(model_Reg.predict(df[features]),3), columns=['StartHesitation', 'Turn' , 'Walking'])\n    df = pd.concat([df,res], axis=1)\n    df['Id'] = df['Id'].astype(str) + '_' + df['Time'].astype(str)\n    submission.append(df[['Id','StartHesitation', 'Turn' , 'Walking']])\nsubmission = pd.concat(submission)\nsubmission = pd.merge(sub[['Id','t']], submission, how='left', on='Id').fillna(0.0)\nsubmission[['Id','StartHesitation', 'Turn' , 'Walking']].to_csv('submission.csv', index=False)","metadata":{"papermill":{"duration":2.830226,"end_time":"2023-03-14T16:57:44.997905","exception":false,"start_time":"2023-03-14T16:57:42.167679","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2023-03-14T18:39:23.037613Z","iopub.status.idle":"2023-03-14T18:39:23.038285Z","shell.execute_reply.started":"2023-03-14T18:39:23.038007Z","shell.execute_reply":"2023-03-14T18:39:23.038036Z"},"trusted":true},"execution_count":null,"outputs":[]}]}