{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"raw","source":"Transfer learning model - Xgboost","metadata":{}},{"cell_type":"code","source":"pip install plot-keras-history","metadata":{"execution":{"iopub.status.busy":"2023-06-30T09:37:26.969205Z","iopub.execute_input":"2023-06-30T09:37:26.969562Z","iopub.status.idle":"2023-06-30T09:37:42.938855Z","shell.execute_reply.started":"2023-06-30T09:37:26.969528Z","shell.execute_reply":"2023-06-30T09:37:42.937649Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import tensorflow.keras as keras\nimport warnings\nfrom collections import defaultdict\nfrom plot_keras_history import show_history, plot_history\nimport matplotlib.pyplot as plt\nfrom tqdm import tqdm\n\nimport numpy as np\nimport pandas as pd\nimport tensorflow as tf\nfrom tensorflow.keras.applications.resnet50 import ResNet50, preprocess_input\nfrom tensorflow.keras.models import Model\nfrom sklearn.metrics import roc_auc_score\nfrom xgboost import XGBClassifier","metadata":{"execution":{"iopub.status.busy":"2023-06-30T09:37:42.941135Z","iopub.execute_input":"2023-06-30T09:37:42.941516Z","iopub.status.idle":"2023-06-30T09:37:49.515895Z","shell.execute_reply.started":"2023-06-30T09:37:42.94147Z","shell.execute_reply":"2023-06-30T09:37:49.51508Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Cargamos las imágenes","metadata":{}},{"cell_type":"code","source":"training = keras.preprocessing.image_dataset_from_directory(directory = '/kaggle/input/data-binary/data/train', shuffle=False)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T09:37:49.517175Z","iopub.execute_input":"2023-06-30T09:37:49.51767Z","iopub.status.idle":"2023-06-30T09:40:32.693803Z","shell.execute_reply.started":"2023-06-30T09:37:49.517625Z","shell.execute_reply":"2023-06-30T09:40:32.692962Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"validation = keras.preprocessing.image_dataset_from_directory(directory = '/kaggle/input/data-binary/data/valid', shuffle=False)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T09:40:32.69562Z","iopub.execute_input":"2023-06-30T09:40:32.695986Z","iopub.status.idle":"2023-06-30T09:48:05.103196Z","shell.execute_reply.started":"2023-06-30T09:40:32.695954Z","shell.execute_reply":"2023-06-30T09:48:05.102273Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test = keras.preprocessing.image_dataset_from_directory(directory = '/kaggle/input/data-binary/data/test', shuffle=False)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T09:48:05.104594Z","iopub.execute_input":"2023-06-30T09:48:05.104969Z","iopub.status.idle":"2023-06-30T09:57:45.967107Z","shell.execute_reply.started":"2023-06-30T09:48:05.10493Z","shell.execute_reply":"2023-06-30T09:57:45.966266Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Cargamos el modelo","metadata":{}},{"cell_type":"code","source":"model = keras.models.load_model('/kaggle/input/model-resnet50-transferlearning/model-ResNet50-TransferLearning.h5')","metadata":{"execution":{"iopub.status.busy":"2023-06-30T10:06:34.291066Z","iopub.execute_input":"2023-06-30T10:06:34.29146Z","iopub.status.idle":"2023-06-30T10:06:39.941238Z","shell.execute_reply.started":"2023-06-30T10:06:34.291426Z","shell.execute_reply":"2023-06-30T10:06:39.940274Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"intermediate_layer = model.layers[-2].output","metadata":{"execution":{"iopub.status.busy":"2023-06-30T10:06:39.943207Z","iopub.execute_input":"2023-06-30T10:06:39.943563Z","iopub.status.idle":"2023-06-30T10:06:39.948178Z","shell.execute_reply.started":"2023-06-30T10:06:39.943525Z","shell.execute_reply":"2023-06-30T10:06:39.947265Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model = Model(inputs=model.input, outputs=intermediate_layer)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T10:06:39.950551Z","iopub.execute_input":"2023-06-30T10:06:39.951478Z","iopub.status.idle":"2023-06-30T10:06:39.993493Z","shell.execute_reply.started":"2023-06-30T10:06:39.9514Z","shell.execute_reply":"2023-06-30T10:06:39.992838Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Obtenemos las caracteristicas","metadata":{}},{"cell_type":"code","source":"# Pasar las imágenes de entrenamiento por el modelo y obtener las características\nX_train_features = model.predict(training, verbose=1)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T10:06:43.760561Z","iopub.execute_input":"2023-06-30T10:06:43.760962Z","iopub.status.idle":"2023-06-30T10:30:40.01451Z","shell.execute_reply.started":"2023-06-30T10:06:43.760929Z","shell.execute_reply":"2023-06-30T10:30:40.013511Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"y_train = np.load('/kaggle/input/y-labels-for-ensembles/y_labels_for_ensembles/y_train.npy')","metadata":{"execution":{"iopub.status.busy":"2023-06-30T10:30:40.017451Z","iopub.execute_input":"2023-06-30T10:30:40.017853Z","iopub.status.idle":"2023-06-30T10:30:40.032827Z","shell.execute_reply.started":"2023-06-30T10:30:40.017806Z","shell.execute_reply":"2023-06-30T10:30:40.032123Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Pasar las imágenes de validación por el modelo y obtener las características\nX_valid_features = model.predict(validation, verbose=1)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T10:39:42.865562Z","iopub.execute_input":"2023-06-30T10:39:42.865981Z","iopub.status.idle":"2023-06-30T11:35:27.933969Z","shell.execute_reply.started":"2023-06-30T10:39:42.865942Z","shell.execute_reply":"2023-06-30T11:35:27.933122Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"y_valid = np.load('/kaggle/input/y-labels-for-ensembles/y_labels_for_ensembles/y_valid.npy')","metadata":{"execution":{"iopub.status.busy":"2023-06-30T11:35:27.936262Z","iopub.execute_input":"2023-06-30T11:35:27.936547Z","iopub.status.idle":"2023-06-30T11:35:27.958385Z","shell.execute_reply.started":"2023-06-30T11:35:27.936518Z","shell.execute_reply":"2023-06-30T11:35:27.95762Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Pasar las imágenes de prueba por el modelo y obtener las características\nX_test_features = model.predict(test, verbose=1)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T11:35:27.959624Z","iopub.execute_input":"2023-06-30T11:35:27.959938Z","iopub.status.idle":"2023-06-30T12:48:21.115804Z","shell.execute_reply.started":"2023-06-30T11:35:27.959909Z","shell.execute_reply":"2023-06-30T12:48:21.114988Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"y_test = np.load('/kaggle/input/y-labels-for-ensembles/y_labels_for_ensembles/y_test.npy')","metadata":{"execution":{"iopub.status.busy":"2023-06-30T12:48:21.119942Z","iopub.execute_input":"2023-06-30T12:48:21.120232Z","iopub.status.idle":"2023-06-30T12:48:21.144279Z","shell.execute_reply.started":"2023-06-30T12:48:21.120204Z","shell.execute_reply":"2023-06-30T12:48:21.143461Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import xgboost as xgb\nfrom sklearn.metrics import accuracy_score\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.metrics import precision_recall_fscore_support\n\n# Crear el objeto DMatrix para XGBoost\ndtrain = xgb.DMatrix(X_train_features, label=y_train)\ndvalid = xgb.DMatrix(X_valid_features, label=y_valid)\ndtest = xgb.DMatrix(X_test_features, label=y_test)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T12:48:26.376752Z","iopub.execute_input":"2023-06-30T12:48:26.377145Z","iopub.status.idle":"2023-06-30T12:48:29.450469Z","shell.execute_reply.started":"2023-06-30T12:48:26.377109Z","shell.execute_reply":"2023-06-30T12:48:29.449512Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Definir los parámetros del modelo XGBoost\nparams = {\n    'objective': 'multi:softmax',  # Función objetivo para clasificación multiclase\n    'num_class': len(np.unique(y_train)),  # Número de clases\n    'max_depth': 3,  # Profundidad máxima del árbol\n    'eta': 0.1,  # Tasa de aprendizaje\n    'gamma': 0.1,  # Valor mínimo de reducción de la pérdida requerida para dividir un nodo\n    'subsample': 0.8,  # Proporción de muestras utilizadas para entrenar cada árbol\n    'colsample_bytree': 0.8,  # Proporción de características utilizadas para entrenar cada árbol\n    'eval_metric': 'merror'  # Métrica de evaluación para seguimiento del modelo\n}","metadata":{"execution":{"iopub.status.busy":"2023-06-30T12:52:18.877121Z","iopub.execute_input":"2023-06-30T12:52:18.877503Z","iopub.status.idle":"2023-06-30T12:52:18.884962Z","shell.execute_reply.started":"2023-06-30T12:52:18.877469Z","shell.execute_reply":"2023-06-30T12:52:18.883928Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Entrenar el modelo XGBoost\nnum_rounds = 100  # Número de rondas de entrenamiento\nwatchlist = [(dtrain, 'train'), (dvalid, 'valid')]  # Conjunto de datos para seguimiento\nmodel = xgb.train(params, dtrain, num_rounds, evals=watchlist, early_stopping_rounds=10)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T12:52:20.54579Z","iopub.execute_input":"2023-06-30T12:52:20.546149Z","iopub.status.idle":"2023-06-30T12:53:39.666706Z","shell.execute_reply.started":"2023-06-30T12:52:20.546114Z","shell.execute_reply":"2023-06-30T12:53:39.665872Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Predecir con el modelo entrenado\ny_pred_train = model.predict(dtrain)\ny_pred_valid = model.predict(dvalid)\ny_pred_test = model.predict(dtest)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T12:53:43.551338Z","iopub.execute_input":"2023-06-30T12:53:43.551691Z","iopub.status.idle":"2023-06-30T12:53:46.939994Z","shell.execute_reply.started":"2023-06-30T12:53:43.551655Z","shell.execute_reply":"2023-06-30T12:53:46.939137Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from sklearn.metrics import roc_auc_score\n\n# Calcular la precisión del modelo\naccuracy_train = accuracy_score(y_train, y_pred_train)\naccuracy_valid = accuracy_score(y_valid, y_pred_valid)\naccuracy_test = accuracy_score(y_test, y_pred_test)\n\n\nauc_train = roc_auc_score(y_train, y_pred_train)\nauc_valid = roc_auc_score(y_valid, y_pred_valid)\nauc_test = roc_auc_score(y_test, y_pred_test)\n\n\n\nprecision, recall, f1_score, support = precision_recall_fscore_support(y_train, y_pred_train, average='binary')\nprint(\"AUC en el conjunto de entrenamiento:\", auc_train)\nprint(\"Tasa de acierto en el conjunto de entrenamiento:\", accuracy_train)\nprint(\"Precisión por clase en el conjunto de entrenamiento:\", precision)\nprint(\"Recall por clase en el conjunto de entrenamiento:\", recall)\nprint(\"Puntuación F1 por clase en el conjunto de entrenamiento:\", f1_score)\nprint(\"Soporte por clase en el conjunto de entrenamiento:\", support)\n\nprint(\"-------------------------------------------------------------------------------------\")\n\nprecision, recall, f1_score, support = precision_recall_fscore_support(y_valid, y_pred_valid, average='binary')\nprint(\"AUC en el conjunto de validación:\", auc_valid)\nprint(\"Tasa de acierto en el conjunto de validación:\", accuracy_valid)\nprint(\"Precisión por clase en el conjunto de validación:\", precision)\nprint(\"Recall por clase en el conjunto de validación:\", recall)\nprint(\"Puntuación F1 por clase en el conjunto de validación:\", f1_score)\nprint(\"Soporte por clase en el conjunto de validación:\", support)\n\nprint(\"-------------------------------------------------------------------------------------\")\n\nprecision, recall, f1_score, support = precision_recall_fscore_support(y_test, y_pred_test, average='binary')\nprint(\"AUC en el conjunto de prueba:\", auc_test)\nprint(\"Tasa de acierto en el conjunto de prueba:\", accuracy_test)\nprint(\"Precisión por clase en el conjunto de prueba:\", precision)\nprint(\"Recall por clase en el conjunto de prueba:\", recall)\nprint(\"Puntuación F1 por clase en el conjunto de prueba:\", f1_score)\nprint(\"Soporte por clase en el conjunto de prueba:\", support)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T12:54:23.823909Z","iopub.execute_input":"2023-06-30T12:54:23.824265Z","iopub.status.idle":"2023-06-30T12:54:24.238068Z","shell.execute_reply.started":"2023-06-30T12:54:23.824231Z","shell.execute_reply":"2023-06-30T12:54:24.237062Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"logloss = model.eval(dtrain)\nprint(\"Pérdida logarítmica en el conjunto de entrenamiento:\", logloss)\n\nlogloss = model.eval(dvalid)\nprint(\"Pérdida logarítmica en el conjunto de validación:\", logloss)\n\nlogloss = model.eval(dtest)\nprint(\"Pérdida logarítmica en el conjunto de prueba:\", logloss)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T12:54:28.1723Z","iopub.execute_input":"2023-06-30T12:54:28.172649Z","iopub.status.idle":"2023-06-30T12:54:28.221187Z","shell.execute_reply.started":"2023-06-30T12:54:28.172615Z","shell.execute_reply":"2023-06-30T12:54:28.220278Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model.save_model('/kaggle/working//modelo-XGBBoost.xgb')","metadata":{"execution":{"iopub.status.busy":"2023-06-30T12:54:30.2497Z","iopub.execute_input":"2023-06-30T12:54:30.250093Z","iopub.status.idle":"2023-06-30T12:54:30.254714Z","shell.execute_reply.started":"2023-06-30T12:54:30.250055Z","shell.execute_reply":"2023-06-30T12:54:30.253817Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"----------------------------------------------------------------------------","metadata":{}},{"cell_type":"markdown","source":"------------------------","metadata":{}},{"cell_type":"markdown","source":"------------------------","metadata":{}},{"cell_type":"markdown","source":"------------------------","metadata":{}},{"cell_type":"markdown","source":"------------------------","metadata":{}},{"cell_type":"markdown","source":"------------------------","metadata":{}},{"cell_type":"markdown","source":"------------------------","metadata":{}},{"cell_type":"markdown","source":"------------------------","metadata":{}},{"cell_type":"markdown","source":"Con otros Parametros","metadata":{}},{"cell_type":"code","source":"# Definir los parámetros del modelo XGBoost\nparams = {\n    'objective': 'multi:softmax',  # Función objetivo para clasificación multiclase\n    'num_class': len(np.unique(y_train)),  # Número de clases\n    'max_depth': 5,  # Profundidad máxima del árbol\n    'eta': 0.01,  # Tasa de aprendizaje\n    'gamma': 0.1,  # Valor mínimo de reducción de la pérdida requerida para dividir un nodo\n    'subsample': 0.8,  # Proporción de muestras utilizadas para entrenar cada árbol\n    'colsample_bytree': 0.8,  # Proporción de características utilizadas para entrenar cada árbol\n    'eval_metric': 'merror'  # Métrica de evaluación para seguimiento del modelo\n}","metadata":{"execution":{"iopub.status.busy":"2023-06-30T12:55:07.238503Z","iopub.execute_input":"2023-06-30T12:55:07.238882Z","iopub.status.idle":"2023-06-30T12:55:07.246979Z","shell.execute_reply.started":"2023-06-30T12:55:07.238845Z","shell.execute_reply":"2023-06-30T12:55:07.245884Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Entrenar el modelo XGBoost\nnum_rounds = 100  # Número de rondas de entrenamiento\nwatchlist = [(dtrain, 'train'), (dvalid, 'valid')]  # Conjunto de datos para seguimiento\nmodel = xgb.train(params, dtrain, num_rounds, evals=watchlist, early_stopping_rounds=10)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T12:55:57.014333Z","iopub.execute_input":"2023-06-30T12:55:57.014691Z","iopub.status.idle":"2023-06-30T12:56:21.871927Z","shell.execute_reply.started":"2023-06-30T12:55:57.014656Z","shell.execute_reply":"2023-06-30T12:56:21.871163Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Predecir con el modelo entrenado\ny_pred_train = model.predict(dtrain)\ny_pred_valid = model.predict(dvalid)\ny_pred_test = model.predict(dtest)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T12:56:33.461308Z","iopub.execute_input":"2023-06-30T12:56:33.461674Z","iopub.status.idle":"2023-06-30T12:56:34.855098Z","shell.execute_reply.started":"2023-06-30T12:56:33.461638Z","shell.execute_reply":"2023-06-30T12:56:34.854232Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from sklearn.metrics import roc_auc_score\n\n# Calcular la precisión del modelo\naccuracy_train = accuracy_score(y_train, y_pred_train)\naccuracy_valid = accuracy_score(y_valid, y_pred_valid)\naccuracy_test = accuracy_score(y_test, y_pred_test)\n\n\nauc_train = roc_auc_score(y_train, y_pred_train)\nauc_valid = roc_auc_score(y_valid, y_pred_valid)\nauc_test = roc_auc_score(y_test, y_pred_test)\n\n\n\nprecision, recall, f1_score, support = precision_recall_fscore_support(y_train, y_pred_train, average='binary')\nprint(\"AUC en el conjunto de entrenamiento:\", auc_train)\nprint(\"Tasa de acierto en el conjunto de entrenamiento:\", accuracy_train)\nprint(\"Precisión por clase en el conjunto de entrenamiento:\", precision)\nprint(\"Recall por clase en el conjunto de entrenamiento:\", recall)\nprint(\"Puntuación F1 por clase en el conjunto de entrenamiento:\", f1_score)\nprint(\"Soporte por clase en el conjunto de entrenamiento:\", support)\n\nprint(\"-------------------------------------------------------------------------------------\")\n\nprecision, recall, f1_score, support = precision_recall_fscore_support(y_valid, y_pred_valid, average='binary')\nprint(\"AUC en el conjunto de validación:\", auc_valid)\nprint(\"Tasa de acierto en el conjunto de validación:\", accuracy_valid)\nprint(\"Precisión por clase en el conjunto de validación:\", precision)\nprint(\"Recall por clase en el conjunto de validación:\", recall)\nprint(\"Puntuación F1 por clase en el conjunto de validación:\", f1_score)\nprint(\"Soporte por clase en el conjunto de validación:\", support)\n\nprint(\"-------------------------------------------------------------------------------------\")\n\nprecision, recall, f1_score, support = precision_recall_fscore_support(y_test, y_pred_test, average='binary')\nprint(\"AUC en el conjunto de prueba:\", auc_test)\nprint(\"Tasa de acierto en el conjunto de prueba:\", accuracy_test)\nprint(\"Precisión por clase en el conjunto de prueba:\", precision)\nprint(\"Recall por clase en el conjunto de prueba:\", recall)\nprint(\"Puntuación F1 por clase en el conjunto de prueba:\", f1_score)\nprint(\"Soporte por clase en el conjunto de prueba:\", support)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T12:56:41.700147Z","iopub.execute_input":"2023-06-30T12:56:41.700493Z","iopub.status.idle":"2023-06-30T12:56:42.111687Z","shell.execute_reply.started":"2023-06-30T12:56:41.700462Z","shell.execute_reply":"2023-06-30T12:56:42.110752Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"logloss = model.eval(dtrain)\nprint(\"Pérdida logarítmica en el conjunto de entrenamiento:\", logloss)\n\nlogloss = model.eval(dvalid)\nprint(\"Pérdida logarítmica en el conjunto de validación:\", logloss)\n\nlogloss = model.eval(dtest)\nprint(\"Pérdida logarítmica en el conjunto de prueba:\", logloss)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T12:57:15.771537Z","iopub.execute_input":"2023-06-30T12:57:15.771907Z","iopub.status.idle":"2023-06-30T12:57:15.821592Z","shell.execute_reply.started":"2023-06-30T12:57:15.771871Z","shell.execute_reply":"2023-06-30T12:57:15.820839Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model.save_model('/kaggle/working//modelo-XGBBoost-Max_depth_5.xgb')","metadata":{"execution":{"iopub.status.busy":"2023-06-30T12:57:17.857266Z","iopub.execute_input":"2023-06-30T12:57:17.857681Z","iopub.status.idle":"2023-06-30T12:57:17.862674Z","shell.execute_reply.started":"2023-06-30T12:57:17.857642Z","shell.execute_reply":"2023-06-30T12:57:17.861656Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"--------------------------------","metadata":{}},{"cell_type":"markdown","source":"--------------------------------","metadata":{}},{"cell_type":"markdown","source":"--------------------------------","metadata":{}},{"cell_type":"markdown","source":"--------------------------------","metadata":{}},{"cell_type":"markdown","source":"--------------------------------","metadata":{}},{"cell_type":"markdown","source":"--------------------------------","metadata":{}},{"cell_type":"markdown","source":"--------------------------------","metadata":{}},{"cell_type":"code","source":"# Definir los parámetros del modelo XGBoost\nparams = {\n    'objective': 'multi:softmax',  # Función objetivo para clasificación multiclase\n    'num_class': len(np.unique(y_train)),  # Número de clases\n    'max_depth': 3,  # Profundidad máxima del árbol\n    'eta': 0.01,  # Tasa de aprendizaje\n    'gamma': 0.1,  # Valor mínimo de reducción de la pérdida requerida para dividir un nodo\n    'subsample': 0.8,  # Proporción de muestras utilizadas para entrenar cada árbol\n    'colsample_bytree': 0.8,  # Proporción de características utilizadas para entrenar cada árbol\n    'eval_metric': 'merror'  # Métrica de evaluación para seguimiento del modelo\n}","metadata":{"execution":{"iopub.status.busy":"2023-06-30T13:03:15.744038Z","iopub.execute_input":"2023-06-30T13:03:15.74441Z","iopub.status.idle":"2023-06-30T13:03:15.752505Z","shell.execute_reply.started":"2023-06-30T13:03:15.744376Z","shell.execute_reply":"2023-06-30T13:03:15.751454Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Entrenar el modelo XGBoost\nnum_rounds = 100  # Número de rondas de entrenamiento\nwatchlist = [(dtrain, 'train'), (dvalid, 'valid')]  # Conjunto de datos para seguimiento\nmodel = xgb.train(params, dtrain, num_rounds, evals=watchlist, early_stopping_rounds=10)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T13:03:17.801087Z","iopub.execute_input":"2023-06-30T13:03:17.801444Z","iopub.status.idle":"2023-06-30T13:03:27.823264Z","shell.execute_reply.started":"2023-06-30T13:03:17.80141Z","shell.execute_reply":"2023-06-30T13:03:27.822475Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Predecir con el modelo entrenado\ny_pred_train = model.predict(dtrain)\ny_pred_valid = model.predict(dvalid)\ny_pred_test = model.predict(dtest)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T13:03:33.608744Z","iopub.execute_input":"2023-06-30T13:03:33.609252Z","iopub.status.idle":"2023-06-30T13:03:34.551349Z","shell.execute_reply.started":"2023-06-30T13:03:33.609202Z","shell.execute_reply":"2023-06-30T13:03:34.550479Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from sklearn.metrics import roc_auc_score\n\n# Calcular la precisión del modelo\naccuracy_train = accuracy_score(y_train, y_pred_train)\naccuracy_valid = accuracy_score(y_valid, y_pred_valid)\naccuracy_test = accuracy_score(y_test, y_pred_test)\n\n\nauc_train = roc_auc_score(y_train, y_pred_train)\nauc_valid = roc_auc_score(y_valid, y_pred_valid)\nauc_test = roc_auc_score(y_test, y_pred_test)\n\n\n\nprecision, recall, f1_score, support = precision_recall_fscore_support(y_train, y_pred_train, average='binary')\nprint(\"AUC en el conjunto de entrenamiento:\", auc_train)\nprint(\"Tasa de acierto en el conjunto de entrenamiento:\", accuracy_train)\nprint(\"Precisión por clase en el conjunto de entrenamiento:\", precision)\nprint(\"Recall por clase en el conjunto de entrenamiento:\", recall)\nprint(\"Puntuación F1 por clase en el conjunto de entrenamiento:\", f1_score)\nprint(\"Soporte por clase en el conjunto de entrenamiento:\", support)\n\nprint(\"-------------------------------------------------------------------------------------\")\n\nprecision, recall, f1_score, support = precision_recall_fscore_support(y_valid, y_pred_valid, average='binary')\nprint(\"AUC en el conjunto de validación:\", auc_valid)\nprint(\"Tasa de acierto en el conjunto de validación:\", accuracy_valid)\nprint(\"Precisión por clase en el conjunto de validación:\", precision)\nprint(\"Recall por clase en el conjunto de validación:\", recall)\nprint(\"Puntuación F1 por clase en el conjunto de validación:\", f1_score)\nprint(\"Soporte por clase en el conjunto de validación:\", support)\n\nprint(\"-------------------------------------------------------------------------------------\")\n\nprecision, recall, f1_score, support = precision_recall_fscore_support(y_test, y_pred_test, average='binary')\nprint(\"AUC en el conjunto de prueba:\", auc_test)\nprint(\"Tasa de acierto en el conjunto de prueba:\", accuracy_test)\nprint(\"Precisión por clase en el conjunto de prueba:\", precision)\nprint(\"Recall por clase en el conjunto de prueba:\", recall)\nprint(\"Puntuación F1 por clase en el conjunto de prueba:\", f1_score)\nprint(\"Soporte por clase en el conjunto de prueba:\", support)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T13:03:36.667087Z","iopub.execute_input":"2023-06-30T13:03:36.667431Z","iopub.status.idle":"2023-06-30T13:03:37.084856Z","shell.execute_reply.started":"2023-06-30T13:03:36.667398Z","shell.execute_reply":"2023-06-30T13:03:37.082648Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"logloss = model.eval(dtrain)\nprint(\"Pérdida logarítmica en el conjunto de entrenamiento:\", logloss)\n\nlogloss = model.eval(dvalid)\nprint(\"Pérdida logarítmica en el conjunto de validación:\", logloss)\n\nlogloss = model.eval(dtest)\nprint(\"Pérdida logarítmica en el conjunto de prueba:\", logloss)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T13:03:39.627686Z","iopub.execute_input":"2023-06-30T13:03:39.628066Z","iopub.status.idle":"2023-06-30T13:03:39.677531Z","shell.execute_reply.started":"2023-06-30T13:03:39.628031Z","shell.execute_reply":"2023-06-30T13:03:39.676792Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model.save_model('/kaggle/working//modelo-XGBBoost-Max_depth_3_eta_0.01.xgb')","metadata":{"execution":{"iopub.status.busy":"2023-06-30T13:03:41.940279Z","iopub.execute_input":"2023-06-30T13:03:41.940644Z","iopub.status.idle":"2023-06-30T13:03:41.945044Z","shell.execute_reply.started":"2023-06-30T13:03:41.940608Z","shell.execute_reply":"2023-06-30T13:03:41.944112Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"-------------------------","metadata":{}},{"cell_type":"markdown","source":"----------------------","metadata":{}},{"cell_type":"markdown","source":"------------------------------","metadata":{}},{"cell_type":"markdown","source":"--------------------------------","metadata":{}},{"cell_type":"markdown","source":"---------------------------------","metadata":{}},{"cell_type":"markdown","source":"------------------------------------------","metadata":{}},{"cell_type":"code","source":"# Definir los parámetros del modelo XGBoost\nparams = {\n    'objective': 'multi:softmax',  # Función objetivo para clasificación multiclase\n    'num_class': len(np.unique(y_train)),  # Número de clases\n    'max_depth': 5,  # Profundidad máxima del árbol\n    'eta': 0.1,  # Tasa de aprendizaje\n    'gamma': 0.1,  # Valor mínimo de reducción de la pérdida requerida para dividir un nodo\n    'subsample': 0.8,  # Proporción de muestras utilizadas para entrenar cada árbol\n    'colsample_bytree': 0.8,  # Proporción de características utilizadas para entrenar cada árbol\n    'eval_metric': 'merror'  # Métrica de evaluación para seguimiento del modelo\n}","metadata":{"execution":{"iopub.status.busy":"2023-06-30T13:06:11.595412Z","iopub.execute_input":"2023-06-30T13:06:11.595807Z","iopub.status.idle":"2023-06-30T13:06:11.604306Z","shell.execute_reply.started":"2023-06-30T13:06:11.595747Z","shell.execute_reply":"2023-06-30T13:06:11.603057Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Entrenar el modelo XGBoost\nnum_rounds = 100  # Número de rondas de entrenamiento\nwatchlist = [(dtrain, 'train'), (dvalid, 'valid')]  # Conjunto de datos para seguimiento\nmodel = xgb.train(params, dtrain, num_rounds, evals=watchlist, early_stopping_rounds=10)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T13:06:14.416312Z","iopub.execute_input":"2023-06-30T13:06:14.416672Z","iopub.status.idle":"2023-06-30T13:07:30.465781Z","shell.execute_reply.started":"2023-06-30T13:06:14.416638Z","shell.execute_reply":"2023-06-30T13:07:30.465003Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Predecir con el modelo entrenado\ny_pred_train = model.predict(dtrain)\ny_pred_valid = model.predict(dvalid)\ny_pred_test = model.predict(dtest)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T13:07:40.024258Z","iopub.execute_input":"2023-06-30T13:07:40.024613Z","iopub.status.idle":"2023-06-30T13:07:43.337177Z","shell.execute_reply.started":"2023-06-30T13:07:40.024578Z","shell.execute_reply":"2023-06-30T13:07:43.336277Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from sklearn.metrics import roc_auc_score\n\n# Calcular la precisión del modelo\naccuracy_train = accuracy_score(y_train, y_pred_train)\naccuracy_valid = accuracy_score(y_valid, y_pred_valid)\naccuracy_test = accuracy_score(y_test, y_pred_test)\n\n\nauc_train = roc_auc_score(y_train, y_pred_train)\nauc_valid = roc_auc_score(y_valid, y_pred_valid)\nauc_test = roc_auc_score(y_test, y_pred_test)\n\n\n\nprecision, recall, f1_score, support = precision_recall_fscore_support(y_train, y_pred_train, average='binary')\nprint(\"AUC en el conjunto de entrenamiento:\", auc_train)\nprint(\"Tasa de acierto en el conjunto de entrenamiento:\", accuracy_train)\nprint(\"Precisión por clase en el conjunto de entrenamiento:\", precision)\nprint(\"Recall por clase en el conjunto de entrenamiento:\", recall)\nprint(\"Puntuación F1 por clase en el conjunto de entrenamiento:\", f1_score)\nprint(\"Soporte por clase en el conjunto de entrenamiento:\", support)\n\nprint(\"-------------------------------------------------------------------------------------\")\n\nprecision, recall, f1_score, support = precision_recall_fscore_support(y_valid, y_pred_valid, average='binary')\nprint(\"AUC en el conjunto de validación:\", auc_valid)\nprint(\"Tasa de acierto en el conjunto de validación:\", accuracy_valid)\nprint(\"Precisión por clase en el conjunto de validación:\", precision)\nprint(\"Recall por clase en el conjunto de validación:\", recall)\nprint(\"Puntuación F1 por clase en el conjunto de validación:\", f1_score)\nprint(\"Soporte por clase en el conjunto de validación:\", support)\n\nprint(\"-------------------------------------------------------------------------------------\")\n\nprecision, recall, f1_score, support = precision_recall_fscore_support(y_test, y_pred_test, average='binary')\nprint(\"AUC en el conjunto de prueba:\", auc_test)\nprint(\"Tasa de acierto en el conjunto de prueba:\", accuracy_test)\nprint(\"Precisión por clase en el conjunto de prueba:\", precision)\nprint(\"Recall por clase en el conjunto de prueba:\", recall)\nprint(\"Puntuación F1 por clase en el conjunto de prueba:\", f1_score)\nprint(\"Soporte por clase en el conjunto de prueba:\", support)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T13:07:44.705293Z","iopub.execute_input":"2023-06-30T13:07:44.705643Z","iopub.status.idle":"2023-06-30T13:07:45.119205Z","shell.execute_reply.started":"2023-06-30T13:07:44.705608Z","shell.execute_reply":"2023-06-30T13:07:45.118443Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"logloss = model.eval(dtrain)\nprint(\"Pérdida logarítmica en el conjunto de entrenamiento:\", logloss)\n\nlogloss = model.eval(dvalid)\nprint(\"Pérdida logarítmica en el conjunto de validación:\", logloss)\n\nlogloss = model.eval(dtest)\nprint(\"Pérdida logarítmica en el conjunto de prueba:\", logloss)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T13:07:50.796323Z","iopub.execute_input":"2023-06-30T13:07:50.796696Z","iopub.status.idle":"2023-06-30T13:07:50.845463Z","shell.execute_reply.started":"2023-06-30T13:07:50.79666Z","shell.execute_reply":"2023-06-30T13:07:50.844553Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model.save_model('/kaggle/working//modelo-XGBBoost-Max_depth_5_eta_0.1.xgb')","metadata":{"execution":{"iopub.status.busy":"2023-06-30T13:07:53.367585Z","iopub.execute_input":"2023-06-30T13:07:53.368023Z","iopub.status.idle":"2023-06-30T13:07:53.373409Z","shell.execute_reply.started":"2023-06-30T13:07:53.367982Z","shell.execute_reply":"2023-06-30T13:07:53.372155Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"------------------------------","metadata":{}},{"cell_type":"markdown","source":"------------------------------","metadata":{}},{"cell_type":"markdown","source":"------------------------------","metadata":{}},{"cell_type":"markdown","source":"------------------------------","metadata":{}},{"cell_type":"markdown","source":"------------------------------","metadata":{}},{"cell_type":"markdown","source":"------------------------------","metadata":{}},{"cell_type":"markdown","source":"------------------------------","metadata":{}},{"cell_type":"markdown","source":"------------------------------","metadata":{}},{"cell_type":"code","source":"# Definir los parámetros del modelo XGBoost\nparams = {\n    'objective': 'multi:softmax',  # Función objetivo para clasificación multiclase\n    'num_class': len(np.unique(y_train)),  # Número de clases\n    'max_depth': 3,  # Profundidad máxima del árbol\n    'eta': 0.01,  # Tasa de aprendizaje\n    'gamma': 0.1,  # Valor mínimo de reducción de la pérdida requerida para dividir un nodo\n    'subsample': 0.8,  # Proporción de muestras utilizadas para entrenar cada árbol\n    'colsample_bytree': 0.8,  # Proporción de características utilizadas para entrenar cada árbol\n    'eval_metric': 'merror'  # Métrica de evaluación para seguimiento del modelo\n}","metadata":{"execution":{"iopub.status.busy":"2023-06-30T13:12:45.124593Z","iopub.execute_input":"2023-06-30T13:12:45.124982Z","iopub.status.idle":"2023-06-30T13:12:45.13298Z","shell.execute_reply.started":"2023-06-30T13:12:45.124947Z","shell.execute_reply":"2023-06-30T13:12:45.131908Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Entrenar el modelo XGBoost\nnum_rounds = 400 # Número de rondas de entrenamiento\nwatchlist = [(dtrain, 'train'), (dvalid, 'valid')]  # Conjunto de datos para seguimiento\nmodel = xgb.train(params, dtrain, num_rounds, evals=watchlist, early_stopping_rounds=10)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T13:12:47.581103Z","iopub.execute_input":"2023-06-30T13:12:47.581454Z","iopub.status.idle":"2023-06-30T13:12:56.772794Z","shell.execute_reply.started":"2023-06-30T13:12:47.58142Z","shell.execute_reply":"2023-06-30T13:12:56.772021Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Predecir con el modelo entrenado\ny_pred_train = model.predict(dtrain)\ny_pred_valid = model.predict(dvalid)\ny_pred_test = model.predict(dtest)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T13:13:07.08973Z","iopub.execute_input":"2023-06-30T13:13:07.090116Z","iopub.status.idle":"2023-06-30T13:13:07.968263Z","shell.execute_reply.started":"2023-06-30T13:13:07.090081Z","shell.execute_reply":"2023-06-30T13:13:07.967416Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from sklearn.metrics import roc_auc_score\n\n# Calcular la precisión del modelo\naccuracy_train = accuracy_score(y_train, y_pred_train)\naccuracy_valid = accuracy_score(y_valid, y_pred_valid)\naccuracy_test = accuracy_score(y_test, y_pred_test)\n\n\nauc_train = roc_auc_score(y_train, y_pred_train)\nauc_valid = roc_auc_score(y_valid, y_pred_valid)\nauc_test = roc_auc_score(y_test, y_pred_test)\n\n\n\nprecision, recall, f1_score, support = precision_recall_fscore_support(y_train, y_pred_train, average='binary')\nprint(\"AUC en el conjunto de entrenamiento:\", auc_train)\nprint(\"Tasa de acierto en el conjunto de entrenamiento:\", accuracy_train)\nprint(\"Precisión por clase en el conjunto de entrenamiento:\", precision)\nprint(\"Recall por clase en el conjunto de entrenamiento:\", recall)\nprint(\"Puntuación F1 por clase en el conjunto de entrenamiento:\", f1_score)\nprint(\"Soporte por clase en el conjunto de entrenamiento:\", support)\n\nprint(\"-------------------------------------------------------------------------------------\")\n\nprecision, recall, f1_score, support = precision_recall_fscore_support(y_valid, y_pred_valid, average='binary')\nprint(\"AUC en el conjunto de validación:\", auc_valid)\nprint(\"Tasa de acierto en el conjunto de validación:\", accuracy_valid)\nprint(\"Precisión por clase en el conjunto de validación:\", precision)\nprint(\"Recall por clase en el conjunto de validación:\", recall)\nprint(\"Puntuación F1 por clase en el conjunto de validación:\", f1_score)\nprint(\"Soporte por clase en el conjunto de validación:\", support)\n\nprint(\"-------------------------------------------------------------------------------------\")\n\nprecision, recall, f1_score, support = precision_recall_fscore_support(y_test, y_pred_test, average='binary')\nprint(\"AUC en el conjunto de prueba:\", auc_test)\nprint(\"Tasa de acierto en el conjunto de prueba:\", accuracy_test)\nprint(\"Precisión por clase en el conjunto de prueba:\", precision)\nprint(\"Recall por clase en el conjunto de prueba:\", recall)\nprint(\"Puntuación F1 por clase en el conjunto de prueba:\", f1_score)\nprint(\"Soporte por clase en el conjunto de prueba:\", support)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T13:13:09.160958Z","iopub.execute_input":"2023-06-30T13:13:09.16131Z","iopub.status.idle":"2023-06-30T13:13:09.59397Z","shell.execute_reply.started":"2023-06-30T13:13:09.161276Z","shell.execute_reply":"2023-06-30T13:13:09.590377Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"logloss = model.eval(dtrain)\nprint(\"Pérdida logarítmica en el conjunto de entrenamiento:\", logloss)\n\nlogloss = model.eval(dvalid)\nprint(\"Pérdida logarítmica en el conjunto de validación:\", logloss)\n\nlogloss = model.eval(dtest)\nprint(\"Pérdida logarítmica en el conjunto de prueba:\", logloss)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T13:13:13.008731Z","iopub.execute_input":"2023-06-30T13:13:13.009116Z","iopub.status.idle":"2023-06-30T13:13:13.057047Z","shell.execute_reply.started":"2023-06-30T13:13:13.009076Z","shell.execute_reply":"2023-06-30T13:13:13.056119Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model.save_model('/kaggle/working//modelo-XGBBoost-Max_depth_3_eta_0.1_num_rounds_400.xgb')","metadata":{"execution":{"iopub.status.busy":"2023-06-30T13:13:16.443945Z","iopub.execute_input":"2023-06-30T13:13:16.444349Z","iopub.status.idle":"2023-06-30T13:13:16.449002Z","shell.execute_reply.started":"2023-06-30T13:13:16.444312Z","shell.execute_reply":"2023-06-30T13:13:16.447797Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"---------------------------------------------------------------------","metadata":{}},{"cell_type":"markdown","source":"------------------------------------------------------------","metadata":{}},{"cell_type":"markdown","source":"------------------------------------------------","metadata":{}},{"cell_type":"markdown","source":"-----------------------------------------------------------","metadata":{}},{"cell_type":"markdown","source":"----------------------------------------------------------------------------------","metadata":{}},{"cell_type":"markdown","source":"-----------------------------------------------------------------------------","metadata":{}},{"cell_type":"markdown","source":"-------------------------------------------------------------","metadata":{}},{"cell_type":"code","source":"# Definir los parámetros del modelo XGBoost\nparams = {\n    'objective': 'multi:softmax',  # Función objetivo para clasificación multiclase\n    'num_class': len(np.unique(y_train)),  # Número de clases\n    'max_depth': 5,  # Profundidad máxima del árbol\n    'eta': 0.01,  # Tasa de aprendizaje\n    'gamma': 0.1,  # Valor mínimo de reducción de la pérdida requerida para dividir un nodo\n    'subsample': 0.8,  # Proporción de muestras utilizadas para entrenar cada árbol\n    'colsample_bytree': 0.8,  # Proporción de características utilizadas para entrenar cada árbol\n    'eval_metric': 'merror'  # Métrica de evaluación para seguimiento del modelo\n}","metadata":{"execution":{"iopub.status.busy":"2023-06-30T13:15:23.20652Z","iopub.execute_input":"2023-06-30T13:15:23.206903Z","iopub.status.idle":"2023-06-30T13:15:23.214275Z","shell.execute_reply.started":"2023-06-30T13:15:23.206867Z","shell.execute_reply":"2023-06-30T13:15:23.213274Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Entrenar el modelo XGBoost\nnum_rounds = 400 # Número de rondas de entrenamiento\nwatchlist = [(dtrain, 'train'), (dvalid, 'valid')]  # Conjunto de datos para seguimiento\nmodel = xgb.train(params, dtrain, num_rounds, evals=watchlist, early_stopping_rounds=10)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T13:15:25.133844Z","iopub.execute_input":"2023-06-30T13:15:25.1342Z","iopub.status.idle":"2023-06-30T13:15:49.966143Z","shell.execute_reply.started":"2023-06-30T13:15:25.134165Z","shell.execute_reply":"2023-06-30T13:15:49.965358Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Predecir con el modelo entrenado\ny_pred_train = model.predict(dtrain)\ny_pred_valid = model.predict(dvalid)\ny_pred_test = model.predict(dtest)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T13:16:10.13539Z","iopub.execute_input":"2023-06-30T13:16:10.135751Z","iopub.status.idle":"2023-06-30T13:16:11.488261Z","shell.execute_reply.started":"2023-06-30T13:16:10.135716Z","shell.execute_reply":"2023-06-30T13:16:11.487399Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from sklearn.metrics import roc_auc_score\n\n# Calcular la precisión del modelo\naccuracy_train = accuracy_score(y_train, y_pred_train)\naccuracy_valid = accuracy_score(y_valid, y_pred_valid)\naccuracy_test = accuracy_score(y_test, y_pred_test)\n\n\nauc_train = roc_auc_score(y_train, y_pred_train)\nauc_valid = roc_auc_score(y_valid, y_pred_valid)\nauc_test = roc_auc_score(y_test, y_pred_test)\n\n\n\nprecision, recall, f1_score, support = precision_recall_fscore_support(y_train, y_pred_train, average='binary')\nprint(\"AUC en el conjunto de entrenamiento:\", auc_train)\nprint(\"Tasa de acierto en el conjunto de entrenamiento:\", accuracy_train)\nprint(\"Precisión por clase en el conjunto de entrenamiento:\", precision)\nprint(\"Recall por clase en el conjunto de entrenamiento:\", recall)\nprint(\"Puntuación F1 por clase en el conjunto de entrenamiento:\", f1_score)\nprint(\"Soporte por clase en el conjunto de entrenamiento:\", support)\n\nprint(\"-------------------------------------------------------------------------------------\")\n\nprecision, recall, f1_score, support = precision_recall_fscore_support(y_valid, y_pred_valid, average='binary')\nprint(\"AUC en el conjunto de validación:\", auc_valid)\nprint(\"Tasa de acierto en el conjunto de validación:\", accuracy_valid)\nprint(\"Precisión por clase en el conjunto de validación:\", precision)\nprint(\"Recall por clase en el conjunto de validación:\", recall)\nprint(\"Puntuación F1 por clase en el conjunto de validación:\", f1_score)\nprint(\"Soporte por clase en el conjunto de validación:\", support)\n\nprint(\"-------------------------------------------------------------------------------------\")\n\nprecision, recall, f1_score, support = precision_recall_fscore_support(y_test, y_pred_test, average='binary')\nprint(\"AUC en el conjunto de prueba:\", auc_test)\nprint(\"Tasa de acierto en el conjunto de prueba:\", accuracy_test)\nprint(\"Precisión por clase en el conjunto de prueba:\", precision)\nprint(\"Recall por clase en el conjunto de prueba:\", recall)\nprint(\"Puntuación F1 por clase en el conjunto de prueba:\", f1_score)\nprint(\"Soporte por clase en el conjunto de prueba:\", support)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T13:16:12.153135Z","iopub.execute_input":"2023-06-30T13:16:12.153481Z","iopub.status.idle":"2023-06-30T13:16:12.584792Z","shell.execute_reply.started":"2023-06-30T13:16:12.153449Z","shell.execute_reply":"2023-06-30T13:16:12.583011Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"logloss = model.eval(dtrain)\nprint(\"Pérdida logarítmica en el conjunto de entrenamiento:\", logloss)\n\nlogloss = model.eval(dvalid)\nprint(\"Pérdida logarítmica en el conjunto de validación:\", logloss)\n\nlogloss = model.eval(dtest)\nprint(\"Pérdida logarítmica en el conjunto de prueba:\", logloss)","metadata":{"execution":{"iopub.status.busy":"2023-06-30T13:16:15.654152Z","iopub.execute_input":"2023-06-30T13:16:15.654496Z","iopub.status.idle":"2023-06-30T13:16:15.704534Z","shell.execute_reply.started":"2023-06-30T13:16:15.654462Z","shell.execute_reply":"2023-06-30T13:16:15.702853Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model.save_model('/kaggle/working//modelo-XGBBoost-Max_depth_5_eta_0.1_num_rounds_400.xgb')","metadata":{"execution":{"iopub.status.busy":"2023-06-30T13:16:19.306043Z","iopub.execute_input":"2023-06-30T13:16:19.306395Z","iopub.status.idle":"2023-06-30T13:16:19.311004Z","shell.execute_reply.started":"2023-06-30T13:16:19.306362Z","shell.execute_reply":"2023-06-30T13:16:19.30984Z"},"trusted":true},"execution_count":null,"outputs":[]}]}