{"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\n#for 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","trusted":true,"execution":{"iopub.status.busy":"2024-12-07T01:22:05.866421Z","iopub.execute_input":"2024-12-07T01:22:05.867095Z","iopub.status.idle":"2024-12-07T01:22:05.874030Z","shell.execute_reply.started":"2024-12-07T01:22:05.867036Z","shell.execute_reply":"2024-12-07T01:22:05.872422Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from sklearn.decomposition import PCA\nfrom sklearn.ensemble import RandomForestClassifier\nimport matplotlib.pyplot as plt\nimport seaborn as sns\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.metrics import confusion_matrix\n\ndf = pd.read_csv('/kaggle/input/child-mind-institute-problematic-internet-use/train.csv')\ndf_test = pd.read_csv('/kaggle/input/child-mind-institute-problematic-internet-use/test.csv')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T01:22:09.507532Z","iopub.execute_input":"2024-12-07T01:22:09.508639Z","iopub.status.idle":"2024-12-07T01:22:10.973626Z","shell.execute_reply.started":"2024-12-07T01:22:09.508582Z","shell.execute_reply":"2024-12-07T01:22:10.972493Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# Analisis Exploratorio","metadata":{}},{"cell_type":"code","source":"df.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T01:22:14.325569Z","iopub.execute_input":"2024-12-07T01:22:14.325998Z","iopub.status.idle":"2024-12-07T01:22:14.375534Z","shell.execute_reply.started":"2024-12-07T01:22:14.325963Z","shell.execute_reply":"2024-12-07T01:22:14.374287Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"df.info()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T01:22:17.346735Z","iopub.execute_input":"2024-12-07T01:22:17.347298Z","iopub.status.idle":"2024-12-07T01:22:17.379601Z","shell.execute_reply.started":"2024-12-07T01:22:17.347240Z","shell.execute_reply":"2024-12-07T01:22:17.378179Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"df.describe()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T01:22:21.035591Z","iopub.execute_input":"2024-12-07T01:22:21.035990Z","iopub.status.idle":"2024-12-07T01:22:21.193661Z","shell.execute_reply.started":"2024-12-07T01:22:21.035958Z","shell.execute_reply":"2024-12-07T01:22:21.192393Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"#Datos cualitativos\n#Todos los datos que no son numericos aparte del id son sobre las\n# estaciones en que se hicieron ciertas mediciones.\ntabla_cuali = ['id', 'Basic_Demos-Enroll_Season', 'CGAS-Season', \n               'Physical-Season', 'Fitness_Endurance-Season', \n               'FGC-Season', 'BIA-Season', 'PAQ_A-Season', \n               'PAQ_C-Season', 'PCIAT-Season', 'SDS-Season', \n               'PreInt_EduHx-Season']\n\nprint(df[tabla_cuali].head())","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T01:22:27.306667Z","iopub.execute_input":"2024-12-07T01:22:27.307847Z","iopub.status.idle":"2024-12-07T01:22:27.322269Z","shell.execute_reply.started":"2024-12-07T01:22:27.307788Z","shell.execute_reply":"2024-12-07T01:22:27.320754Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# 0 - Masculino, 1 - Femenino\nprint(df['Basic_Demos-Sex'].value_counts())","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T01:22:34.465926Z","iopub.execute_input":"2024-12-07T01:22:34.466285Z","iopub.status.idle":"2024-12-07T01:22:34.475884Z","shell.execute_reply.started":"2024-12-07T01:22:34.466255Z","shell.execute_reply":"2024-12-07T01:22:34.474617Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# 0 - None, 1 - Mild, 2 - Moderate, and - Severe\nprint(df['sii'].value_counts())","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T01:22:36.845973Z","iopub.execute_input":"2024-12-07T01:22:36.847026Z","iopub.status.idle":"2024-12-07T01:22:36.856495Z","shell.execute_reply.started":"2024-12-07T01:22:36.846984Z","shell.execute_reply":"2024-12-07T01:22:36.854611Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# Preprocesamiento de Datos\nDada la cantidad de informacion que no se tiene, se eliminaran las columnas que no cumplan con un criterio, con al menos 40% de los datos. Ademas de eliminar aquellos rengllones que no tengan el resultado objetivo.","metadata":{}},{"cell_type":"code","source":"#Preprocesamiento rapido\n# Eliminar los datos que no tengan el objetivo definido\npseudo_train = df.copy()\npseudo_train = pseudo_train.dropna(subset=['sii'])\npseudo_train.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T00:19:50.520299Z","iopub.execute_input":"2024-12-07T00:19:50.520902Z","iopub.status.idle":"2024-12-07T00:19:50.563297Z","shell.execute_reply.started":"2024-12-07T00:19:50.520838Z","shell.execute_reply":"2024-12-07T00:19:50.561944Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"pseudo_train.info()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T00:19:50.565100Z","iopub.execute_input":"2024-12-07T00:19:50.565609Z","iopub.status.idle":"2024-12-07T00:19:50.588867Z","shell.execute_reply.started":"2024-12-07T00:19:50.565533Z","shell.execute_reply":"2024-12-07T00:19:50.587536Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"criterio = 0.4 * len(df)\ncolumnas = pseudo_train.columns[pseudo_train.isnull().sum() < criterio]\n\n#pseudo_train = df.copy()\npseudo_train = pseudo_train[columnas]\npseudo_train = pseudo_train.fillna(0)\n\npseudo_train.info()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T00:19:50.590475Z","iopub.execute_input":"2024-12-07T00:19:50.590992Z","iopub.status.idle":"2024-12-07T00:19:50.626743Z","shell.execute_reply.started":"2024-12-07T00:19:50.590939Z","shell.execute_reply":"2024-12-07T00:19:50.625413Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"tabla_cuali = ['Basic_Demos-Enroll_Season', 'CGAS-Season', \n               'Physical-Season', 'Fitness_Endurance-Season', \n               'FGC-Season','BIA-Season',\n               'PAQ_C-Season', 'PCIAT-Season',\n               'SDS-Season', 'PreInt_EduHx-Season']\ncolumnas_num = ['Basic_Demos-Age', 'Basic_Demos-Sex', 'CGAS-CGAS_Score', \n                'Physical-BMI', 'Physical-Height', 'Physical-Weight',\n               'Physical-Diastolic_BP', 'Physical-HeartRate', 'Physical-Systolic_BP', \n                'PCIAT-PCIAT_01',\n                'PCIAT-PCIAT_02', 'PCIAT-PCIAT_03', 'PCIAT-PCIAT_04', 'PCIAT-PCIAT_05',\n                'PCIAT-PCIAT_06', 'PCIAT-PCIAT_07', 'PCIAT-PCIAT_08', 'PCIAT-PCIAT_09',\n                'PCIAT-PCIAT_10', 'PCIAT-PCIAT_11', 'PCIAT-PCIAT_12', 'PCIAT-PCIAT_13',\n                'PCIAT-PCIAT_14', 'PCIAT-PCIAT_15', 'PCIAT-PCIAT_16', 'PCIAT-PCIAT_17',\n                'PCIAT-PCIAT_18', 'PCIAT-PCIAT_19', 'PCIAT-PCIAT_20', 'PCIAT-PCIAT_Total',\n                'SDS-SDS_Total_Raw', 'SDS-SDS_Total_T',\n       'PreInt_EduHx-computerinternet_hoursday', 'sii', 'id']\n\n# Usamos solamente las columnas numericas para limpiar\n#pseudo_train = pseudo_train[columnas_num]","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T00:19:50.628255Z","iopub.execute_input":"2024-12-07T00:19:50.628661Z","iopub.status.idle":"2024-12-07T00:19:50.636572Z","shell.execute_reply.started":"2024-12-07T00:19:50.628621Z","shell.execute_reply":"2024-12-07T00:19:50.635500Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# Visualizacion de Patrones","metadata":{}},{"cell_type":"code","source":"plt.figure(figsize=(16, 24))\nn_col = 2\nn_rows = (len(tabla_cuali) + n_col - 1)\n\nfor i, col in enumerate(tabla_cuali, 1):\n    plt.subplot(n_rows, n_col, i)\n    sns.boxplot(x=col, y='sii', data=pseudo_train)\n    plt.xticks(rotation=45)\n    plt.title(f\"'sii' vs {col}\")\nplt.tight_layout()\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T00:26:43.258591Z","iopub.execute_input":"2024-12-07T00:26:43.259102Z","iopub.status.idle":"2024-12-07T00:26:45.209230Z","shell.execute_reply.started":"2024-12-07T00:26:43.259061Z","shell.execute_reply":"2024-12-07T00:26:45.208165Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Con esto, cambiaremos las temporadas a numeros\ntemporadas = {'Spring': 1, 'Summer': 2, 'Fall': 3, 'Winter': 4}\n\nfor col in tabla_cuali:\n    if col in pseudo_train.columns:\n        pseudo_train[col] = pseudo_train[col].replace(temporadas)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T00:26:56.048571Z","iopub.execute_input":"2024-12-07T00:26:56.049027Z","iopub.status.idle":"2024-12-07T00:26:56.081287Z","shell.execute_reply.started":"2024-12-07T00:26:56.048987Z","shell.execute_reply":"2024-12-07T00:26:56.080008Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"pseudo_train[tabla_cuali].head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T00:27:11.428386Z","iopub.execute_input":"2024-12-07T00:27:11.428856Z","iopub.status.idle":"2024-12-07T00:27:11.444951Z","shell.execute_reply.started":"2024-12-07T00:27:11.428815Z","shell.execute_reply":"2024-12-07T00:27:11.443798Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plots = 5\nrenglones = (len(columnas_num) + plots - 1) // plots\n\nplt.figure(figsize=(20, 4 * renglones))\nfor i, col in enumerate(columnas_num):\n    plt.subplot(renglones, plots, i + 1)\n    sns.boxplot(x='sii', y=col, data=pseudo_train)\n    plt.title(col)\n    plt.tight_layout()\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T00:27:15.398277Z","iopub.execute_input":"2024-12-07T00:27:15.398741Z","iopub.status.idle":"2024-12-07T00:28:20.100412Z","shell.execute_reply.started":"2024-12-07T00:27:15.398694Z","shell.execute_reply":"2024-12-07T00:28:20.099104Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"pseudo_train_no_id = pseudo_train.copy()\npseudo_train_no_id = pseudo_train_no_id.drop(columns=['id'], errors='ignore')\ncorrelacion = pseudo_train_no_id.corr()\nplt.figure(figsize=(30, 30))\nsns.heatmap(correlacion, annot=True, fmt='.1f', cmap='coolwarm', square=True)\nplt.title('Tabla de Correlacion')\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T00:28:25.238532Z","iopub.execute_input":"2024-12-07T00:28:25.238955Z","iopub.status.idle":"2024-12-07T00:28:34.873189Z","shell.execute_reply.started":"2024-12-07T00:28:25.238920Z","shell.execute_reply":"2024-12-07T00:28:34.871527Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Como las columnas del test de validacion no son las mismas que el training\ndf_test.columns","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T00:28:43.215693Z","iopub.execute_input":"2024-12-07T00:28:43.216139Z","iopub.status.idle":"2024-12-07T00:28:43.223826Z","shell.execute_reply.started":"2024-12-07T00:28:43.216102Z","shell.execute_reply":"2024-12-07T00:28:43.222615Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# Problema\n### Para tener que predecir la medida del uso problematico de internet agrupado por 4 niveles diferentes, se entiende que es un problema de clasificacion ya que podemos tomar los niveles como clases y hay que clasificar a los participantes usando esta metrica.","metadata":{}},{"cell_type":"markdown","source":"# Baseline","metadata":{}},{"cell_type":"code","source":"# Se hara una interseccion sin id\ncolumnas_tt = pseudo_train.columns.intersection(df_test.columns)\nX = pseudo_train[columnas_tt].drop(columns=['id'])\ny = pseudo_train['sii']\n\n# Para realizar el split\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=1111)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T00:28:49.988562Z","iopub.execute_input":"2024-12-07T00:28:49.989633Z","iopub.status.idle":"2024-12-07T00:28:50.005384Z","shell.execute_reply.started":"2024-12-07T00:28:49.989584Z","shell.execute_reply":"2024-12-07T00:28:50.003751Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# Aplicaremos PCA para reducir la dimensionalidad\npca = PCA(n_components=0.8)\nX_train_pca = pca.fit_transform(X_train)\nX_test_pca = pca.transform(X_test)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T00:29:00.698898Z","iopub.execute_input":"2024-12-07T00:29:00.699296Z","iopub.status.idle":"2024-12-07T00:29:00.733524Z","shell.execute_reply.started":"2024-12-07T00:29:00.699264Z","shell.execute_reply":"2024-12-07T00:29:00.729989Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"pseudo_train.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T00:29:03.928168Z","iopub.execute_input":"2024-12-07T00:29:03.928530Z","iopub.status.idle":"2024-12-07T00:29:03.957418Z","shell.execute_reply.started":"2024-12-07T00:29:03.928498Z","shell.execute_reply":"2024-12-07T00:29:03.956192Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## Se utilizaron Bosques Aleatorios para hacer una clasificacion rapida e ir mejorando desde el resultado","metadata":{}},{"cell_type":"code","source":"model = RandomForestClassifier(random_state=1111)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T00:29:08.758595Z","iopub.execute_input":"2024-12-07T00:29:08.760156Z","iopub.status.idle":"2024-12-07T00:29:08.765872Z","shell.execute_reply.started":"2024-12-07T00:29:08.760089Z","shell.execute_reply":"2024-12-07T00:29:08.764654Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"### El resultado fue apenas mejor que un volado con 0.53 de accuracy","metadata":{}},{"cell_type":"markdown","source":"# Random Forest Classifier\nSe toma este modelo de ensamblador por el tipo de problema que se esta tratando de resolver y la cantidad de datos con los que se va a entrenar, al no ser tantos no habra problemas con el esfuerzo computacional. Se tuvieron en cuenta resultados de otros cursos y libretas para decidir por Bosques Aleatorios. \nPara mejorar el resultado de baseline, se volvera aplicar PCA pero ahora con datos normalizados y estandarizados con Standard Scaler, ademas se cambiaron los parametros por default del modelo.","metadata":{}},{"cell_type":"code","source":"from sklearn.preprocessing import StandardScaler\n\nscaler = StandardScaler()\nX_train_norm = scaler.fit_transform(X_train)\nX_test_norm = scaler.transform(X_test)\n\n# Aplicaremos PCA para reducir la dimensionalidad\npca = PCA(n_components=0.95)\nX_train_pca = pca.fit_transform(X_train_norm)\nX_test_pca = pca.transform(X_test_norm)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T00:29:17.028918Z","iopub.execute_input":"2024-12-07T00:29:17.030010Z","iopub.status.idle":"2024-12-07T00:29:17.259071Z","shell.execute_reply.started":"2024-12-07T00:29:17.029940Z","shell.execute_reply":"2024-12-07T00:29:17.252383Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"rf = RandomForestClassifier(n_estimators=100, random_state=1111, \n                           max_depth=8, min_samples_split=10,\n                           min_samples_leaf=4)\nrf.fit(X_train_pca, y_train)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T00:30:07.154498Z","iopub.execute_input":"2024-12-07T00:30:07.154963Z","iopub.status.idle":"2024-12-07T00:30:07.849263Z","shell.execute_reply.started":"2024-12-07T00:30:07.154924Z","shell.execute_reply":"2024-12-07T00:30:07.848122Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# Busqueda de Hiperparametros\nPara mejorar se usara RandomizedSearchCV","metadata":{}},{"cell_type":"code","source":"print(rf.get_params())","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T00:19:53.344405Z","iopub.status.idle":"2024-12-07T00:19:53.344834Z","shell.execute_reply.started":"2024-12-07T00:19:53.344605Z","shell.execute_reply":"2024-12-07T00:19:53.344624Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from sklearn.model_selection import RandomizedSearchCV\n\nn_estimators = [int(x) for x in np.linspace(start=100, stop=1000, num=10)]\nmax_features = ['auto', 'sqrt']\nmax_depth = [int(x) for x in np.linspace(10, 110, num = 11)]\nmax_depth.append(None)\nmin_samples_split = [2, 5, 10]\nmin_samples_leaf = [1, 2, 4]\nbootstrap = [True, False]\n\n# Creamos el grid\nrf_grid = {'n_estimators': n_estimators,\n          'max_depth': max_depth, 'min_samples_split': min_samples_split,\n          'min_samples_leaf': min_samples_leaf, 'bootstrap': bootstrap}\nprint(rf_grid)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T00:19:53.346054Z","iopub.status.idle":"2024-12-07T00:19:53.346396Z","shell.execute_reply.started":"2024-12-07T00:19:53.346228Z","shell.execute_reply":"2024-12-07T00:19:53.346245Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"rf_randomized = RandomizedSearchCV(estimator = rf, param_distributions = rf_grid,\n                                  n_iter = 100, cv = 3, random_state=1111,\n                                  n_jobs=-1)\n\nrf_randomized.fit(X, y)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T00:19:53.347917Z","iopub.status.idle":"2024-12-07T00:19:53.348260Z","shell.execute_reply.started":"2024-12-07T00:19:53.348098Z","shell.execute_reply":"2024-12-07T00:19:53.348115Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"rf_randomized.best_params_","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T00:19:53.350443Z","iopub.status.idle":"2024-12-07T00:19:53.350894Z","shell.execute_reply.started":"2024-12-07T00:19:53.350652Z","shell.execute_reply":"2024-12-07T00:19:53.350696Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"rf = RandomForestClassifier(n_estimators=500, random_state=1111, \n                           max_depth=100, min_samples_split=2,\n                           min_samples_leaf=4)\nrf.fit(X_train_pca, y_train)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T00:29:41.726375Z","iopub.execute_input":"2024-12-07T00:29:41.726832Z","iopub.status.idle":"2024-12-07T00:29:45.763661Z","shell.execute_reply.started":"2024-12-07T00:29:41.726792Z","shell.execute_reply":"2024-12-07T00:29:45.762354Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# Evaluacion\nSe mostraran los resultados obtenidos y que tanta precision se logro con las predicciones comparado a los valores reales.","metadata":{}},{"cell_type":"code","source":"# Hacemos predicciones\ny_prediccion = rf.predict(X_test_pca)\n# Creamos un resumen mas simple con matrices de confusion\ncm = confusion_matrix(y_test, y_prediccion)\n# Obtenemos el accuracy\naccuracy = rf.score(X_test_pca, y_test)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T00:30:15.410083Z","iopub.execute_input":"2024-12-07T00:30:15.410497Z","iopub.status.idle":"2024-12-07T00:30:15.455123Z","shell.execute_reply.started":"2024-12-07T00:30:15.410461Z","shell.execute_reply":"2024-12-07T00:30:15.453938Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"print(cm)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T00:30:18.349751Z","iopub.execute_input":"2024-12-07T00:30:18.350172Z","iopub.status.idle":"2024-12-07T00:30:18.355869Z","shell.execute_reply.started":"2024-12-07T00:30:18.350138Z","shell.execute_reply":"2024-12-07T00:30:18.354616Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"print(f\"Accuracy: {accuracy}\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T00:30:20.737951Z","iopub.execute_input":"2024-12-07T00:30:20.738322Z","iopub.status.idle":"2024-12-07T00:30:20.744542Z","shell.execute_reply.started":"2024-12-07T00:30:20.738291Z","shell.execute_reply":"2024-12-07T00:30:20.743273Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# Resultados\nObservando tanto los resultados obtenidos en este repositorio, como en todos aquellos de la competencia que son publicos, se entiende que la forma en que se imputan los datos y los parametros que se eligen, pueden mejorar el modelo de gran manera con simples cambios. Pero para dar pasos mayores, es necesario usar distintos algoritmos y apoyarse de todos los datos como los archivos .parquet.\nEn lo personal, los resultados fueron poder utilizar tanto lo aprendido en clase como aquello que se vio por medio de cursos de DataCamp, ademas de poder entender los diferentes repositorios y tener el conocimiento para comprender que es los que los autores intentan o logran realizar. Esta claro que sera la primera de muchas competiciones.","metadata":{}},{"cell_type":"markdown","source":"# Submission\nSe subira un dataframe como se especifica en la competencia con las predicciones generadas con el modelo anterior.","metadata":{}},{"cell_type":"code","source":"for col in tabla_cuali:\n    if col in df_test.columns:\n        df_test[col] = df_test[col].map(temporadas)\n\ndf_test.fillna(0, inplace=True)\nX_test_sub = df_test[columnas_tt].drop(columns=['id'])\nX_test_scaler = scaler.transform(X_test_sub)\nX_test_pca = pca.transform(X_test_scaler)\n\npredicciones_sub = rf.predict(X_test_pca)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T00:30:29.218704Z","iopub.execute_input":"2024-12-07T00:30:29.219153Z","iopub.status.idle":"2024-12-07T00:30:29.250516Z","shell.execute_reply.started":"2024-12-07T00:30:29.219111Z","shell.execute_reply":"2024-12-07T00:30:29.249339Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"\nsubmission = pd.DataFrame({\n    'id' : df_test['id'],\n    'sii': predicciones_sub\n})\n\nsubmission.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T00:30:35.948916Z","iopub.execute_input":"2024-12-07T00:30:35.949328Z","iopub.status.idle":"2024-12-07T00:30:35.961586Z","shell.execute_reply.started":"2024-12-07T00:30:35.949293Z","shell.execute_reply":"2024-12-07T00:30:35.960222Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"submission.to_csv('submission.csv', index=False)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2024-12-07T00:30:39.726540Z","iopub.execute_input":"2024-12-07T00:30:39.726974Z","iopub.status.idle":"2024-12-07T00:30:39.734447Z","shell.execute_reply.started":"2024-12-07T00:30:39.726935Z","shell.execute_reply":"2024-12-07T00:30:39.733078Z"}},"outputs":[],"execution_count":null}]}