{"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"}],"dockerImageVersionId":30804,"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\n\ntrain_data = pd.read_csv('/kaggle/input/child-mind-institute-problematic-internet-use/train.csv', index_col='id')\ntest_data = pd.read_csv('/kaggle/input/child-mind-institute-problematic-internet-use/test.csv', index_col='id')\n\ntrain_data.shape, test_data.shape","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true,"execution":{"iopub.status.busy":"2024-12-11T08:38:11.398560Z","iopub.execute_input":"2024-12-11T08:38:11.399771Z","iopub.status.idle":"2024-12-11T08:38:11.916409Z","shell.execute_reply.started":"2024-12-11T08:38:11.399680Z","shell.execute_reply":"2024-12-11T08:38:11.915237Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df = train_data.copy()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-11T08:38:13.555002Z","iopub.execute_input":"2024-12-11T08:38:13.555510Z","iopub.status.idle":"2024-12-11T08:38:13.563530Z","shell.execute_reply.started":"2024-12-11T08:38:13.555459Z","shell.execute_reply":"2024-12-11T08:38:13.561983Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"features = train_data.columns[:-1]\n\nlen(features)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-11T08:38:14.945283Z","iopub.execute_input":"2024-12-11T08:38:14.945702Z","iopub.status.idle":"2024-12-11T08:38:14.952948Z","shell.execute_reply.started":"2024-12-11T08:38:14.945670Z","shell.execute_reply":"2024-12-11T08:38:14.951919Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"num_features = [f for f in features if train_data[f].dtype == 'float' or f == 'Basic_Demos-Age']\ncat_features = [f for f in features if f not in num_features]\n\nlen(num_features), len(cat_features)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-11T08:38:16.809059Z","iopub.execute_input":"2024-12-11T08:38:16.809777Z","iopub.status.idle":"2024-12-11T08:38:16.820046Z","shell.execute_reply.started":"2024-12-11T08:38:16.809739Z","shell.execute_reply":"2024-12-11T08:38:16.818912Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from sklearn.impute import KNNImputer\nimputer = KNNImputer(n_neighbors=2, weights='uniform')\n\nimputer.fit(train_data[num_features])\ntrain_data[num_features] = imputer.transform(train_data[num_features])\n\nfor col in cat_features:\n    train_data[col] = train_data[col].fillna('unknown')\n    train_data[col] = train_data[col].astype('category')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-11T08:38:19.021936Z","iopub.execute_input":"2024-12-11T08:38:19.022340Z","iopub.status.idle":"2024-12-11T08:38:26.865109Z","shell.execute_reply.started":"2024-12-11T08:38:19.022305Z","shell.execute_reply":"2024-12-11T08:38:26.863969Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"dummies = pd.get_dummies(train_data, columns=cat_features)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-11T08:39:44.799687Z","iopub.execute_input":"2024-12-11T08:39:44.800286Z","iopub.status.idle":"2024-12-11T08:39:44.828339Z","shell.execute_reply.started":"2024-12-11T08:39:44.800251Z","shell.execute_reply":"2024-12-11T08:39:44.827096Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"sii_train = dummies[dummies['sii'].notna()]\nsii_test = dummies[dummies['sii'].isna()].drop('sii', axis=1)\n\nsii_train.shape, sii_test.shape","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-11T08:39:47.105274Z","iopub.execute_input":"2024-12-11T08:39:47.105698Z","iopub.status.idle":"2024-12-11T08:39:47.119256Z","shell.execute_reply.started":"2024-12-11T08:39:47.105663Z","shell.execute_reply":"2024-12-11T08:39:47.117878Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"X_sii = sii_train.drop('sii', axis=1).copy()\ny_sii = sii_train['sii'].copy()\nXX_sii = sii_test.copy()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-11T08:40:20.117166Z","iopub.execute_input":"2024-12-11T08:40:20.117565Z","iopub.status.idle":"2024-12-11T08:40:20.128832Z","shell.execute_reply.started":"2024-12-11T08:40:20.117531Z","shell.execute_reply":"2024-12-11T08:40:20.127556Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from lightgbm import LGBMRegressor\n\nlgbm_params = {\n    'learning_rate': 0.046,\n    'max_depth': 12,\n    'num_leaves': 478,\n    'min_data_in_leaf': 13,\n    'feature_fraction': 0.893,\n    'bagging_fraction': 0.784,\n    'bagging_freq': 4,\n    'lambda_l1': 10,  \n    'lambda_l2': 0.01  \n}\n    \nmodel = LGBMRegressor(**lgbm_params, n_estimators=300, verbose=-1)\n\nmodel.fit(X_sii, y_sii)\n\npred = model.predict(XX_sii)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T15:54:59.780883Z","iopub.execute_input":"2024-12-05T15:54:59.781192Z","iopub.status.idle":"2024-12-05T15:55:00.960478Z","shell.execute_reply.started":"2024-12-05T15:54:59.781163Z","shell.execute_reply":"2024-12-05T15:55:00.959591Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"X_sii['sii'] = y_sii.copy()\nXX_sii['sii'] = np.round(pred.copy())","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T15:55:00.961772Z","iopub.execute_input":"2024-12-05T15:55:00.962421Z","iopub.status.idle":"2024-12-05T15:55:00.968682Z","shell.execute_reply.started":"2024-12-05T15:55:00.962373Z","shell.execute_reply":"2024-12-05T15:55:00.967607Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"ready_train_data = pd.concat([X_sii, XX_sii], axis=0) \nready_train_data.sort_index(axis=0, inplace=True)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T15:55:00.969787Z","iopub.execute_input":"2024-12-05T15:55:00.970090Z","iopub.status.idle":"2024-12-05T15:55:00.993871Z","shell.execute_reply.started":"2024-12-05T15:55:00.970051Z","shell.execute_reply":"2024-12-05T15:55:00.992806Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df['sii'] = ready_train_data['sii']","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T15:55:00.995145Z","iopub.execute_input":"2024-12-05T15:55:00.995454Z","iopub.status.idle":"2024-12-05T15:55:01.001984Z","shell.execute_reply.started":"2024-12-05T15:55:00.995425Z","shell.execute_reply":"2024-12-05T15:55:01.000981Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df['id'] = train_df.index","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T15:55:01.003435Z","iopub.execute_input":"2024-12-05T15:55:01.003745Z","iopub.status.idle":"2024-12-05T15:55:01.012462Z","shell.execute_reply.started":"2024-12-05T15:55:01.003695Z","shell.execute_reply":"2024-12-05T15:55:01.011460Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_df.to_csv('impute_train_data.csv', index=False)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-05T15:55:01.013893Z","iopub.execute_input":"2024-12-05T15:55:01.014596Z","iopub.status.idle":"2024-12-05T15:55:01.205058Z","shell.execute_reply.started":"2024-12-05T15:55:01.014546Z","shell.execute_reply":"2024-12-05T15:55:01.204119Z"}},"outputs":[],"execution_count":null}]}