{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.7.6","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"gpu","dataSources":[{"sourceId":22307,"databundleVersionId":1502524,"sourceType":"competition"},{"sourceId":5499303,"sourceType":"datasetVersion","datasetId":3173056},{"sourceId":5799741,"sourceType":"datasetVersion","datasetId":3331043},{"sourceId":6054748,"sourceType":"datasetVersion","datasetId":3464303},{"sourceId":6055252,"sourceType":"datasetVersion","datasetId":3464629}],"dockerImageVersionId":30009,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"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":"2024-03-20T04:37:26.814356Z","iopub.execute_input":"2024-03-20T04:37:26.814638Z","iopub.status.idle":"2024-03-20T04:37:43.060225Z","shell.execute_reply.started":"2024-03-20T04:37:26.81461Z","shell.execute_reply":"2024-03-20T04:37:43.059174Z"},"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":"2024-03-20T04:37:43.062638Z","iopub.execute_input":"2024-03-20T04:37:43.062968Z","iopub.status.idle":"2024-03-20T04:37:49.368037Z","shell.execute_reply.started":"2024-03-20T04:37:43.062935Z","shell.execute_reply":"2024-03-20T04:37:49.367091Z"},"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":"2024-03-20T04:37:49.369436Z","iopub.execute_input":"2024-03-20T04:37:49.370023Z","iopub.status.idle":"2024-03-20T04:39:04.089942Z","shell.execute_reply.started":"2024-03-20T04:37:49.369978Z","shell.execute_reply":"2024-03-20T04:39:04.089118Z"},"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":"2024-03-20T04:39:04.091073Z","iopub.execute_input":"2024-03-20T04:39:04.091343Z","iopub.status.idle":"2024-03-20T04:41:52.588295Z","shell.execute_reply.started":"2024-03-20T04:39:04.091317Z","shell.execute_reply":"2024-03-20T04:41:52.587436Z"},"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":"2024-03-20T04:41:52.591943Z","iopub.execute_input":"2024-03-20T04:41:52.592267Z","iopub.status.idle":"2024-03-20T04:47:04.541496Z","shell.execute_reply.started":"2024-03-20T04:41:52.592236Z","shell.execute_reply":"2024-03-20T04:47:04.540801Z"},"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":"2024-03-20T04:47:04.545117Z","iopub.execute_input":"2024-03-20T04:47:04.545419Z","iopub.status.idle":"2024-03-20T04:47:09.463758Z","shell.execute_reply.started":"2024-03-20T04:47:04.54539Z","shell.execute_reply":"2024-03-20T04:47:09.462932Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"intermediate_layer = model.layers[-2].output","metadata":{"execution":{"iopub.status.busy":"2024-03-20T04:47:09.465001Z","iopub.execute_input":"2024-03-20T04:47:09.465283Z","iopub.status.idle":"2024-03-20T04:47:09.469526Z","shell.execute_reply.started":"2024-03-20T04:47:09.465255Z","shell.execute_reply":"2024-03-20T04:47:09.468699Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model = Model(inputs=model.input, outputs=intermediate_layer)","metadata":{"execution":{"iopub.status.busy":"2024-03-20T04:47:09.470581Z","iopub.execute_input":"2024-03-20T04:47:09.470882Z","iopub.status.idle":"2024-03-20T04:47:09.50588Z","shell.execute_reply.started":"2024-03-20T04:47:09.470855Z","shell.execute_reply":"2024-03-20T04:47:09.505201Z"},"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":"2024-03-20T04:47:09.506979Z","iopub.execute_input":"2024-03-20T04:47:09.507248Z","iopub.status.idle":"2024-03-20T05:03:39.258563Z","shell.execute_reply.started":"2024-03-20T04:47:09.507222Z","shell.execute_reply":"2024-03-20T05:03:39.25767Z"},"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":"2024-03-20T05:03:39.260651Z","iopub.execute_input":"2024-03-20T05:03:39.261091Z","iopub.status.idle":"2024-03-20T05:03:39.286062Z","shell.execute_reply.started":"2024-03-20T05:03:39.261038Z","shell.execute_reply":"2024-03-20T05:03:39.285445Z"},"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":"2024-03-20T05:03:39.287088Z","iopub.execute_input":"2024-03-20T05:03:39.287349Z","iopub.status.idle":"2024-03-20T05:42:19.382641Z","shell.execute_reply.started":"2024-03-20T05:03:39.287325Z","shell.execute_reply":"2024-03-20T05:42:19.381657Z"},"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":"2024-03-20T05:42:19.384573Z","iopub.execute_input":"2024-03-20T05:42:19.384906Z","iopub.status.idle":"2024-03-20T05:42:19.400547Z","shell.execute_reply.started":"2024-03-20T05:42:19.384865Z","shell.execute_reply":"2024-03-20T05:42:19.399776Z"},"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":"2024-03-20T05:42:19.401694Z","iopub.execute_input":"2024-03-20T05:42:19.40199Z","iopub.status.idle":"2024-03-20T06:41:41.360857Z","shell.execute_reply.started":"2024-03-20T05:42:19.401963Z","shell.execute_reply":"2024-03-20T06:41:41.359987Z"},"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":"2024-03-20T06:41:41.363505Z","iopub.execute_input":"2024-03-20T06:41:41.363822Z","iopub.status.idle":"2024-03-20T06:41:41.380128Z","shell.execute_reply.started":"2024-03-20T06:41:41.363792Z","shell.execute_reply":"2024-03-20T06:41:41.379227Z"},"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":"2024-03-20T06:41:41.381412Z","iopub.execute_input":"2024-03-20T06:41:41.381695Z","iopub.status.idle":"2024-03-20T06:41:44.48699Z","shell.execute_reply.started":"2024-03-20T06:41:41.381669Z","shell.execute_reply":"2024-03-20T06:41:44.486275Z"},"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":"2024-03-20T06:41:44.488236Z","iopub.execute_input":"2024-03-20T06:41:44.488497Z","iopub.status.idle":"2024-03-20T06:41:44.496169Z","shell.execute_reply.started":"2024-03-20T06:41:44.488472Z","shell.execute_reply":"2024-03-20T06:41:44.495378Z"},"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":"2024-03-20T06:41:44.497677Z","iopub.execute_input":"2024-03-20T06:41:44.498047Z","iopub.status.idle":"2024-03-20T06:42:27.513669Z","shell.execute_reply.started":"2024-03-20T06:41:44.498014Z","shell.execute_reply":"2024-03-20T06:42:27.512838Z"},"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":"2024-03-20T06:42:27.515096Z","iopub.execute_input":"2024-03-20T06:42:27.515632Z","iopub.status.idle":"2024-03-20T06:42:29.234983Z","shell.execute_reply.started":"2024-03-20T06:42:27.515593Z","shell.execute_reply":"2024-03-20T06:42:29.234105Z"},"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":"2024-03-20T06:42:29.236309Z","iopub.execute_input":"2024-03-20T06:42:29.236845Z","iopub.status.idle":"2024-03-20T06:42:29.700423Z","shell.execute_reply.started":"2024-03-20T06:42:29.236806Z","shell.execute_reply":"2024-03-20T06:42:29.69966Z"},"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":"2024-03-20T06:42:29.701522Z","iopub.execute_input":"2024-03-20T06:42:29.701826Z","iopub.status.idle":"2024-03-20T06:42:29.735109Z","shell.execute_reply.started":"2024-03-20T06:42:29.701797Z","shell.execute_reply":"2024-03-20T06:42:29.734091Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model.save_model('/kaggle/working//modelo-XGBBoost.xgb')","metadata":{"execution":{"iopub.status.busy":"2024-03-20T06:42:29.736597Z","iopub.execute_input":"2024-03-20T06:42:29.736995Z","iopub.status.idle":"2024-03-20T06:42:29.741735Z","shell.execute_reply.started":"2024-03-20T06:42:29.736956Z","shell.execute_reply":"2024-03-20T06:42:29.740813Z"},"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":"2024-03-20T06:42:29.743215Z","iopub.execute_input":"2024-03-20T06:42:29.743591Z","iopub.status.idle":"2024-03-20T06:42:29.754685Z","shell.execute_reply.started":"2024-03-20T06:42:29.743547Z","shell.execute_reply":"2024-03-20T06:42:29.753813Z"},"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":"2024-03-20T06:42:29.758132Z","iopub.execute_input":"2024-03-20T06:42:29.758444Z","iopub.status.idle":"2024-03-20T06:42:42.950994Z","shell.execute_reply.started":"2024-03-20T06:42:29.758414Z","shell.execute_reply":"2024-03-20T06:42:42.950055Z"},"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":"2024-03-20T06:42:42.952605Z","iopub.execute_input":"2024-03-20T06:42:42.95325Z","iopub.status.idle":"2024-03-20T06:42:43.674175Z","shell.execute_reply.started":"2024-03-20T06:42:42.953207Z","shell.execute_reply":"2024-03-20T06:42:43.673292Z"},"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":"2024-03-20T06:42:43.678485Z","iopub.execute_input":"2024-03-20T06:42:43.680525Z","iopub.status.idle":"2024-03-20T06:42:44.144745Z","shell.execute_reply.started":"2024-03-20T06:42:43.680485Z","shell.execute_reply":"2024-03-20T06:42:44.14376Z"},"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":"2024-03-20T06:42:44.146238Z","iopub.execute_input":"2024-03-20T06:42:44.146647Z","iopub.status.idle":"2024-03-20T06:42:44.180651Z","shell.execute_reply.started":"2024-03-20T06:42:44.146606Z","shell.execute_reply":"2024-03-20T06:42:44.179688Z"},"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":"2024-03-20T06:42:44.182068Z","iopub.execute_input":"2024-03-20T06:42:44.182382Z","iopub.status.idle":"2024-03-20T06:42:44.186548Z","shell.execute_reply.started":"2024-03-20T06:42:44.182351Z","shell.execute_reply":"2024-03-20T06:42:44.185325Z"},"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":"2024-03-20T06:42:44.187848Z","iopub.execute_input":"2024-03-20T06:42:44.188181Z","iopub.status.idle":"2024-03-20T06:42:44.197538Z","shell.execute_reply.started":"2024-03-20T06:42:44.188151Z","shell.execute_reply":"2024-03-20T06:42:44.196648Z"},"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":"2024-03-20T06:42:44.198717Z","iopub.execute_input":"2024-03-20T06:42:44.199031Z","iopub.status.idle":"2024-03-20T06:42:49.128551Z","shell.execute_reply.started":"2024-03-20T06:42:44.199003Z","shell.execute_reply":"2024-03-20T06:42:49.127797Z"},"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":"2024-03-20T06:42:49.129839Z","iopub.execute_input":"2024-03-20T06:42:49.130305Z","iopub.status.idle":"2024-03-20T06:42:49.597624Z","shell.execute_reply.started":"2024-03-20T06:42:49.130269Z","shell.execute_reply":"2024-03-20T06:42:49.59674Z"},"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":"2024-03-20T06:42:49.598942Z","iopub.execute_input":"2024-03-20T06:42:49.599408Z","iopub.status.idle":"2024-03-20T06:42:50.071782Z","shell.execute_reply.started":"2024-03-20T06:42:49.599373Z","shell.execute_reply":"2024-03-20T06:42:50.070977Z"},"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":"2024-03-20T06:42:50.079041Z","iopub.execute_input":"2024-03-20T06:42:50.079348Z","iopub.status.idle":"2024-03-20T06:42:50.112324Z","shell.execute_reply.started":"2024-03-20T06:42:50.079319Z","shell.execute_reply":"2024-03-20T06:42:50.11122Z"},"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":"2024-03-20T06:42:50.113923Z","iopub.execute_input":"2024-03-20T06:42:50.11432Z","iopub.status.idle":"2024-03-20T06:42:50.118694Z","shell.execute_reply.started":"2024-03-20T06:42:50.114282Z","shell.execute_reply":"2024-03-20T06:42:50.117797Z"},"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":"2024-03-20T06:42:50.120634Z","iopub.execute_input":"2024-03-20T06:42:50.121026Z","iopub.status.idle":"2024-03-20T06:42:50.131435Z","shell.execute_reply.started":"2024-03-20T06:42:50.120988Z","shell.execute_reply":"2024-03-20T06:42:50.130613Z"},"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":"2024-03-20T06:42:50.13479Z","iopub.execute_input":"2024-03-20T06:42:50.135104Z","iopub.status.idle":"2024-03-20T06:43:31.219444Z","shell.execute_reply.started":"2024-03-20T06:42:50.135075Z","shell.execute_reply":"2024-03-20T06:43:31.218645Z"},"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":"2024-03-20T06:43:31.220833Z","iopub.execute_input":"2024-03-20T06:43:31.221369Z","iopub.status.idle":"2024-03-20T06:43:32.935219Z","shell.execute_reply.started":"2024-03-20T06:43:31.221333Z","shell.execute_reply":"2024-03-20T06:43:32.934177Z"},"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":"2024-03-20T06:43:32.936841Z","iopub.execute_input":"2024-03-20T06:43:32.937377Z","iopub.status.idle":"2024-03-20T06:43:33.418853Z","shell.execute_reply.started":"2024-03-20T06:43:32.937341Z","shell.execute_reply":"2024-03-20T06:43:33.417877Z"},"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":"2024-03-20T06:43:33.420179Z","iopub.execute_input":"2024-03-20T06:43:33.420558Z","iopub.status.idle":"2024-03-20T06:43:33.452646Z","shell.execute_reply.started":"2024-03-20T06:43:33.420519Z","shell.execute_reply":"2024-03-20T06:43:33.451578Z"},"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":"2024-03-20T06:43:33.454067Z","iopub.execute_input":"2024-03-20T06:43:33.45446Z","iopub.status.idle":"2024-03-20T06:43:33.459237Z","shell.execute_reply.started":"2024-03-20T06:43:33.45442Z","shell.execute_reply":"2024-03-20T06:43:33.458181Z"},"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":"2024-03-20T06:43:33.460637Z","iopub.execute_input":"2024-03-20T06:43:33.461064Z","iopub.status.idle":"2024-03-20T06:43:33.470331Z","shell.execute_reply.started":"2024-03-20T06:43:33.461027Z","shell.execute_reply":"2024-03-20T06:43:33.469548Z"},"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":"2024-03-20T06:43:33.47186Z","iopub.execute_input":"2024-03-20T06:43:33.472273Z","iopub.status.idle":"2024-03-20T06:43:38.435878Z","shell.execute_reply.started":"2024-03-20T06:43:33.472236Z","shell.execute_reply":"2024-03-20T06:43:38.435111Z"},"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":"2024-03-20T06:43:38.437185Z","iopub.execute_input":"2024-03-20T06:43:38.437655Z","iopub.status.idle":"2024-03-20T06:43:38.878183Z","shell.execute_reply.started":"2024-03-20T06:43:38.437618Z","shell.execute_reply":"2024-03-20T06:43:38.877292Z"},"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":"2024-03-20T06:43:38.87951Z","iopub.execute_input":"2024-03-20T06:43:38.880081Z","iopub.status.idle":"2024-03-20T06:43:39.344703Z","shell.execute_reply.started":"2024-03-20T06:43:38.880036Z","shell.execute_reply":"2024-03-20T06:43:39.343795Z"},"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":"2024-03-20T06:43:39.346085Z","iopub.execute_input":"2024-03-20T06:43:39.346424Z","iopub.status.idle":"2024-03-20T06:43:39.377709Z","shell.execute_reply.started":"2024-03-20T06:43:39.346395Z","shell.execute_reply":"2024-03-20T06:43:39.376899Z"},"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":"2024-03-20T06:43:39.37928Z","iopub.execute_input":"2024-03-20T06:43:39.379603Z","iopub.status.idle":"2024-03-20T06:43:39.383889Z","shell.execute_reply.started":"2024-03-20T06:43:39.379571Z","shell.execute_reply":"2024-03-20T06:43:39.383098Z"},"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":"2024-03-20T06:43:39.38532Z","iopub.execute_input":"2024-03-20T06:43:39.385952Z","iopub.status.idle":"2024-03-20T06:43:39.395218Z","shell.execute_reply.started":"2024-03-20T06:43:39.385917Z","shell.execute_reply":"2024-03-20T06:43:39.394269Z"},"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":"2024-03-20T06:43:39.396745Z","iopub.execute_input":"2024-03-20T06:43:39.397319Z","iopub.status.idle":"2024-03-20T06:43:52.460901Z","shell.execute_reply.started":"2024-03-20T06:43:39.397284Z","shell.execute_reply":"2024-03-20T06:43:52.460105Z"},"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":"2024-03-20T06:43:52.462299Z","iopub.execute_input":"2024-03-20T06:43:52.462846Z","iopub.status.idle":"2024-03-20T06:43:53.199434Z","shell.execute_reply.started":"2024-03-20T06:43:52.462809Z","shell.execute_reply":"2024-03-20T06:43:53.198269Z"},"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":"2024-03-20T06:43:53.20134Z","iopub.execute_input":"2024-03-20T06:43:53.202043Z","iopub.status.idle":"2024-03-20T06:43:53.660859Z","shell.execute_reply.started":"2024-03-20T06:43:53.201997Z","shell.execute_reply":"2024-03-20T06:43:53.65994Z"},"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":"2024-03-20T06:43:53.662225Z","iopub.execute_input":"2024-03-20T06:43:53.662609Z","iopub.status.idle":"2024-03-20T06:43:53.697096Z","shell.execute_reply.started":"2024-03-20T06:43:53.662568Z","shell.execute_reply":"2024-03-20T06:43:53.696296Z"},"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":"2024-03-20T06:43:53.698558Z","iopub.execute_input":"2024-03-20T06:43:53.698894Z","iopub.status.idle":"2024-03-20T06:43:53.703269Z","shell.execute_reply.started":"2024-03-20T06:43:53.698862Z","shell.execute_reply":"2024-03-20T06:43:53.702265Z"},"trusted":true},"execution_count":null,"outputs":[]}]}