{"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":30786,"isInternetEnabled":false,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"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 numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\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","collapsed":true,"jupyter":{"outputs_hidden":true},"trusted":true,"execution":{"iopub.status.busy":"2024-11-08T16:05:55.994082Z","iopub.execute_input":"2024-11-08T16:05:55.994581Z","iopub.status.idle":"2024-11-08T16:05:57.296247Z","shell.execute_reply.started":"2024-11-08T16:05:55.994532Z","shell.execute_reply":"2024-11-08T16:05:57.294750Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"pd.set_option('display.max_columns', None)\npd.set_option('display.max_rows', None)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-11-08T16:05:59.002596Z","iopub.execute_input":"2024-11-08T16:05:59.003050Z","iopub.status.idle":"2024-11-08T16:05:59.008893Z","shell.execute_reply.started":"2024-11-08T16:05:59.003008Z","shell.execute_reply":"2024-11-08T16:05:59.007493Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"df_treinamento = pd.read_csv(\"/kaggle/input/child-mind-institute-problematic-internet-use/train.csv\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-11-08T16:06:09.074135Z","iopub.execute_input":"2024-11-08T16:06:09.074569Z","iopub.status.idle":"2024-11-08T16:06:09.122451Z","shell.execute_reply.started":"2024-11-08T16:06:09.074533Z","shell.execute_reply":"2024-11-08T16:06:09.121293Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"df = df_treinamento[df_treinamento[\"Basic_Demos-Age\"] < 16]","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-11-08T16:06:10.642019Z","iopub.execute_input":"2024-11-08T16:06:10.642463Z","iopub.status.idle":"2024-11-08T16:06:10.651058Z","shell.execute_reply.started":"2024-11-08T16:06:10.642420Z","shell.execute_reply":"2024-11-08T16:06:10.649542Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"df[df[\"Basic_Demos-Age\"] == 22]","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-11-08T16:06:13.271661Z","iopub.execute_input":"2024-11-08T16:06:13.272131Z","iopub.status.idle":"2024-11-08T16:06:13.297878Z","shell.execute_reply.started":"2024-11-08T16:06:13.272088Z","shell.execute_reply":"2024-11-08T16:06:13.296520Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from sklearn.impute import SimpleImputer\nfrom sklearn.preprocessing import StandardScaler ,LabelEncoder\nfrom sklearn.model_selection import train_test_split , cross_val_score\nfrom sklearn.impute import KNNImputer\n\ndf = df.dropna(subset=[\"sii\"])\n\nnumeric_cols = df.select_dtypes(include='number').columns\ndf = df.groupby(\"Basic_Demos-Age\")[numeric_cols].apply(lambda group: group.fillna(group.median())).reset_index(drop=True)\n\nrelevant_features = [\n    'Basic_Demos-Age', 'Basic_Demos-Sex', 'Physical-BMI', 'Physical-Height', 'Physical-Weight',\n    'Physical-Waist_Circumference', 'Physical-Diastolic_BP', 'Physical-HeartRate', 'Physical-Systolic_BP',\n    'Fitness_Endurance-Max_Stage', 'Fitness_Endurance-Time_Mins', 'Fitness_Endurance-Time_Sec',\n    'FGC-FGC_CU',  'FGC-FGC_PU', 'FGC-FGC_SRL', 'FGC-FGC_SRR', 'FGC-FGC_TL',\n    'BIA-BIA_Activity_Level_num', 'BIA-BIA_BMC', 'BIA-BIA_BMI', 'BIA-BIA_BMR', 'BIA-BIA_DEE',\n    'BIA-BIA_ECW', 'BIA-BIA_FFM', 'BIA-BIA_FFMI', 'BIA-BIA_FMI', 'BIA-BIA_Fat', 'BIA-BIA_Frame_num',\n    'BIA-BIA_ICW', 'BIA-BIA_LDM', 'BIA-BIA_LST', 'BIA-BIA_SMM', 'BIA-BIA_TBW', 'SDS-SDS_Total_Raw', 'SDS-SDS_Total_T'\n]\n\nX = df[relevant_features]\ny = df[\"sii\"]\n\n\ncols_to_impute = ['Fitness_Endurance-Max_Stage', 'Fitness_Endurance-Time_Mins', 'Fitness_Endurance-Time_Sec']\nX_impute_subset = X[cols_to_impute]\n\nknn_imputer = KNNImputer(n_neighbors=5)\n\nX_imputed_subset = pd.DataFrame(knn_imputer.fit_transform(X_impute_subset), columns=cols_to_impute)\n\nX[cols_to_impute] = X_imputed_subset\n\n#imputer = SimpleImputer(strategy = 'median')\n#X = pd.DataFrame(imputer.fit_transform(X) , columns = X.columns)\n\n#le = LabelEncoder()\n#X['Basic_Demos-Sex'] = le.fit_transform(X['Basic_Demos-Sex'])","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-11-08T16:06:15.844057Z","iopub.execute_input":"2024-11-08T16:06:15.844528Z","iopub.status.idle":"2024-11-08T16:06:16.242579Z","shell.execute_reply.started":"2024-11-08T16:06:15.844486Z","shell.execute_reply":"2024-11-08T16:06:16.241274Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"X.isnull().sum()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-11-08T16:06:21.347087Z","iopub.execute_input":"2024-11-08T16:06:21.347947Z","iopub.status.idle":"2024-11-08T16:06:21.357687Z","shell.execute_reply.started":"2024-11-08T16:06:21.347902Z","shell.execute_reply":"2024-11-08T16:06:21.356586Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from sklearn.ensemble import RandomForestClassifier , GradientBoostingClassifier , AdaBoostClassifier\nfrom sklearn.metrics import accuracy_score\n\nX_train , X_test , y_train , y_test = train_test_split(X , y , test_size= 0.2 , random_state = 42)\n\nmodel = GradientBoostingClassifier(n_estimators = 100 , random_state = 42 , learning_rate = 0.1 , max_depth=3)\nmodel.fit(X_train , y_train)\npredictions = model.predict(X_test)\naccuracy = accuracy_score(y_test , predictions)\nprint(f'{model} Accuracy: {accuracy:.2f}')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-11-08T16:06:26.940210Z","iopub.execute_input":"2024-11-08T16:06:26.940647Z","iopub.status.idle":"2024-11-08T16:06:32.502847Z","shell.execute_reply.started":"2024-11-08T16:06:26.940606Z","shell.execute_reply":"2024-11-08T16:06:32.501534Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import pandas as pd\n\n\ndf_test = pd.read_csv(\"/kaggle/input/child-mind-institute-problematic-internet-use/test.csv\")\ndf_treinamento['Basic_Demos-Age'] = pd.to_numeric(df_treinamento['Basic_Demos-Age'], errors='coerce')\n\n# Calcula as médias de cada coluna numérica para cada idade no DataFrame de treino\nmean_values_by_age = df_treinamento.groupby('Basic_Demos-Age').median(numeric_only=True)\n\n# Função para preencher valores nulos no teste usando as médias calculadas no treino\ndef fill_test_with_train_means(row):\n    age = row['Basic_Demos-Age']\n    if age in mean_values_by_age.index:\n        # Preenche os valores nulos nas colunas numéricas com as médias do treino\n        row = row.fillna(mean_values_by_age.loc[age])\n    return row\n\n# Aplica a função ao DataFrame de teste\ndf_test = df_test.apply(fill_test_with_train_means, axis=1)\n\n\n\nX_teste_imputer = df_test[relevant_features]\nX_impute_subset = X[cols_to_impute]\nknn_imputer = KNNImputer(n_neighbors=5)\nX_imputed_subset = pd.DataFrame(knn_imputer.fit_transform(X_impute_subset), columns=cols_to_impute)\nX_teste_imputer[cols_to_impute] = X_imputed_subset\n\n\n\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-11-08T16:15:45.102989Z","iopub.execute_input":"2024-11-08T16:15:45.103481Z","iopub.status.idle":"2024-11-08T16:15:45.156574Z","shell.execute_reply.started":"2024-11-08T16:15:45.103431Z","shell.execute_reply":"2024-11-08T16:15:45.155268Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"sii_pred = model.predict(X_teste_imputer)\n    \nsii_pred\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-11-08T16:15:54.539980Z","iopub.execute_input":"2024-11-08T16:15:54.540473Z","iopub.status.idle":"2024-11-08T16:15:54.555981Z","shell.execute_reply.started":"2024-11-08T16:15:54.540426Z","shell.execute_reply":"2024-11-08T16:15:54.554389Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"teste = pd.read_csv(\"/kaggle/input/child-mind-institute-problematic-internet-use/test.csv\")\nsubmissão = pd.DataFrame({\"id\" : teste['id'],\n                         \"sii\" : sii_pred})","metadata":{"execution":{"iopub.status.busy":"2024-11-08T16:58:33.917976Z","iopub.execute_input":"2024-11-08T16:58:33.918417Z","iopub.status.idle":"2024-11-08T16:58:33.930925Z","shell.execute_reply.started":"2024-11-08T16:58:33.918377Z","shell.execute_reply":"2024-11-08T16:58:33.929541Z"},"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"submissão","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-11-08T16:41:33.941571Z","iopub.execute_input":"2024-11-08T16:41:33.942030Z","iopub.status.idle":"2024-11-08T16:41:33.956040Z","shell.execute_reply.started":"2024-11-08T16:41:33.941986Z","shell.execute_reply":"2024-11-08T16:41:33.954523Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"submissão.to_csv(\"submission.csv\" , index=False)","metadata":{"execution":{"iopub.status.busy":"2024-11-08T16:16:06.869129Z","iopub.execute_input":"2024-11-08T16:16:06.870108Z","iopub.status.idle":"2024-11-08T16:16:06.878374Z","shell.execute_reply.started":"2024-11-08T16:16:06.870062Z","shell.execute_reply":"2024-11-08T16:16:06.877181Z"},"trusted":true},"outputs":[],"execution_count":null}]}