{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.14","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":81933,"databundleVersionId":9643020,"sourceType":"competition"},{"sourceId":9743615,"sourceType":"datasetVersion","datasetId":5964495},{"sourceId":9752506,"sourceType":"datasetVersion","datasetId":5964543}],"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import pandas as pd\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport seaborn as sns\nimport os\nfrom tqdm import tqdm","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2024-10-29T09:50:59.049384Z","iopub.execute_input":"2024-10-29T09:50:59.049856Z","iopub.status.idle":"2024-10-29T09:51:02.355018Z","shell.execute_reply.started":"2024-10-29T09:50:59.049806Z","shell.execute_reply":"2024-10-29T09:51:02.353848Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"test_data = pd.read_csv('/kaggle/input/child-mind-institute-problematic-internet-use/test.csv')\ndata_dict = pd.read_csv('/kaggle/input/child-mind-institute-problematic-internet-use/data_dictionary.csv')","metadata":{"execution":{"iopub.status.busy":"2024-10-29T09:51:02.357647Z","iopub.execute_input":"2024-10-29T09:51:02.358229Z","iopub.status.idle":"2024-10-29T09:51:02.389419Z","shell.execute_reply.started":"2024-10-29T09:51:02.358182Z","shell.execute_reply":"2024-10-29T09:51:02.388107Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"mapper_data = data_dict[~data_dict['Value Labels'].isna()]\nmapper = {}\nfor i,row in mapper_data.iterrows():\n    if pd.isna(row['Values']):\n        continue\n    vals = row['Values'].split(',')\n    labels = row['Value Labels'].split(',')\n    labels = [i.split('=')[-1] for i in labels]\n    mapper[row['Field']] = {int(val):lab for val,lab in zip(vals,labels)}","metadata":{"execution":{"iopub.status.busy":"2024-10-29T09:51:02.391021Z","iopub.execute_input":"2024-10-29T09:51:02.391494Z","iopub.status.idle":"2024-10-29T09:51:02.41293Z","shell.execute_reply.started":"2024-10-29T09:51:02.391449Z","shell.execute_reply":"2024-10-29T09:51:02.411527Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"for key,val in mapper.items():\n    try:\n        test_data[key] = test_data[key].apply(lambda x: val[x] if not pd.isna(x) else None)\n    except KeyError:\n        pass","metadata":{"execution":{"iopub.status.busy":"2024-10-29T09:51:17.022619Z","iopub.execute_input":"2024-10-29T09:51:17.023171Z","iopub.status.idle":"2024-10-29T09:51:17.038133Z","shell.execute_reply.started":"2024-10-29T09:51:17.023114Z","shell.execute_reply":"2024-10-29T09:51:17.036892Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"serieses = os.listdir('/kaggle/input/child-mind-institute-problematic-internet-use/series_test.parquet')\nserieses_aggs = pd.DataFrame()\nfor series in tqdm(serieses):\n    files = os.listdir(os.path.join('/kaggle/input/child-mind-institute-problematic-internet-use/series_test.parquet',series))\n    data = pd.DataFrame()\n    id = series.replace(\"id=\",\"\").strip()\n    for i in files:\n        tmp = pd.read_parquet(os.path.join('/kaggle/input/child-mind-institute-problematic-internet-use/series_test.parquet',series,i))\n        data = pd.concat([data,tmp])\n    data['time_of_day_hour'] = pd.to_datetime(data['time_of_day']).dt.hour\n    data['time_of_day_minute'] = pd.to_datetime(data['time_of_day']).dt.minute\n    data['time_of_day_second'] = pd.to_datetime(data['time_of_day']).dt.second\n    data['time_of_day_second_sin'] = data['time_of_day_second'].apply(lambda x:np.sin(x/30))\n    data['time_of_day_second_cos'] = data['time_of_day_second'].apply(lambda x:np.cos(x/30))\n    data['time_of_day_minute_sin'] = data['time_of_day_minute'].apply(lambda x:np.sin(x/30))\n    data['time_of_day_minute_cos'] = data['time_of_day_minute'].apply(lambda x:np.cos(x/30))\n    data['time_of_day_hour_sin'] = data['time_of_day_hour'].apply(lambda x:np.sin(x/12))\n    data['time_of_day_hour_cos'] = data['time_of_day_hour'].apply(lambda x:np.cos(x/12))\n    data['weekday_sin'] = data['weekday'].apply(lambda x:np.sin(x/3.5))\n    data['weekday_cos'] = data['weekday'].apply(lambda x:np.cos(x/3.5))\n    data['quarter_sin'] = data['quarter'].apply(lambda x:np.sin(x/2))\n    data['quarter_cos'] = data['quarter'].apply(lambda x:np.cos(x/2))\n    data = data.drop(columns=['time_of_day','time_of_day_hour','time_of_day_minute','time_of_day_second','step','weekday','quarter'])\n    mean = data.mean()\n    mean.index = [i+\"_mean\" for i in mean.index]\n    std = data.std()\n    std.index = [i+\"_std\" for i in std.index]\n    to_concat = pd.concat([mean,std])\n    to_concat['id'] = id\n    serieses_aggs = pd.concat([serieses_aggs,to_concat],axis=1)\nserieses_aggs = serieses_aggs.T.reset_index()\nserieses_aggs = serieses_aggs.drop(columns='index')","metadata":{"execution":{"iopub.status.busy":"2024-10-29T09:51:18.886866Z","iopub.execute_input":"2024-10-29T09:51:18.888068Z","iopub.status.idle":"2024-10-29T09:51:31.35739Z","shell.execute_reply.started":"2024-10-29T09:51:18.887979Z","shell.execute_reply":"2024-10-29T09:51:31.355543Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"test_data = test_data.merge(serieses_aggs,on='id',how='left')","metadata":{"execution":{"iopub.status.busy":"2024-10-29T09:51:31.36022Z","iopub.execute_input":"2024-10-29T09:51:31.360688Z","iopub.status.idle":"2024-10-29T09:51:31.379658Z","shell.execute_reply.started":"2024-10-29T09:51:31.36064Z","shell.execute_reply":"2024-10-29T09:51:31.377831Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"!pip install -U numpy==2.0.1","metadata":{"execution":{"iopub.status.busy":"2024-10-29T09:51:59.86122Z","iopub.execute_input":"2024-10-29T09:51:59.861736Z","iopub.status.idle":"2024-10-29T09:52:20.531426Z","shell.execute_reply.started":"2024-10-29T09:51:59.861688Z","shell.execute_reply":"2024-10-29T09:52:20.529644Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import pickle\n# with open(\"/kaggle/input/predict-plus-model/child_model_v2_tuner.pkl\",'rb') as f: \n#     tuner = pickle.load(f)\nwith open(\"/kaggle/input/predict-plus-model/child_model_v2_model.pkl\",'rb') as f: \n    model = pickle.load(f)","metadata":{"execution":{"iopub.status.busy":"2024-10-29T09:53:42.375847Z","iopub.execute_input":"2024-10-29T09:53:42.376456Z","iopub.status.idle":"2024-10-29T09:53:42.388886Z","shell.execute_reply.started":"2024-10-29T09:53:42.3764Z","shell.execute_reply":"2024-10-29T09:53:42.387502Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"model","metadata":{"execution":{"iopub.status.busy":"2024-10-29T09:53:46.556992Z","iopub.execute_input":"2024-10-29T09:53:46.557527Z","iopub.status.idle":"2024-10-29T09:53:46.572388Z","shell.execute_reply.started":"2024-10-29T09:53:46.55748Z","shell.execute_reply":"2024-10-29T09:53:46.570688Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"%cd /kaggle/input/predict-plus-tool","metadata":{"execution":{"iopub.status.busy":"2024-10-29T09:52:32.717524Z","iopub.execute_input":"2024-10-29T09:52:32.717978Z","iopub.status.idle":"2024-10-29T09:52:32.72786Z","shell.execute_reply.started":"2024-10-29T09:52:32.717933Z","shell.execute_reply":"2024-10-29T09:52:32.726139Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from nelc_autoML import Module","metadata":{"execution":{"iopub.status.busy":"2024-10-29T09:52:34.838476Z","iopub.execute_input":"2024-10-29T09:52:34.83897Z","iopub.status.idle":"2024-10-29T09:52:35.147876Z","shell.execute_reply.started":"2024-10-29T09:52:34.838923Z","shell.execute_reply":"2024-10-29T09:52:35.146484Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"tuner.model = model","metadata":{"execution":{"iopub.status.busy":"2024-10-29T09:52:36.681288Z","iopub.execute_input":"2024-10-29T09:52:36.681755Z","iopub.status.idle":"2024-10-29T09:52:36.749697Z","shell.execute_reply.started":"2024-10-29T09:52:36.681711Z","shell.execute_reply":"2024-10-29T09:52:36.745476Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"trained_model = Module(tuner)\nprediction = trained_model.predict(test_data)","metadata":{"execution":{"iopub.status.busy":"2024-10-29T09:47:46.346056Z","iopub.status.idle":"2024-10-29T09:47:46.346606Z","shell.execute_reply.started":"2024-10-29T09:47:46.346319Z","shell.execute_reply":"2024-10-29T09:47:46.346346Z"},"trusted":true},"outputs":[],"execution_count":null}]}