{"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":"markdown","source":"# Introduction.\n\nHello community, I want to break the bad streak and finally give the world my first Kaggle notebook. I'm so excited because this project looks kind of odd, and I want to apply it to my daily life since I spend 8-12 hours using the internet.","metadata":{}},{"cell_type":"markdown","source":"# Index\n\n**0. Import functionalities.**\n\n   1. Import native libraries.\n\n**1. Import data.**\n\n   1. Data dictionary.  \n   2. Sample submission.  \n   3. Train data.  \n   4. Test data.\n       \n\n**2. Understanding \"sii\"**\n\n   1. Brief description of \"sii\" (by the competition data).  \n   2. Graphs of \"sii\".  \n   3. Conclusion.\n\n**3. Feature Engineering.**\n\n   1. Data cleansing.\n\n**4. Machine learning.**\n\n   1. Logistic Regession.\n   \n\n**5. Prediction.**\n\n   1. Submission.","metadata":{}},{"cell_type":"markdown","source":"# 0. Import functionalities.","metadata":{}},{"cell_type":"markdown","source":"## 0.1 Import native libraries.","metadata":{}},{"cell_type":"code","source":"import numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nimport seaborn as sns\nimport matplotlib.pyplot as plt\nimport warnings\nwarnings.filterwarnings(\"ignore\")","metadata":{"execution":{"iopub.status.busy":"2024-10-27T06:07:29.006997Z","iopub.execute_input":"2024-10-27T06:07:29.007801Z","iopub.status.idle":"2024-10-27T06:07:31.871749Z","shell.execute_reply.started":"2024-10-27T06:07:29.007746Z","shell.execute_reply":"2024-10-27T06:07:31.870619Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# 1. Import data.","metadata":{}},{"cell_type":"markdown","source":"## 1.1 Data dictionary. ","metadata":{}},{"cell_type":"code","source":"dictionary = pd.read_csv(\"/kaggle/input/child-mind-institute-problematic-internet-use/data_dictionary.csv\")\ndictionary.head()","metadata":{"execution":{"iopub.status.busy":"2024-10-27T06:07:31.874078Z","iopub.execute_input":"2024-10-27T06:07:31.874715Z","iopub.status.idle":"2024-10-27T06:07:31.911225Z","shell.execute_reply.started":"2024-10-27T06:07:31.874644Z","shell.execute_reply":"2024-10-27T06:07:31.909950Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# 1.2 Sample Submission.","metadata":{}},{"cell_type":"code","source":"Sample_Submission = pd.read_csv(\"/kaggle/input/child-mind-institute-problematic-internet-use/sample_submission.csv\")\nSample_Submission.head()","metadata":{"execution":{"iopub.status.busy":"2024-10-27T06:07:31.913542Z","iopub.execute_input":"2024-10-27T06:07:31.914025Z","iopub.status.idle":"2024-10-27T06:07:31.932215Z","shell.execute_reply.started":"2024-10-27T06:07:31.913973Z","shell.execute_reply":"2024-10-27T06:07:31.931172Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## 1.3 Train Data.","metadata":{}},{"cell_type":"code","source":"train = pd.read_csv(\"/kaggle/input/child-mind-institute-problematic-internet-use/train.csv\")\ntrain.head()","metadata":{"execution":{"iopub.status.busy":"2024-10-27T06:07:31.934550Z","iopub.execute_input":"2024-10-27T06:07:31.934928Z","iopub.status.idle":"2024-10-27T06:07:32.027674Z","shell.execute_reply.started":"2024-10-27T06:07:31.934891Z","shell.execute_reply":"2024-10-27T06:07:32.026470Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## 1.4 Test data.","metadata":{}},{"cell_type":"code","source":"test = pd.read_csv(\"/kaggle/input/child-mind-institute-problematic-internet-use/test.csv\")\ntest.head()","metadata":{"execution":{"iopub.status.busy":"2024-10-27T06:07:32.029189Z","iopub.execute_input":"2024-10-27T06:07:32.029607Z","iopub.status.idle":"2024-10-27T06:07:32.063414Z","shell.execute_reply.started":"2024-10-27T06:07:32.029563Z","shell.execute_reply":"2024-10-27T06:07:32.062220Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# 2. Understanding \"sii\".","metadata":{}},{"cell_type":"markdown","source":"## 2.1 Brief description of \"sii\" (Severity Impairment Index)\n\nThe host publish this note that indicate our objective.\n\n\"Note in particular the field PCIAT-PCIAT_Total. The target sii for this competition is derived from this field as described in the data dictionary: 0 for None, 1 for Mild, 2 for Moderate, and 3 for Severe. Additionally, each participant has been assigned a unique identifier id.\" - host","metadata":{}},{"cell_type":"markdown","source":"## 2.2 Graphs of \"sii\"","metadata":{}},{"cell_type":"code","source":"train.replace([np.inf, -np.inf, np.nan], 0, inplace=True)\nselected_data1 = train.copy()\nselected_data1 = selected_data1[['sii','PCIAT-PCIAT_Total']]\npromedio_por_categoria = selected_data1.groupby('sii')['PCIAT-PCIAT_Total'].mean()\npromedio_por_categoria.reset_index()\nsns.barplot(x='sii',y='PCIAT-PCIAT_Total',data=train,ci=None)","metadata":{"execution":{"iopub.status.busy":"2024-10-27T06:07:32.065409Z","iopub.execute_input":"2024-10-27T06:07:32.065898Z","iopub.status.idle":"2024-10-27T06:07:32.344419Z","shell.execute_reply.started":"2024-10-27T06:07:32.065846Z","shell.execute_reply":"2024-10-27T06:07:32.343066Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plt.figure(figsize=(20,10))\nsns.stripplot(x='sii', y='PCIAT-PCIAT_Total',data=train, hue='PreInt_EduHx-computerinternet_hoursday')","metadata":{"execution":{"iopub.status.busy":"2024-10-27T06:07:32.345852Z","iopub.execute_input":"2024-10-27T06:07:32.346316Z","iopub.status.idle":"2024-10-27T06:07:33.134874Z","shell.execute_reply.started":"2024-10-27T06:07:32.346268Z","shell.execute_reply":"2024-10-27T06:07:33.133670Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"We can see that a variable that is highly correlated with 'sii' is the number of hours of consumption","metadata":{}},{"cell_type":"markdown","source":"# 3. Feature Engeniering.","metadata":{}},{"cell_type":"code","source":"selected_train = train.copy()\nselected_train = selected_train[['PreInt_EduHx-computerinternet_hoursday','sii']]\n# selected_train = pd.get_dummies(selected_train, columns=[])\nselected_train['sii'] = selected_train.pop('sii')","metadata":{"execution":{"iopub.status.busy":"2024-10-27T06:07:33.136318Z","iopub.execute_input":"2024-10-27T06:07:33.136665Z","iopub.status.idle":"2024-10-27T06:07:33.147151Z","shell.execute_reply.started":"2024-10-27T06:07:33.136630Z","shell.execute_reply":"2024-10-27T06:07:33.145527Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"selected_test = test.copy()\nselected_test = selected_test[['PreInt_EduHx-computerinternet_hoursday']]\n# selected_train = pd.get_dummies(selected_test, columns=[])\nselected_test.fillna(0, inplace=True)\nselected_test","metadata":{"execution":{"iopub.status.busy":"2024-10-27T06:07:33.149081Z","iopub.execute_input":"2024-10-27T06:07:33.149837Z","iopub.status.idle":"2024-10-27T06:07:33.164299Z","shell.execute_reply.started":"2024-10-27T06:07:33.149712Z","shell.execute_reply":"2024-10-27T06:07:33.162827Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# 4. Machine Learning.","metadata":{}},{"cell_type":"code","source":"from sklearn.model_selection import train_test_split\n# from sklearn.preprocessing import MinMaxScaler\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.metrics import accuracy_score, classification_report","metadata":{"execution":{"iopub.status.busy":"2024-10-27T06:07:33.168455Z","iopub.execute_input":"2024-10-27T06:07:33.168945Z","iopub.status.idle":"2024-10-27T06:07:33.492286Z","shell.execute_reply.started":"2024-10-27T06:07:33.168895Z","shell.execute_reply":"2024-10-27T06:07:33.491154Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## 4.1 LogisticRegression.","metadata":{}},{"cell_type":"code","source":"X = selected_train.drop(columns=['sii'])  \ny = selected_train['sii']  \n\n# scaler = MinMaxScaler()\n# X = scaler.fit_transform(X)\n\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)\n\nmodel = LogisticRegression(random_state=42)\n\nmodel.fit(X_train, y_train)\n\ny_pred = model.predict(X_test)","metadata":{"execution":{"iopub.status.busy":"2024-10-27T06:07:33.493852Z","iopub.execute_input":"2024-10-27T06:07:33.494301Z","iopub.status.idle":"2024-10-27T06:07:33.539441Z","shell.execute_reply.started":"2024-10-27T06:07:33.494251Z","shell.execute_reply":"2024-10-27T06:07:33.538196Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"accuracy = accuracy_score(y_test, y_pred)\nreport = classification_report(y_test, y_pred)\n\nprint(f\"Accuracy: {accuracy}\")\nprint(\"Report:\")\nprint(report)","metadata":{"execution":{"iopub.status.busy":"2024-10-27T06:07:33.542391Z","iopub.execute_input":"2024-10-27T06:07:33.543487Z","iopub.status.idle":"2024-10-27T06:07:33.568898Z","shell.execute_reply.started":"2024-10-27T06:07:33.543433Z","shell.execute_reply":"2024-10-27T06:07:33.567733Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# 5. Prediction. ","metadata":{}},{"cell_type":"code","source":"predictions = model.predict(selected_test).astype(int)\n\npredictions_df = pd.DataFrame({\n    'id': test['id'],  \n    'sii': predictions  \n})\n\npredictions_df","metadata":{"execution":{"iopub.status.busy":"2024-10-27T06:07:33.570579Z","iopub.execute_input":"2024-10-27T06:07:33.571311Z","iopub.status.idle":"2024-10-27T06:07:33.590911Z","shell.execute_reply.started":"2024-10-27T06:07:33.571262Z","shell.execute_reply":"2024-10-27T06:07:33.589723Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"predictions_df.to_csv('/kaggle/working/submission.csv', index=False)","metadata":{"execution":{"iopub.status.busy":"2024-10-27T06:07:33.592605Z","iopub.execute_input":"2024-10-27T06:07:33.593332Z","iopub.status.idle":"2024-10-27T06:07:33.601587Z","shell.execute_reply.started":"2024-10-27T06:07:33.593284Z","shell.execute_reply":"2024-10-27T06:07:33.600339Z"},"trusted":true},"execution_count":null,"outputs":[]}]}