{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":53666,"databundleVersionId":6589269,"sourceType":"competition"},{"sourceId":6507308,"sourceType":"datasetVersion","datasetId":3706667},{"sourceId":6963222,"sourceType":"datasetVersion","datasetId":4000101}],"dockerImageVersionId":30579,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nfrom imblearn.over_sampling import SMOTE","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2023-11-14T05:22:46.734705Z","iopub.execute_input":"2023-11-14T05:22:46.735435Z","iopub.status.idle":"2023-11-14T05:22:48.971665Z","shell.execute_reply.started":"2023-11-14T05:22:46.735390Z","shell.execute_reply":"2023-11-14T05:22:48.970674Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_series=pd.read_parquet('/kaggle/input/zzzs-lightweight-training-dataset-target/Zzzs_train.parquet', engine='pyarrow')","metadata":{"execution":{"iopub.status.busy":"2023-11-14T05:22:48.974619Z","iopub.execute_input":"2023-11-14T05:22:48.975554Z","iopub.status.idle":"2023-11-14T05:22:58.226624Z","shell.execute_reply.started":"2023-11-14T05:22:48.975509Z","shell.execute_reply":"2023-11-14T05:22:58.225479Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"%%time\n#memory reduction and type casting, \ntrain_series = train_series.sample(frac = 0.1)","metadata":{"execution":{"iopub.status.busy":"2023-11-14T05:22:58.227927Z","iopub.execute_input":"2023-11-14T05:22:58.228282Z","iopub.status.idle":"2023-11-14T05:22:59.739616Z","shell.execute_reply.started":"2023-11-14T05:22:58.228251Z","shell.execute_reply":"2023-11-14T05:22:59.738369Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"unique_series_ids = train_series['series_id'].unique()\nidDict = {series_id: index for index, series_id in enumerate(unique_series_ids)}\n\n# Replace series IDs with integer indices\ntrain_series['series_id'] = train_series['series_id'].map(idDict).astype('int8')\ntrain_series['awake'] = train_series['awake'].astype('int8')\ntrain_series['step'] = train_series['step'].astype('int32')\ntrain_series['timestamp'] = pd.to_datetime(train_series['timestamp']).apply(lambda t: t.tz_localize(None))\n\ntrain_series['hour'] = train_series['timestamp'].dt.hour\ntrain_series['commonSleepTime'] = train_series['hour'].apply(lambda x: 1 if x in [0, 20, 21, 22, 23] else 0)\ntrain_series['commonWakeTime'] = train_series['hour'].apply(lambda x: 1 if x in [5, 6, 7, 8, 9, 10, 11, 12, 13, 14] else 0)\n\ntrain_series['minute'] = train_series['timestamp'].dt.minute\n#Dec-Feb - Winter(1), March-May - Spring(2), June-Aug - Summer(3), Sept-Nov - Fall(4)\ntrain_series['season'] = train_series['timestamp'].dt.month % 12 // 3 + 1\ntrain_series['second'] = train_series['timestamp'].dt.second\n\n#Finding days of the week timestamp-month Monday(0)-Sunday(6)\ntrain_series['dayOfWeek'] = train_series['timestamp'].dt.dayofweek\ntrain_series['lateDays'] = train_series['dayOfWeek'].apply(lambda x: 1 if x in [3, 4, 5] else 0)\ntrain_series.drop(columns=['dayOfWeek', 'timestamp'], inplace = True)\n\nlittleMovementENMO = train_series[\"enmo\"].quantile(0.05)\nlowENMO = train_series[\"enmo\"].quantile(0.25)\nhighExertionENMO = train_series[\"enmo\"].quantile(0.75)\n\ntrain_series[\"veryLowENMO\"] = (train_series[\"enmo\"] <= littleMovementENMO).astype('int8')\ntrain_series[\"lowExertionENMO\"] = ((train_series[\"enmo\"] > littleMovementENMO) & (train_series[\"enmo\"] <= lowENMO)).astype('int8')\ntrain_series[\"moderateExertionENMO\"] = ((train_series[\"enmo\"] > lowENMO) & (train_series[\"enmo\"] <= highExertionENMO)).astype('int8')\ntrain_series[\"highExertionENMO\"] = (train_series[\"enmo\"] > highExertionENMO).astype('int8')\n\ntrain_series['wakefulZAngle'] = ((train_series['anglez'] >= -30) & (train_series['anglez'] <= 30)).astype('int8')","metadata":{"execution":{"iopub.status.busy":"2023-11-14T05:22:59.742358Z","iopub.execute_input":"2023-11-14T05:22:59.742868Z","iopub.status.idle":"2023-11-14T05:23:21.878549Z","shell.execute_reply.started":"2023-11-14T05:22:59.742826Z","shell.execute_reply":"2023-11-14T05:23:21.877713Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X = train_series[['series_id', 'step', 'anglez','enmo','hour', 'commonSleepTime','commonWakeTime','minute','second','season', 'lateDays', 'veryLowENMO', 'lowExertionENMO', 'moderateExertionENMO', 'highExertionENMO', 'wakefulZAngle']]\nY = train_series['awake']\nX, Y = SMOTE(random_state=42).fit_resample(X, Y)","metadata":{"execution":{"iopub.status.busy":"2023-11-14T05:23:21.879741Z","iopub.execute_input":"2023-11-14T05:23:21.880261Z","iopub.status.idle":"2023-11-14T05:30:30.011934Z","shell.execute_reply.started":"2023-11-14T05:23:21.880232Z","shell.execute_reply":"2023-11-14T05:30:30.010655Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X.to_csv('training_data.csv', index=False)\nY.to_csv('training_results.csv', index=False)","metadata":{"execution":{"iopub.status.busy":"2023-11-14T05:39:03.956420Z","iopub.execute_input":"2023-11-14T05:39:03.956796Z","iopub.status.idle":"2023-11-14T05:39:15.106685Z","shell.execute_reply.started":"2023-11-14T05:39:03.956766Z","shell.execute_reply":"2023-11-14T05:39:15.105709Z"},"trusted":true},"execution_count":null,"outputs":[]}]}