{"id":18376,"date":"2024-06-04T09:58:30","date_gmt":"2024-06-04T09:58:30","guid":{"rendered":"https:\/\/beta.bluetab.net\/?p=18376"},"modified":"2025-10-07T09:52:33","modified_gmt":"2025-10-07T09:52:33","slug":"arboles-de-decision-en-aws","status":"publish","type":"post","link":"https:\/\/bluetab.org\/es\/arboles-de-decision-en-aws\/","title":{"rendered":"Empoderando a las decisiones en diversos sectores con \u00e1rboles de decisi\u00f3n en AWS"},"content":{"rendered":"\n<div class=\"wp-block-uagb-container uagb-block-9ba6b6d9 alignfull uagb-is-root-container\"><div class=\"uagb-container-inner-blocks-wrap\">\n<div class=\"wp-block-uagb-container uagb-block-848ac8a7\">\n<div class=\"wp-block-media-text\" style=\"grid-template-columns:15% auto\"><figure class=\"wp-block-media-text__media\"><img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"800\" src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/Jeanpierre.jpeg\" alt=\"\" class=\"wp-image-18435 size-full\" srcset=\"https:\/\/bluetab.org\/wp-content\/uploads\/2024\/06\/Jeanpierre.jpeg 800w, https:\/\/bluetab.org\/wp-content\/uploads\/2024\/06\/Jeanpierre-300x300.jpeg 300w, https:\/\/bluetab.org\/wp-content\/uploads\/2024\/06\/Jeanpierre-150x150.jpeg 150w, https:\/\/bluetab.org\/wp-content\/uploads\/2024\/06\/Jeanpierre-768x768.jpeg 768w, https:\/\/bluetab.org\/wp-content\/uploads\/2024\/06\/Jeanpierre-75x75.jpeg 75w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<p><strong>Jeanpierre Nun\u0303ez<\/strong><br>Senior Data Engineer<\/p>\n<\/div><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-uagb-container uagb-block-1e307214\">\n<div class=\"wp-block-uagb-social-share uagb-social-share__outer-wrap uagb-social-share__layout-horizontal uagb-block-36ffec5a\">\n<div class=\"wp-block-uagb-social-share-child uagb-ss-repeater uagb-ss__wrapper uagb-block-687e9f5a\"><span class=\"uagb-ss__link\" data-href=\"https:\/\/twitter.com\/share?url=\" tabindex=\"0\" role=\"button\" aria-label=\"twitter\"><span class=\"uagb-ss__source-wrap\"><span class=\"uagb-ss__source-icon\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8 .2 5.7 .2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3 .6 10.4 .8 15.8 .8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.45 65.45 0 0 1 -29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z\"><\/path><\/svg><\/span><\/span><\/span><\/div>\n\n\n\n<div class=\"wp-block-uagb-social-share-child uagb-ss-repeater uagb-ss__wrapper uagb-block-113dd1a5\"><span class=\"uagb-ss__link\" data-href=\"https:\/\/www.linkedin.com\/shareArticle?url=\" tabindex=\"0\" role=\"button\" aria-label=\"linkedin\"><span class=\"uagb-ss__source-wrap\"><span class=\"uagb-ss__source-icon\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 448 512\"><path d=\"M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z\"><\/path><\/svg><\/span><\/span><\/span><\/div>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-uagb-container uagb-block-73a8f54b alignfull uagb-is-root-container\"><div class=\"uagb-container-inner-blocks-wrap\">\n<div class=\"wp-block-uagb-container uagb-block-dcd1baea\">\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/AWS-Jeanpier-1024x512.png\" alt=\"\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/512;\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading has-text-color has-link-color wp-elements-a33b24bf5a9fb53918e37a6a6dfcb7f3\" style=\"color:#000000\"><strong>\u00bfSab\u00edas que los \u00e1rboles de decisi\u00f3n pueden ayudarte a resolver problemas complejos?<\/strong><\/h3>\n\n\n\n<p>En este art\u00edculo, te revelaremos c\u00f3mo en Bluetab utilizamos esta poderosa herramienta de an\u00e1lisis de datos con el fin de impulsar a las decisiones de nuestros clientes en diversas industrias usando AWS.<\/p>\n\n\n\n<p><strong>\u00c1rboles de decisi\u00f3n: herramientas poderosas para la toma de decisiones<\/strong><\/p>\n\n\n\n<p>Los \u00e1rboles de decisi\u00f3n son diagramas que representan las posibles opciones, resultados y consecuencias de una decisi\u00f3n. Se construyen a partir de nodos que contienen preguntas o condiciones, y ramas que conectan las respuestas o acciones. De esta forma, se puede visualizar el flujo l\u00f3gico de la decisi\u00f3n y elegir la mejor alternativa.<\/p>\n\n\n\n<p><strong>En Bluetab, creemos en la toma de decisiones inteligentes basadas en datos<\/strong>. Para lograrlo, utilizamos herramientas poderosas como los \u00e1rboles de decisi\u00f3n, que son valiosos en una variedad de sectores. A continuaci\u00f3n, exploraremos c\u00f3mo aplicamos los \u00e1rboles de decisi\u00f3n y los beneficios que ofrecen a nuestros clientes en diferentes industrias.<\/p>\n\n\n\n<p><strong>Clasificaci\u00f3n y regresi\u00f3n con \u00e1rboles de decisi\u00f3n<\/strong><\/p>\n\n\n\n<p><em>Clasificaci\u00f3n<\/em>: los \u00e1rboles de decisi\u00f3n de clasificaci\u00f3n son excelentes para segmentar y categorizar datos. En el contexto empresarial, se utilizan para tomar decisiones sobre la asignaci\u00f3n de recursos, la identificaci\u00f3n de oportunidades de mercado y la personalizaci\u00f3n de ofertas. En el sector de la salud, los \u00e1rboles de clasificaci\u00f3n ayudan a diagnosticar enfermedades en funci\u00f3n de s\u00edntomas y pruebas.<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-b10558ae wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  data-sizes=\"auto, (max-width: 480px) 150px\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/image12.jpg\" alt=\"\" width=\"955\" height=\"537\" title=\"image12\" role=\"img\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 955px; --smush-placeholder-aspect-ratio: 955\/537;\" \/><\/figure><\/div>\n\n\n\n<p><em>Regresi\u00f3n<\/em>: los \u00e1rboles de regresi\u00f3n se centran en predecir valores num\u00e9ricos. Se utilizan para proyectar rendimientos financieros, tasas de crecimiento y otros valores cuantitativos. En el sector financiero, son esenciales para predecir el rendimiento de inversiones y carteras.<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-53c75721 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  data-sizes=\"auto, (max-width: 480px) 150px\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/image14.jpg\" alt=\"\" width=\"753\" height=\"505\" title=\"image14\" role=\"img\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 753px; --smush-placeholder-aspect-ratio: 753\/505;\" \/><\/figure><\/div>\n\n\n\n<p><strong>Caso pr\u00e1ctico: \u00c1rboles de decisi\u00f3n en el sector de la salud<\/strong><\/p>\n\n\n\n<p><em>Sector de la salud<\/em>: En el sector de la salud, utilizamos los \u00e1rboles de decisi\u00f3n para diagnosticar enfermedades en funci\u00f3n de s\u00edntomas y pruebas. Por ejemplo, si un paciente tiene fiebre, dolor de garganta y tos, el \u00e1rbol de decisi\u00f3n nos indica que lo m\u00e1s probable es que tenga una infecci\u00f3n respiratoria y nos recomienda el tratamiento adecuado.<\/p>\n\n\n\n<p><strong>Beneficios de los \u00e1rboles de decisi\u00f3n en diferentes sectores<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Toma de decisiones personalizadas<\/strong>: los \u00e1rboles de decisi\u00f3n permiten decisiones precisas y personalizadas en funci\u00f3n de los datos y las necesidades de cada sector.<\/li>\n\n\n\n<li><strong>Eficiencia operativa<\/strong>: al automatizar procesos repetitivos y mejorar la toma de decisiones, las empresas pueden optimizar sus operaciones.<\/li>\n<\/ul>\n\n\n\n<p><strong>Caso pr\u00e1ctico: \u00e1rboles de decisi\u00f3n en el sector bancario<\/strong><\/p>\n\n\n\n<p><em>Sector bancario<\/em>: En el sector bancario, los \u00e1rboles de decisi\u00f3n son vitales para la gesti\u00f3n de riesgos y la personalizaci\u00f3n de servicios. Los bancos utilizan estos \u00e1rboles para segmentar a los clientes en grupos seg\u00fan su comportamiento financiero, lo que les permite ofrecer productos y servicios financieros a medida. Tambi\u00e9n son esenciales en la evaluaci\u00f3n crediticia, donde garantizan pr\u00e9stamos m\u00e1s seguros y tasas de inter\u00e9s adecuadas. Adem\u00e1s, los \u00e1rboles de decisi\u00f3n se aplican en la prevenci\u00f3n de fraudes, donde detectan patrones sospechosos y protegen los activos de los clientes.<\/p>\n\n\n\n<p><strong>Beneficios en banca:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Gesti\u00f3n de riesgos<\/strong>: los \u00e1rboles de decisi\u00f3n ayudan a evaluar y gestionar los riesgos crediticios, lo que es esencial en la industria bancaria.<\/li>\n\n\n\n<li><strong>Personalizaci\u00f3n de servicios<\/strong>: los clientes bancarios reciben ofertas personalizadas que se ajustan a sus necesidades financieras, lo que mejora su satisfacci\u00f3n y lealtad.<\/li>\n\n\n\n<li><strong>Prevenci\u00f3n de fraudes<\/strong>: la detecci\u00f3n temprana de transacciones fraudulentas protege a los clientes y a los bancos.<\/li>\n<\/ul>\n\n\n\n<p><strong>Decisiones Inteligentes en AWS: implementaci\u00f3n de \u00e1rboles de decisi\u00f3n y migraci\u00f3n de datos<\/strong><\/p>\n\n\n\n<p><strong>Introducci\u00f3n:&nbsp;<\/strong><\/p>\n\n\n\n<p>En un mundo empresarial en constante evoluci\u00f3n, la toma de decisiones informadas es clave para el \u00e9xito. Exploraremos ahora c\u00f3mo la implementaci\u00f3n de \u00e1rboles de decisi\u00f3n en AWS y la migraci\u00f3n de datos desde SQL Server pueden empoderar a las organizaciones en diferentes sectores. Analizaremos la arquitectura de soluciones en AWS que permite esta implementaci\u00f3n y migraci\u00f3n, detallando cada paso del proceso.<\/p>\n\n\n\n<p><strong>Arquitectura en AWS para Implementar \u00e1rboles de decisi\u00f3n:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Ingesta de datos: <\/strong>comenzamos considerando la ingesta de datos desde diversas fuentes. AWS Glue se destaca como una soluci\u00f3n vers\u00e1til que puede conectarse a una amplia variedad de fuentes de datos.<\/li>\n\n\n\n<li><strong>Almacenamiento de datos: <\/strong>una vez que los datos se han ingestado, se almacenan de manera centralizada en Amazon S3. Esto proporciona un lugar \u00fanico para la administraci\u00f3n y acceso eficiente a los datos<strong>.<\/strong><\/li>\n\n\n\n<li><strong>Procesamiento de datos y generaci\u00f3n de \u00e1rboles de decisi\u00f3n: <\/strong>utilizamos AWS Glue para transformar y preparar los datos para su an\u00e1lisis. En esta etapa, AWS Lambda y AWS SageMaker entran en juego para implementar algoritmos de \u00e1rboles de decisi\u00f3n, brindando un enfoque avanzado de aprendizaje autom\u00e1tico<strong>.<\/strong><\/li>\n\n\n\n<li><strong>An\u00e1lisis y consultas: <\/strong>una vez que se han generado los \u00e1rboles de decisi\u00f3n, AWS Athena permite realizar consultas SQL interactivas en los datos almacenados en S3. Esto facilita la exploraci\u00f3n de datos y la toma de decisiones basadas en los resultados de los \u00e1rboles<strong>.<\/strong><\/li>\n<\/ul>\n\n\n\n<p><strong>Migraci\u00f3n de datos desde SQL Server a AWS:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Ingesta de datos: <\/strong>cuando se trata de la migraci\u00f3n de datos desde SQL Server de Microsoft, AWS Database Migration Service (DMS) es una herramienta valiosa. Facilita la migraci\u00f3n de bases de datos completas o datos espec\u00edficos de SQL Server a bases de datos compatibles con AWS, como Amazon RDS o Amazon Redshift.<\/li>\n<\/ul>\n\n\n\n<p><strong>Arquitectura de soluci\u00f3n en AWS utilizando AWS S3, Glue, Lambda, SageMaker, S3 y Athena:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Ingesta de datos: <\/strong>utilizamos AWS Database Migration Service (DMS) para transferir datos desde la fuente de datos SQL Server a una base de datos compatible con AWS.<\/li>\n\n\n\n<li><strong>Transformaci\u00f3n de datos: <\/strong>AWS Glue se encarga de transformar y preparar los datos reci\u00e9n migrados para su an\u00e1lisis<strong>.<\/strong><\/li>\n\n\n\n<li><strong>Generaci\u00f3n de \u00e1rboles de decisi\u00f3n: <\/strong>implementamos algoritmos de \u00e1rboles de decisi\u00f3n utilizando AWS Lambda o AWS SageMaker para llevar a cabo an\u00e1lisis avanzados<strong>.<\/strong><\/li>\n\n\n\n<li><strong>Almacenamiento de datos: <\/strong>los datos procesados y los resultados de los \u00e1rboles de decisi\u00f3n se almacenan en Amazon S3<strong>.<\/strong><\/li>\n\n\n\n<li><strong>Consultas y an\u00e1lisis: <\/strong>utilizamos AWS Athena para realizar consultas SQL interactivas en los datos almacenados en S3 y tomar decisiones basadas en los resultados<strong>.<\/strong><\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-b5d1f19f wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  data-sizes=\"auto, (max-width: 480px) 150px\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/image13-1024x400.png\" alt=\"\" width=\"1427\" height=\"558\" title=\"image13\" role=\"img\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1427px; --smush-placeholder-aspect-ratio: 1427\/558;\" \/><\/figure><\/div>\n\n\n\n<p>Para la implementaci\u00f3n de un arbol de clasificaci\u00f3n vamos a utilizar los siguientes servicios: Amazon S3, Aws Glue Crawler, Aws Glue Job, IAM , Cloud Watch.&nbsp;<\/p>\n\n\n\n<p>Se seleccionan como m\u00ednimo estos servicios para poder mostrar los beneficios de este modelo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-text-color has-link-color wp-elements-6c4b83f31536ed3a7169ea5f02748e81\" style=\"color:#000000\"><strong><strong>Creacion del bucket en Amazon S3<\/strong><\/strong><\/h3>\n\n\n\n<p>Buscaremos \u2018S3\u2019 en la barra de busqueda y seleccionaremos el nombre del servicio para visualizar lo siguiente:<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-1be21f02 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  data-sizes=\"auto, (max-width: 480px) 150px\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/image16-1024x554.png\" alt=\"\" width=\"1578\" height=\"854\" title=\"image16\" role=\"img\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1578px; --smush-placeholder-aspect-ratio: 1578\/854;\" \/><\/figure><\/div>\n\n\n\n<p>Daremos clic en \u2018Crear Bucket\u2019 y visualizaremos la siguiente pantalla:<\/p>\n\n\n\n<p>Debemos colocar un nombre que se asocie a nuestro flujo de trabajo y seleccionar tambien la regi\u00f3n como minimo.<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-25b9189c wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  data-sizes=\"auto, (max-width: 480px) 150px\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/image15-1024x498.png\" alt=\"\" width=\"1740\" height=\"846\" title=\"image15\" role=\"img\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1740px; --smush-placeholder-aspect-ratio: 1740\/846;\" \/><\/figure><\/div>\n\n\n\n<p>Colocaran siguiente y podran observan una vista previa del bucket, luego dar en clic en crear bucket:<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-bab0258f wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  data-sizes=\"auto, (max-width: 480px) 150px\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/image18-1024x282.png\" alt=\"\" width=\"1773\" height=\"489\" title=\"image18\" role=\"img\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1773px; --smush-placeholder-aspect-ratio: 1773\/489;\" \/><\/figure><\/div>\n\n\n\n<p>Para nuestro ejemplo pr\u00e1ctico estamos seleccionando un csv publico llamado Iris.&nbsp;<\/p>\n\n\n\n<p>El conjunto de datos Iris contiene medidas de 150 flores (setosa, versicolor, virginica) con 4 caracter\u00edsticas, usado com\u00fanmente para clasificaci\u00f3n.<\/p>\n\n\n\n<p>L\u00f3gicamente para un modelo de ML deberiamos brindar una data ya transformada y trabajada con el prop\u00f3sito de tener las caracteristias y hacer las predicciones necesarias.<\/p>\n\n\n\n<p>Daras clic en cargar y seleccionaras el csv:<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-052e6a53 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  data-sizes=\"auto, (max-width: 480px) 150px\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/image17-1024x741.png\" alt=\"\" width=\"1127\" height=\"815\" title=\"image17\" role=\"img\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1127px; --smush-placeholder-aspect-ratio: 1127\/815;\" \/><\/figure><\/div>\n\n\n\n<p>Finalmente visualizaremos la carga con \u00e9xito y ya seremos capaces de obtener esta informaci\u00f3n desde otro servicios en AWS.<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-50c1aa49 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  data-sizes=\"auto, (max-width: 480px) 150px\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/image20-1024x390.png\" alt=\"\" width=\"1862\" height=\"709\" title=\"image20\" role=\"img\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1862px; --smush-placeholder-aspect-ratio: 1862\/709;\" \/><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading has-text-color has-link-color wp-elements-d3949e974cbc4c6f28f6a85e4db2964c\" style=\"color:#000000\"><strong><strong><strong>Creaci\u00f3n del servicio AWS Glue Crawler<\/strong><\/strong><\/strong><\/h3>\n\n\n\n<p>AWS Glue Crawler es una herramienta que descubre y cataloga autom\u00e1ticamente datos almacenados en diversos formatos y ubicaciones, facilitando la preparaci\u00f3n y an\u00e1lisis de datos en AWS.<\/p>\n\n\n\n<p>Buscaremos el servicio AWS Glue en la barra de busqueda, nos desplazaremos en la secci\u00f3n lateral izquierdo y daremos clic en Crawlers:<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-b701b48b wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  data-sizes=\"auto, (max-width: 480px) 150px\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/image19-1024x480.png\" alt=\"\" width=\"1885\" height=\"884\" title=\"image19\" role=\"img\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1885px; --smush-placeholder-aspect-ratio: 1885\/884;\" \/><\/figure><\/div>\n\n\n\n<p>Daremos un nombre a nuestro Crawler y una descripci\u00f3n a elecci\u00f3n personal, luego daremos clic en Next:<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-c103e317 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  data-sizes=\"auto, (max-width: 480px) 150px\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/image28.png\" alt=\"\" width=\"1022\" height=\"444\" title=\"image28\" role=\"img\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1022px; --smush-placeholder-aspect-ratio: 1022\/444;\" \/><\/figure><\/div>\n\n\n\n<p>En el dropdown list de data source elegiremos el servicio de S3.<\/p>\n\n\n\n<p>Luego colocaras Browse S3 y podras seleccionar el bucket creado previamente, deber\u00edas ser capaz de visualizar lo siguiente:<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-b658e45a wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  data-sizes=\"auto, (max-width: 480px) 150px\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/image4.png\" alt=\"\" width=\"788\" height=\"929\" title=\"image4\" role=\"img\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 788px; --smush-placeholder-aspect-ratio: 788\/929;\" \/><\/figure><\/div>\n\n\n\n<p>En la siguiente seccion podr\u00e1s seleccionar algun rol si tienes configurado previamente, para este ejemplo crearemos un nuevol, le pondremos un nombre asociado a nuestro proceso.<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-d84b1ccc wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  data-sizes=\"auto, (max-width: 480px) 150px\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/image1-1024x486.png\" alt=\"\" width=\"1581\" height=\"751\" title=\"image1\" role=\"img\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1581px; --smush-placeholder-aspect-ratio: 1581\/751;\" \/><\/figure><\/div>\n\n\n\n<p>Luego veremos la selecci\u00f3n de nuestra base de datos Catalogo , sin embargo tendremos que crearlo de la siguiente manera dando clic en Add Database:<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-bf0bc59e wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  data-sizes=\"auto, (max-width: 480px) 150px\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/image23-1024x554.png\" alt=\"\" width=\"1581\" height=\"751\" title=\"image23\" role=\"img\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1581px; --smush-placeholder-aspect-ratio: 1581\/751;\" \/><\/figure><\/div>\n\n\n\n<p>Ingresamores el nombre de la base de datos asociada a nuestro ejemplo:<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-77b8bd90 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  data-sizes=\"auto, (max-width: 480px) 150px\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/image22-1024x413.png\" alt=\"\" width=\"1577\" height=\"636\" title=\"image22\" role=\"img\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1577px; --smush-placeholder-aspect-ratio: 1577\/636;\" \/><\/figure><\/div>\n\n\n\n<p>Luego podremos agregar un prefijo de forma opcional cuando disponibilice los datos en el catalogo de AWS Glue, podr\u00eda estar vacio tambi\u00e9n si no lo necesita. Seleccionaremos ejecuci\u00f3n a demanda para nuestro caso.<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-bf06c9cc wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  data-sizes=\"auto, (max-width: 480px) 150px\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/image23-1-1024x554.png\" alt=\"\" width=\"1577\" height=\"636\" title=\"image23-1\" role=\"img\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1577px; --smush-placeholder-aspect-ratio: 1577\/636;\" \/><\/figure><\/div>\n\n\n\n<p>Finalmente en la siguiente pesta\u00f1a podremos visualizar creado nuestro crawler y le daremos clic en \u2018Run crawler\u2019. Deberiamos ver lo siguiente:<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-5f478530 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  data-sizes=\"auto, (max-width: 480px) 150px\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/image24-1024x546.png\" alt=\"\" width=\"1577\" height=\"636\" title=\"image24\" role=\"img\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1577px; --smush-placeholder-aspect-ratio: 1577\/636;\" \/><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading has-text-color has-link-color wp-elements-55f3368de8a5c32ee6b597bd267a1fdb\" style=\"color:#000000\"><strong>Creacion del Job en AWS Glue<\/strong><\/h3>\n\n\n\n<p>Luego en la misma seccion lateral izquierda de AWS Glue buscaremos la seccion de ETL Job y crearemos un flujo con la interfaz grafica, haciendolo de esta manera podremos tener facilmente el c\u00f3digo generado para tener acceso a nuestra fuente.<\/p>\n\n\n\n<p>Luego de agregas nuestro objeto de cat\u00e1logo y seleccionar lo que hemos creado previamente. Deberiamos visualizar el job de la siguiente manera:<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-ed69d9b6 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  data-sizes=\"auto, (max-width: 480px) 150px\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/image25-1024x473.png\" alt=\"\" width=\"1854\" height=\"856\" title=\"image25\" role=\"img\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1854px; --smush-placeholder-aspect-ratio: 1854\/856;\" \/><\/figure><\/div>\n\n\n\n<p>Hasta aqu\u00ed ya procederemos a colocar un nombre al job y agregar nuestro c\u00f3digo. Haremos uso de las siguientes librerias:<\/p>\n\n\n\n<p>`DecisionTreeClassifier` construye un modelo de \u00e1rbol de decisi\u00f3n para clasificaci\u00f3n.<\/p>\n\n\n\n<p>`MulticlassClassificationEvaluator` eval\u00faa su rendimiento multiclase. `CrossValidator` realiza validaci\u00f3n cruzada, ajustando hiperpar\u00e1metros con `ParamGridBuilder`.<\/p>\n\n\n\n<p>Juntos, permiten la construcci\u00f3n, evaluaci\u00f3n y ajuste eficaz de modelos de \u00e1rboles de clasificaci\u00f3n en PySpark MLlib.<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-39f9d880 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  data-sizes=\"auto, (max-width: 480px) 150px\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/image2-1024x464.png\" alt=\"\" width=\"1299\" height=\"589\" title=\"image2\" role=\"img\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1299px; --smush-placeholder-aspect-ratio: 1299\/589;\" \/><\/figure><\/div>\n\n\n\n<p>A continuaci\u00f3n, se muestra el c\u00f3digo utilizado:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import sys\nfrom awsglue.transforms import *\nfrom awsglue.utils import getResolvedOptions\nfrom pyspark.context import SparkContext\nfrom awsglue.context import GlueContext\nfrom awsglue.job import Job\nfrom pyspark.ml.feature import StringIndexer, VectorAssembler\nfrom pyspark.ml.evaluation import MulticlassClassificationEvaluator\nfrom pyspark.ml.tuning import CrossValidator, ParamGridBuilder\nfrom pyspark.ml.classification import DecisionTreeClassifier\nfrom pyspark.ml import Pipeline\nfrom pyspark.sql.functions import col,udf\nfrom pyspark.sql.window import Window\nfrom pyspark.sql import functions as F\nfrom awsglue.dynamicframe import DynamicFrame\nfrom pyspark.sql.types import ArrayType, DoubleType\n\n# Inicializar contexto de Spark y Glue\nargs = getResolvedOptions(sys.argv, [\"JOB_NAME\"])\nsc = SparkContext()\nglueContext = GlueContext(sc)\nspark = glueContext.spark_session\njob = Job(glueContext)\njob.init(args[\"JOB_NAME\"], args)\n# Nombre de la base de datos y tabla en el cat\u00e1logo de AWS Glue\ndatabase_name = \"db-decision-tree-iris\"\ninput_table_name = \"mliris_csv\"\noutput_table_name = \"mliris_results\"\n# Crear DynamicFrame desde el cat\u00e1logo de Glue\ninput_dyf = glueContext.create_dynamic_frame.from_catalog(\n    database=database_name,\n    table_name=input_table_name,\n)\n# Convertir DynamicFrame a DataFrame\ndf = input_dyf.toDF()\n# A\u00f1adir una columna de \u00edndice\ndf = df.withColumn(\"row_index\", F.monotonically_increasing_id())\n# Preprocessing: StringIndexer for categorical labels\nstringIndexer  = StringIndexer(inputCol=\"species\", outputCol=\"label\")\n# Preprocessing: VectorAssembler for feature columns\nassembler = VectorAssembler(inputCols=[\"sepal_length\", \"sepal_width\", \"petal_length\", \"petal_width\"], outputCol=\"features\")\n#data = assembler.transform(data)\n# Split data into training and testing sets\ntrain_data, test_data = df.randomSplit([0.8, 0.2], seed=42)\n# Create a Decision Tree Classifier instance\ndt = DecisionTreeClassifier(labelCol='label', featuresCol='features')\n# Assemble all the steps (indexing, assembling, and model building) into a pipeline.\npipeline = Pipeline(stages=[stringIndexer, assembler, dt])\nparamGrid = ParamGridBuilder() \\\n    .addGrid(dt.maxDepth,[3, 5, 7]) \\\n    .addGrid(dt.minInstancesPerNode, [1,3,5]) \\\n    .build()\ncrossval = CrossValidator(estimator=pipeline, estimatorParamMaps=paramGrid,\n                      evaluator=MulticlassClassificationEvaluator(\n                      labelCol='label', predictionCol='prediction', metricName='accuracy'),\n                      numFolds=5)\n\ncvModel = crossval.fit(train_data)\nbest_model = cvModel.bestModel\npredictions = best_model.transform(test_data)\npredictions.show(100,truncate=False)\n\n\n# Evaluate the model performance\nevaluator = MulticlassClassificationEvaluator(labelCol=\"label\", predictionCol=\"prediction\", metricName=\"accuracy\")\naccuracy = evaluator.evaluate(predictions)\nprint(f\"Test Accuracy: {accuracy:.2f}\")\nprecision = evaluator.evaluate(predictions, {evaluator.metricName: \"weightedPrecision\"})\nprint(f\"Weighted Precision: {precision:.2f}\")\nrecall = evaluator.evaluate(predictions, {evaluator.metricName: \"weightedRecall\"})\nprint(f\"Weighted Recall: {recall:.2f}\")\nf1_score = evaluator.evaluate(predictions, {evaluator.metricName: \"f1\"})\nprint(f\"F1 Score: {f1_score:.2f}\")\n# Acceder al modelo de \u00e1rbol de decisi\u00f3n dentro del pipeline\ntree_model = best_model.stages[-1]  # Suponiendo que el clasificador de \u00e1rbol de decisi\u00f3n es el \u00faltimo paso en tu pipeline\n# Obtener el resumen del modelo\nprint(tree_model._java_obj.toDebugString())\noutput_path = \"s3:\/\/bucket-training-tree-decision\/output\/parquet_data\/\"\n# Funci\u00f3n UDF para convertir VectorUDT a lista\nvector_to_list_udf = udf(lambda v: v.toArray().tolist(), returnType=ArrayType(DoubleType()))\n# Convertir la columna probability a lista\ndf = predictions.withColumn(\"probability\", vector_to_list_udf(col(\"probability\")))\ndf = df.withColumn(\"rawPrediction\", vector_to_list_udf(col(\"rawPrediction\")))\ndf = df.withColumn(\"features\", vector_to_list_udf(col(\"features\")))\ndf_subset = df.select(*[\"sepal_length\", \"sepal_width\", \"petal_length\", \"petal_width\", \"species\", \"row_index\", \"label\", \"features\", \"prediction\", \"probability\"])\n# Escribir el DataFrame en formato Parquet en S3\ndf_subset.write.parquet(output_path, mode=\"overwrite\")\n# Finalizar trabajo\njob.commit()\n\n\n<\/pre>\n\n\n\n<p>Como se visualiza el estado del job se encuentra en \u2018Succeeded\u2019:<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-17cc2366 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  data-sizes=\"auto, (max-width: 480px) 150px\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/image26-1024x479.png\" alt=\"\" width=\"1843\" height=\"863\" title=\"image26\" role=\"img\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1843px; --smush-placeholder-aspect-ratio: 1843\/863;\" \/><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading has-text-color has-link-color wp-elements-5be406dc0608907261a48c0050e00ba9\" style=\"color:#000000\"><strong><strong><strong><strong>Configuraci\u00f3n de pol\u00edticas mediante S3 y IAM<\/strong><\/strong><\/strong><\/strong><\/h3>\n\n\n\n<p>A continuaci\u00f3n, debemos tambi\u00e9n configurar las pol\u00edticas de IAM para el acceso desde Glue hacia S3. Iremos a la secci\u00f3n de permisos en nuestro bucket:<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-d3891e34 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  data-sizes=\"auto, (max-width: 480px) 150px\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/image27-1024x523.png\" alt=\"\" width=\"1603\" height=\"819\" title=\"image27\" role=\"img\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1603px; --smush-placeholder-aspect-ratio: 1603\/819;\" \/><\/figure><\/div>\n\n\n\n<p>Editaremos la pol\u00edtica de la siguiente manera:<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-b93b21eb wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  data-sizes=\"auto, (max-width: 480px) 150px\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/image3-1024x462.png\" alt=\"\" width=\"1553\" height=\"700\" title=\"image3\" role=\"img\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1553px; --smush-placeholder-aspect-ratio: 1553\/700;\" \/><\/figure><\/div>\n\n\n\n<p>Luego en IAM a nuestro rol de machine que creamos en la secci\u00f3n de AWS Grawler, a\u00f1adiremos el rol de s3Full Access. Seleccionamos nuestro rol:<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-4d1b1e47 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  data-sizes=\"auto, (max-width: 480px) 150px\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/image5-1024x470.png\" alt=\"\" width=\"1875\" height=\"861\" title=\"image5\" role=\"img\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1875px; --smush-placeholder-aspect-ratio: 1875\/861;\" \/><\/figure><\/div>\n\n\n\n<p>Verificamos que tengamos nuestra relacion de confianza de la siguiente manera:<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-54d26984 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  data-sizes=\"auto, (max-width: 480px) 150px\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/image6-1024x464.png\" alt=\"\" width=\"1875\" height=\"861\" title=\"image6\" role=\"img\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1875px; --smush-placeholder-aspect-ratio: 1875\/861;\" \/><\/figure><\/div>\n\n\n\n<p>Luego a\u00f1adiremos el permiso de AmazonS3FullAccess.<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-5df46368 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  data-sizes=\"auto, (max-width: 480px) 150px\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/image7-1024x458.png\" alt=\"\" width=\"1875\" height=\"861\" title=\"image7\" role=\"img\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1875px; --smush-placeholder-aspect-ratio: 1875\/861;\" \/><\/figure><\/div>\n\n\n\n<p>Finalmente al agregar el permiso deberiamos de ver nuestros permisos de la siguiente manera:<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-78ed290c wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  data-sizes=\"auto, (max-width: 480px) 150px\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/image8-1024x466.png\" alt=\"\" width=\"1887\" height=\"858\" title=\"image8\" role=\"img\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1887px; --smush-placeholder-aspect-ratio: 1887\/858;\" \/><\/figure><\/div>\n\n\n\n<p>Ahora mediante CloudWatch podremos visualizar el log de nuestro job, verificar si se guardo correctamente nuestro modelo y tambien poder ver una previsualizaci\u00f3n de las reglas y predicciones.<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-6cbc00e5 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  data-sizes=\"auto, (max-width: 480px) 150px\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/image9-1024x470.png\" alt=\"\" width=\"1859\" height=\"853\" title=\"image9\" role=\"img\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1859px; --smush-placeholder-aspect-ratio: 1859\/853;\" \/><\/figure><\/div>\n\n\n\n<p>Aqu\u00ed podemos visualizar nuestros resultados e incluso la regla de clasificaci\u00f3n:<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-24393634 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  data-sizes=\"auto, (max-width: 480px) 150px\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/image10-1024x398.png\" alt=\"\" width=\"1557\" height=\"605\" title=\"image10\" role=\"img\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1557px; --smush-placeholder-aspect-ratio: 1557\/605;\" \/><\/figure><\/div>\n\n\n\n<p>Aqu\u00ed se puede visualizar los valores de Accuracy , weighted precision y recall, y el F1 Score. A continuaci\u00f3n, se explica el significado de cada m\u00e9trica.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Test Accuracy (Exactitud de Prueba):<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Significado:<\/strong> proporci\u00f3n de predicciones correctas respecto al total de predicciones en el conjunto de prueba.<\/li>\n\n\n\n<li><strong>Utilidad:<\/strong> mide la precisi\u00f3n general del modelo y es especialmente \u00fatil cuando las clases est\u00e1n balanceadas.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Weighted Recall (Recuperaci\u00f3n Ponderada):<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Significado:<\/strong> promedio ponderado de las tasas de verdaderos positivos para cada clase.<\/li>\n\n\n\n<li><strong>Utilidad:<\/strong> eval\u00faa la capacidad del modelo para recuperar instancias de cada clase, considerando el desequilibrio en la distribuci\u00f3n de las clases.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Weighted Precision (Precisi\u00f3n Ponderada):<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Significado:<\/strong> promedio ponderado de las precisiones para cada clase.<\/li>\n\n\n\n<li><strong>Utilidad:<\/strong> indica la proporci\u00f3n de instancias correctamente clasificadas entre las que el modelo predijo como positivas, considerando el desequilibrio de clases<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>F1 Score:<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Significado:<\/strong> media arm\u00f3nica de precisi\u00f3n y recuperaci\u00f3n. Cuantifica la relaci\u00f3n equilibrada entre la precisi\u00f3n y la capacidad de recuperaci\u00f3n del modelo.<\/li>\n\n\n\n<li><strong>Utilidad:<\/strong> \u00fatil en problemas de clasificaci\u00f3n desbalanceados, ya que considera tanto los falsos positivos como los falsos negativos, proporcionando una m\u00e9trica global de rendimiento del modelo. Un F1 Score alto indica un equilibrio entre precisi\u00f3n y recuperaci\u00f3n.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>Finalmente se guardaron los resultados de nuestro modelo en nuestro bucket en un folder llamado output, deberia verse de la siguiente manera:<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-d58e3d2d wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  data-sizes=\"auto, (max-width: 480px) 150px\" data-src=\"https:\/\/beta.bluetab.net\/wp-content\/uploads\/2024\/06\/image11-1024x271.png\" alt=\"\" width=\"1863\" height=\"493\" title=\"image11\" role=\"img\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1863px; --smush-placeholder-aspect-ratio: 1863\/493;\" \/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-color has-link-color wp-elements-c1837d41878144ad24603768114eb7a8\" style=\"color:#000000\"><strong><strong>Conclusi\u00f3n<\/strong><\/strong><\/h2>\n\n\n\n<p>Esta arquitectura de soluci\u00f3n en AWS permite a las organizaciones no solo implementar \u00e1rboles de decisi\u00f3n eficaces sino tambi\u00e9n migrar datos desde sistemas heredados como SQL Server. Ambos procesos se combinan para empoderar a las organizaciones en la toma de decisiones informadas, mejorando la eficiencia operativa y maximizando las oportunidades de mercado<strong>. <\/strong>Como puedes ver, los \u00e1rboles de decisi\u00f3n son una herramienta muy \u00fatil para tomar decisiones inteligentes basadas en datos.<\/p>\n\n\n\n<p>En Bluetab, te ayudamos a implementarlos en tu organizaci\u00f3n para que puedas mejorar tu eficiencia operativa, personalizar tus ofertas y aprovechar las oportunidades de mercado. Si quieres saber m\u00e1s sobre c\u00f3mo podemos ayudarte, no dudes en contactarnos.<\/p>\n<\/div>\n\n\n\n<div class=\"uagb-position__sticky wp-block-uagb-container uagb-block-c13246b6\">\t\t\t\t<div class=\"wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-493dadc9      \"\n\t\t\t\t\tdata-scroll= \"1\"\n\t\t\t\t\tdata-offset= \"71\"\n\t\t\t\t\tstyle=\"\"\n\t\t\t\t>\n\t\t\t\t<div class=\"uagb-toc__wrap\">\n\t\t\t\t\t\t<div class=\"uagb-toc__title\">\n\t\t\t\t\t\t\tTabla de contenidos\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"uagb-toc__list-wrap \">\n\t\t\t\t\t\t<ol class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#sab\u00edas-que-los-\u00e1rboles-de-decisi\u00f3n-pueden-ayudarte-a-resolver-problemas-complejos\" class=\"uagb-toc-link__trigger\">\u00bfSab\u00edas que los \u00e1rboles de decisi\u00f3n pueden ayudarte a resolver problemas complejos?<\/a><li class=\"uagb-toc__list\"><a href=\"#creacion-del-bucket-en-amazon-s3\" class=\"uagb-toc-link__trigger\">Creacion del bucket en Amazon S3<\/a><li class=\"uagb-toc__list\"><a href=\"#creaci\u00f3n-del-servicio-aws-glue-crawler\" class=\"uagb-toc-link__trigger\">Creaci\u00f3n del servicio AWS Glue Crawler<\/a><li class=\"uagb-toc__list\"><a href=\"#creacion-del-job-en-aws-glue\" class=\"uagb-toc-link__trigger\">Creacion del Job en AWS Glue<\/a><li class=\"uagb-toc__list\"><a href=\"#configuraci\u00f3n-de-pol\u00edticas-mediante-s3-y-iam\" class=\"uagb-toc-link__trigger\">Configuraci\u00f3n de pol\u00edticas mediante S3 y IAM<\/a><\/ol>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Jeanpierre Nun\u0303ezSenior Data Engineer \u00bfSab\u00edas que los \u00e1rboles de decisi\u00f3n pueden ayudarte a resolver problemas complejos? En este art\u00edculo, te revelaremos c\u00f3mo en Bluetab utilizamos esta poderosa herramienta de an\u00e1lisis de datos con el fin de impulsar a las decisiones de nuestros clientes en diversas industrias usando AWS. \u00c1rboles de decisi\u00f3n: herramientas poderosas para la [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":18445,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"elementor_theme","format":"standard","meta":{"inline_featured_image":false,"_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[21,667,631],"tags":[],"class_list":{"0":"post-18376","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-blog-es","8":"category-practices","9":"category-tech","10":"entry"},"uagb_featured_image_src":{"full":["https:\/\/bluetab.org\/wp-content\/uploads\/2024\/06\/AWS-Jeanpier.png",1200,600,false],"thumbnail":["https:\/\/bluetab.org\/wp-content\/uploads\/2024\/06\/AWS-Jeanpier-150x150.png",150,150,true],"medium":["https:\/\/bluetab.org\/wp-content\/uploads\/2024\/06\/AWS-Jeanpier-300x150.png",300,150,true],"medium_large":["https:\/\/bluetab.org\/wp-content\/uploads\/2024\/06\/AWS-Jeanpier-768x384.png",768,384,true],"large":["https:\/\/bluetab.org\/wp-content\/uploads\/2024\/06\/AWS-Jeanpier-1024x512.png",1024,512,true],"1536x1536":["https:\/\/bluetab.org\/wp-content\/uploads\/2024\/06\/AWS-Jeanpier.png",1200,600,false],"2048x2048":["https:\/\/bluetab.org\/wp-content\/uploads\/2024\/06\/AWS-Jeanpier.png",1200,600,false],"sidebar-featured":["https:\/\/bluetab.org\/wp-content\/uploads\/2024\/06\/AWS-Jeanpier-75x75.png",75,75,true],"genesis-singular-images":["https:\/\/bluetab.org\/wp-content\/uploads\/2024\/06\/AWS-Jeanpier-702x526.png",702,526,true]},"uagb_author_info":{"display_name":"Bluetab","author_link":"https:\/\/bluetab.org\/es\/author\/user\/"},"uagb_comment_info":0,"uagb_excerpt":"Jeanpierre Nun\u0303ezSenior Data Engineer \u00bfSab\u00edas que los \u00e1rboles de decisi\u00f3n pueden ayudarte a resolver problemas complejos? En este art\u00edculo, te revelaremos c\u00f3mo en Bluetab utilizamos esta poderosa herramienta de an\u00e1lisis de datos con el fin de impulsar a las decisiones de nuestros clientes en diversas industrias usando AWS. \u00c1rboles de decisi\u00f3n: herramientas poderosas para la&hellip;","_links":{"self":[{"href":"https:\/\/bluetab.org\/es\/wp-json\/wp\/v2\/posts\/18376","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bluetab.org\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bluetab.org\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bluetab.org\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bluetab.org\/es\/wp-json\/wp\/v2\/comments?post=18376"}],"version-history":[{"count":9,"href":"https:\/\/bluetab.org\/es\/wp-json\/wp\/v2\/posts\/18376\/revisions"}],"predecessor-version":[{"id":20549,"href":"https:\/\/bluetab.org\/es\/wp-json\/wp\/v2\/posts\/18376\/revisions\/20549"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bluetab.org\/es\/wp-json\/wp\/v2\/media\/18445"}],"wp:attachment":[{"href":"https:\/\/bluetab.org\/es\/wp-json\/wp\/v2\/media?parent=18376"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bluetab.org\/es\/wp-json\/wp\/v2\/categories?post=18376"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bluetab.org\/es\/wp-json\/wp\/v2\/tags?post=18376"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}