DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE...

101
DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE LEARNING PARA TOMA DE DECISIONES EN LOS PROCESOS DE DUE DILIGENCE DEL DERECHO LABORAL Por Laura Lizarazo Jhonathan Borda Proyecto de grado propuesto como cumplimiento de los requisitos para la especialización en Ingeniera de software Director: Ing. Joaquín Meza Revisor: Ing. Oswaldo Romero Universidad Distrital Francisco José de Caldas Facultad de Ingeniería Bogotá 2018

Transcript of DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE...

Page 1: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE LEARNING PARA TOMA DE DECISIONES EN LOS PROCESOS DE DUE DILIGENCE

DEL DERECHO LABORAL

Por

Laura Lizarazo Jhonathan Borda

Proyecto de grado propuesto como cumplimiento de los requisitos para la especialización en

Ingeniera de software

Director: Ing. Joaquín Meza

Revisor: Ing. Oswaldo Romero

Universidad Distrital Francisco José de Caldas Facultad de Ingeniería

Bogotá 2018

Page 2: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

ii Introducción

El presente trabajo tiene como eje central a la inteligencia artificial que es una rama de las ciencias de

la computación que poco a poco se ha formado como parte de nuestra vida cotidiana y está cambiando

nuestro mundo con significativos avances. Está creando una revolución en conocimiento, formas de

hacer las cosas y cambiando nuestra propia visión del mundo. Así como ahora no concebimos el

mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar la inteligencia artificial

como parte de una vida normal.

La inteligencia artificial tiene muchas ramas, pero en la que nos basamos para este proyecto fue

machine learning o aprendizaje de máquina, la idea principal de esta disciplina es hacer que los

procesos con el pasar del tiempo del tiempo se vuelvan más precisos y efectivos, esto se logra con la

identificación de patrones en estos procesos y la aplicación de algoritmos que analizan un conjunto de

datos para imitar el comportamiento humano deseado.

En Colombia la inteligencia artificial está creciendo en las diferentes áreas de aplicación, pero a pesar

de este crecimiento ha tenido poca aceptación de algunas personas y empresas que tienen la errada

creencia de que se reemplazará el trabajo humano, siendo que esta ha servido más para reforzar los

procesos y con la rama de la IA - machine learning disminuir el error humano.

El interés de este documento además de dar una visión general de la inteligencia artificial es

específicamente enfocarnos en el tema de aprendizaje de máquina, y en cómo se aplicó este

conocimiento al análisis de proyectos legales. Nuestro punto de partida y eje para diseñar un modelo

de aprendizaje está basado en un caso de estudio real; tomando la situación de una empresa y

llevándola a una red neuronal.

Page 3: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

iii Tabla de Contenido

PARTE I. CONTEXTUALIZACIÓN DE LA INVESTIGACIÓN ..................................................... ix

1. Capítulo I Descripción de la investigación .......................................................................................... 1

1.1 Planteamiento/Identificación del problema ................................................................................ 1

1.1.1 Planteamiento del problema ...................................................................................................... 1

1.1.2 Formulación del problema ......................................................................................................... 1

1.1.3 Sistematización del problema .................................................................................................... 2

1.2 Objetivos ........................................................................................................................................... 2

1.2.1 Objetivo general .......................................................................................................................... 2

1.2.2 Objetivos específicos .................................................................................................................. 2

1.3 Justificación de la investigación ..................................................................................................... 3

1.3.1 Justificación práctica ................................................................................................................... 3

1.4 Hipótesis ........................................................................................................................................... 3

1.5 Metodología de la investigación ..................................................................................................... 3

1.5.1 Tipo de estudio ............................................................................................................................ 3

1.5.2 Método de investigación ............................................................................................................ 4

PARTE II. DESARROLLO DE LA INVESTIGACIÓN ........................................................................ 5

2. Capítulo II Análisis .................................................................................................................................. 6

2.1 Negocio ............................................................................................................................................. 6

2.1.1 Posse Herrera Ruiz ..................................................................................................................... 6

2.1.2 Proyectos Legales ........................................................................................................................ 6

2.1.3 Derecho Laboral .......................................................................................................................... 7

2.1.4 Due Dilegence ............................................................................................................................. 7

2.2 Inteligencia Artificial ....................................................................................................................... 8

2.2.1 Introducción ................................................................................................................................ 8

2.2.2 Definición y teoría de la inteligencia artificial ......................................................................... 9

2.2.3 Métodos de la inteligencia artificial convencional ................................................................ 11

2.3 Machine Learning .......................................................................................................................... 16

2.3.1 Aprendizaje supervisado .......................................................................................................... 16

2.3.2 Aprendizaje sin supervisión ..................................................................................................... 17

2.3.3 Función de costo ....................................................................................................................... 17

2.3.4 Sobreajuste ................................................................................................................................. 22

2.3.5 Tipos de redes neuronales ........................................................................................................ 22

2.4 Tipos de datos ................................................................................................................................ 34

2.4.1 Datos nominales ........................................................................................................................ 35

2.4.2 Datos ordinales .......................................................................................................................... 35

2.4.3 Datos de intervalo ..................................................................................................................... 36

2.4.4 Datos de relación ....................................................................................................................... 37

3. Capítulo III Desarrollo de la investigación ......................................................................................... 39

3.1 Análisis ............................................................................................................................................ 39

3.1.1 Organización .............................................................................................................................. 39

3.1.2 Proceso ....................................................................................................................................... 40

3.1.3 Aplicación ................................................................................................................................... 40

3.2 Requerimientos .............................................................................................................................. 43

3.2.1 Requerimientos Funcionales .................................................................................................... 43

3.2.2 Requerimientos NO Funcionales ........................................................................................... 43

Page 4: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

iv 3.3 Desarrollo ................................................................................................................................... 44

3.3.1 Origen de los datos ................................................................................................................... 44

3.3.2 Exploración de datos ................................................................................................................ 46

3.3.3 Redes de entrenamiento ........................................................................................................... 57

3.3.4 Web Service ................................................................................................................................ 74

3.3.5 Cliente -Web .............................................................................................................................. 74

3.4 Validación del prototipo ............................................................................................................... 77

PARTE III. CIERRE DE LA INVESTIGACIÓN .................................................................................. 80

4. Conclusiones ............................................................................................................................................ 81

5. Trabajos Futuros ..................................................................................................................................... 82

6. Bibliografía ............................................................................................................................................... 83

ANEXOS .......................................................................................................................................................... 85

ANEXO I. Fragmento del DataSet utilizado en el proyecto ................................................................ 86

ANEXO II. Código del cliente de consumo del servicio...................................................................... 89

ANEXO III. Configuración Web Service ............................................................................................... 90

Instalación de Jupyter Kernel Gateway ............................................................................................... 90

Configuración de Notebook ................................................................................................................. 92

Page 5: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

v Lista de Imágenes

Imagen 1. Dendral primer sistema experto. Tomado de:

https://expertossitemas.webcindario.com/dendral.html ........................................................ 12

Imagen 2. Grafo de síntomas y enfermedades. Tomado de: https://ccc.inaoep.mx/~esucar/Clases-

mgp/caprb.pdf ....................................................................................................................... 14

Imagen 3. Dispositivos basados en la lógica difusa ...................................................................... 15

Imagen 4. Ejemplo de grafico de datos. Autores .......................................................................... 18

Imagen 5. Regresión lineal simple. Autores ................................................................................. 20

Imagen 6. Desviación de regresión lineal. Autores ...................................................................... 20

Imagen 7. Desviación mínima. Autores ........................................................................................ 21

Imagen 8. Comparación de sobreajuste. Autores .......................................................................... 22

Imagen 9. Perceptrón. Tomado de:

https://es.wikipedia.org/wiki/Perceptr%C3%B3n#/media/File:Perceptr%C3%B3n_5_unidad

es.svg ..................................................................................................................................... 23

Imagen 10. Condición lógica AND. Tomado de:

https://commons.wikimedia.org/wiki/File:Computer.Science.AI.Neuron.AND.svg ........... 24

Imagen 11. Condición lógica OR. Tomado de:

https://commons.wikimedia.org/wiki/File:Computer.Science.AI.Neuron.OR.svg .............. 25

Imagen 12. Condición lógica XOR. Tomado de:

https://commons.wikimedia.org/wiki/File:Computer.Science.AI.Neuron.XOR.svg ........... 25

Imagen 13. Función de paso. Tomado de:

https://en.wikipedia.org/wiki/Step_function#/media/File:Dirac_distribution_CDF.svg ...... 27

Imagen 14. Función sigmoide. Tomado de:

https://es.wikipedia.org/wiki/Funci%C3%B3n_sigmoide#/media/File:Funci%C3%B3n_sig

moide_01.svg ........................................................................................................................ 27

Imagen 15. Función tangencial. Tomado de:

https://es.wikipedia.org/wiki/Tangente_hiperb%C3%B3lica#/media/File:Hyperbolic_Tange

nt.svg ..................................................................................................................................... 27

Imagen 16. Función rectificadora. Tomado de:

https://es.wikipedia.org/wiki/Rectificador_(redes_neuronales)#/media/File:Rectifier_and_so

ftplus_functions.svg .............................................................................................................. 28

Imagen 17. Redes recurrentes. Tomado de:

https://www.asimovinstitute.org/author/fjodorvanveen/ ...................................................... 29

Imagen 18. Autocodificadores. Tomado de:

https://www.asimovinstitute.org/author/fjodorvanveen/ ...................................................... 29

Imagen 19. Redes con aleatoriedad. Tomado de:

https://www.asimovinstitute.org/author/fjodorvanveen/ ...................................................... 30

Imagen 20. Red profunda. Tomado de: https://www.asimovinstitute.org/author/fjodorvanveen/ 31

Imagen 21. Redes profundas compuestas. Tomado de:

https://www.asimovinstitute.org/author/fjodorvanveen/ ...................................................... 31

Imagen 22. Funcionamiento de red convolucional. Tomado de:

https://stats.stackexchange.com/questions/146413/why-convolutional-neural-networks-

belong-to-deep-learning ........................................................................................................ 32

Imagen 23. Redes especializadas. Tomado de:

https://www.asimovinstitute.org/author/fjodorvanveen/ ...................................................... 32

Page 6: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

vi Imagen 24. Red de turing. Tomado de: https://www.asimovinstitute.org/author/fjodorvanveen/

............................................................................................................................................... 34

Imagen 25. Ejemplo de datos nominales. Tomado de: https://medium.com/ai3-theory-practice-

business/the-engineers-guide-to-machine-learning-data-processing-data-types-

ba40e6bf8765 ........................................................................................................................ 35

Imagen 26. Ejemplo de datos ordinales. Tomado de: https://medium.com/ai3-theory-practice-

business/the-engineers-guide-to-machine-learning-data-processing-data-types-

ba40e6bf8765 ........................................................................................................................ 36

Imagen 27. Ejemplo de datos de intervalo. Tomado de: https://medium.com/ai3-theory-practice-

business/the-engineers-guide-to-machine-learning-data-processing-data-types-

ba40e6bf8765 ........................................................................................................................ 37

Imagen 28. Ejemplo de datos de relación. Tomado de: https://medium.com/ai3-theory-practice-

business/the-engineers-guide-to-machine-learning-data-processing-data-types-

ba40e6bf8765 ........................................................................................................................ 38

Imagen 29. Punto de vista de negocio. Autores ............................................................................ 39

Imagen 30. Punto de vista de proceso. Autores ............................................................................ 40

Imagen 31. Microservicios. Tomado de: https://docs.microsoft.com/es-

es/azure/architecture/guide/architecture-styles/images/microservices-logical.svg .............. 41

Imagen 32. Diseño básico de microservicio. Autores ................................................................... 41

Imagen 33. Diseño general de arquitectura de microservicios. Tomado de:

https://docs.microsoft.com/es-es/azure/architecture/guide/architecture-

styles/images/microservices-acs.png .................................................................................... 42

Imagen 34. Diseño y herramientas del prototipo. Autores ........................................................... 42

Imagen 35. Diseño de base de datos. Autores. ............................................................................. 44

Imagen 36. Flujo de control de la ETL. Autores .......................................................................... 45

Imagen 37. Flujo de datos de la ETL. Autores. ............................................................................ 45

Imagen 38. Asignaciones de columnas. Autores. ......................................................................... 46

Imagen 39. Categorización de los datos ....................................................................................... 47

Imagen 40. Histograma de la frecuencia de los datos. Autores .................................................... 48

Imagen 41.Cantidad de casos de Due Diligence por tipo de empresa. Autores. .......................... 49

Imagen 42. Cantidad de casos Due Diligence por tipo de caso. Autores. .................................... 50

Imagen 43. Tiempo en días por tipo de caso y empresa. Autores. ............................................... 50

Imagen 44. Total de casos por país. Autores. ............................................................................... 51

Imagen 45. Comportamiento de los días. Autores ........................................................................ 51

Imagen 46. Ruta principal de árbol de decisiones. Autores. ......................................................... 53

Imagen 47. Ruta alterna de árbol de decisiones. Autores. ............................................................ 54

Imagen 48. Ruta corta en árbol de decisiones. Autores. ............................................................... 55

Imagen 49. Dataset de horas por categorías. Autores. .................................................................. 57

Imagen 50. Logotipo de Anaconda, Jupyter y Spider. Tomado de:

https://www.youtube.com/watch?v=Q0jGAZAdZqM ......................................................... 58

Imagen 51. Primer modelo de regresión lineal. Autores. ............................................................. 59

Imagen 52. Procesamiento del primer modelo de regresión lineal. Autores. ............................... 61

Imagen 53. Prototipo de red neural. Autores. ............................................................................... 63

Imagen 54. Notebook del modelo. Autores. ................................................................................. 65

Imagen 55. Prototipo de red neural sin nodos de activación sigmoide. Autores. ......................... 66

Imagen 56. Prototipo de red neural. Autores. ............................................................................... 67

Page 7: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

vii Imagen 57. Notebook del modelo.Autores. .............................................................................. 69

Imagen 58. Prototipo de red neural final sigmoide. Autores. ....................................................... 70

Imagen 59. Características de la maquina donde se realiza el entrenamiento de la red. Autores. 72

Imagen 60. Uso de máquina. Autores. .......................................................................................... 72

Imagen 61. Notebook del modelo final. Autores. ......................................................................... 73

Imagen 62. Reporte del aplicativo. Autores .................................................................................. 75

Imagen 63. Formulario de predicción de datos. Autores. ............................................................. 76

Imagen 64. Componentes del aplicativo. Autores. ....................................................................... 77

Imagen 65. Calculo del error cuadrático. Autores. ....................................................................... 77

Page 8: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

viii Lista de tablas

Tabla 1. Campos de interfaz. Autores. .......................................................................................... 43

Tabla 2. Validación del prototipo de regresión lineal. Autores. ................................................... 63

Tabla 3. Comparación de predicción del prototipo vs datos reales. ............................................. 78

Page 9: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

ix

PARTE I. CONTEXTUALIZACIÓN DE

LA INVESTIGACIÓN

Page 10: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

1

1. Capítulo I

Descripción de la investigación

1.1 Planteamiento/Identificación del problema

1.1.1 Planteamiento del problema

En todo tipo de proyecto se desea hacer un correcto planeamiento de recursos, gestión y

costes. En este caso en particular se evaluó el proceso de tipo Due Diligence en el área de

práctica del derecho laboral, este proceso y su metodología se detalla más adelante de manera

puntual, pero consiste en una evaluación de los estados jurídicos de una empresa.

Actualmente este análisis se hace por medio de comparación de experiencias con proyectos

anteriores similares. Esta forma de análisis pone a prueba totalmente al experto que debe

realizar esta labor, y muchas veces se prestan casos o situaciones particulares que hacen que se

produzca costos diferentes que pueden causar una mala evaluación e incluso una pérdida de

capital. Si esto no se trata, este problema va a seguir generando pérdidas de dinero y recursos,

además de la valiosa información que se está perdiendo de cada uno de esos proyectos. Por

esta razón se propone el diseño de un sistema basado en machine learning para analizar y

aprender de los proyectos con los que se alimenta y así mitigar los posibles errores de análisis

y poder usar los datos de cada proyecto cargado para hacer predicciones más contundentes.

1.1.2 Formulación del problema

Entonces, ¿Cómo se puede minimizar el riesgo de fallo en la evaluación? Esta pregunta es el

eje de nuestra investigación y se quiere abordar por medio de tecnologías innovadoras y

competitivas.

En este ejercicio se optó por usar Machine Learning como motor y procesador, para generar

un modelo que cumpla en responder a esta pregunta de investigación, y que solvente el

problema planteado, además de generar una forma de seguir construyendo un sistema más

sólido y eficaz.

Page 11: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

2

1.1.3 Sistematización del problema

Pero a raíz de esta selección surgen nuevos interrogantes.

• ¿Cómo trabaja y se implemente el Aprendizaje de máquina?

• ¿Qué modelos neurales podemos usar para realizar el análisis de datos

requeridos?

• ¿Qué variables son relevantes, dentro de nuestro proceso de análisis?

• ¿Qué modelo es el que más se ajusta a nuestro proyecto?

1.2 Objetivos

1.2.1 Objetivo general

Diseñar el prototipo de una aplicación que haga uso de los algoritmos de aprendizaje

supervisado para realizar un análisis de los proyectos de tipo “Due Diligence” en el derecho

laboral para que a través de las pasadas experiencias encuentre etiquetas de coincidencia y

prediga estimaciones precisas, disminuyendo los actuales altos índices de error.

1.2.2 Objetivos específicos

• Obtener una definición de Machine Learning que sirva como herramienta y poderla

llevar al campo práctico.

• Realizar un análisis que prediga estimaciones de presupuesto, recursos y tiempo cada

vez más asertivas; basándonos en la definición teórica y modelos identificados.

• Validar la efectividad del modelo funcional propuesto, por medio de la simulación de

procesamiento de datos para así mejorar o reestructurar el diseño.

Page 12: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

3

1.3 Justificación de la investigación

1.3.1 Justificación práctica

Machine Learning es una rama de la inteligencia artificial y se tomó como modelo para generar

el proceso de aprendizaje aplicado al Due Diligence en el derecho laboral. Teniendo en cuenta

esta premisa se realizó una investigación previa para recolectar la mayor cantidad de

información que encamine a la solución, una vez recolectada esta información se inició con el

diseño del modelo. Generando así una base de conocimiento (ya que no existe), y además un

instrumento que se puede desarrollar, implementar y probar, o usar para futuras

investigaciones. En pocas palabras, se generó un diseño para análisis de proyectos altamente

estable y evolutivo, capaz de adaptarse y crecer a medida que se alimenta de datos de proyectos.

El producto de esta investigación sirve como referencia y campo de prueba para el

mejoramiento de los procesos de Due Diligence en otras áreas como tributario, litigios,

inmobiliario, etc... Para la firma de abogados Posse Herrera Ruiz, y se espera que se pueda

generar un modelo lo suficientemente complejo y estructurado para que pueda seguir

aprendiendo y adaptarse a otro tipo de proyectos fuera del área legal.

1.4 Hipótesis

La herramienta que plantea este proyecto será capaz de evaluar correctamente la cantidad de

recursos requeridos en los casos de Due Diligence, además con su uso se disminuirá la pérdida

de tiempo, dinero y otros recursos, minimizando los riesgos en la gestión del proyecto legal.

1.5 Metodología de la investigación

1.5.1 Tipo de estudio

El tipo de estudio es descriptivo ya que uno de los objetivos es identificar elementos y

características del problema de investigación, ahondar de forma teórica y generar un modelo

de análisis basado en las experiencias de una organización, además se espera que el resultado

Page 13: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

4

de esta investigación permita formular nuevas hipótesis y generar un modelo mucho más

consistente y complejo que se adapte a nuevos escenarios.

1.5.2 Método de investigación

Se utilizó el método de investigación inductivo para plantear el marco teórico y así

fundamentar y contextualizar la investigación. Posteriormente para generar el diseño se

cambió al método deductivo, dando como resultado un método combinado de inducción-

deducción.

Page 14: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

5

PARTE II. DESARROLLO DE LA

INVESTIGACIÓN

Page 15: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

6

2. Capítulo II

Análisis

2.1 Negocio

2.1.1 Posse Herrera Ruiz Este proyecto fue un ejercicio que se realizó en la firma de abogados Posse Herrera Ruiz, la

revista dinero define a esta firma como “una firma de abogados que actualmente cuenta con

16 socios y más de 120 abogados especializados en diferentes áreas de prácticas e industrias

en Bogotá, Medellín y Barranquilla, siendo así una firma ‘full service’ con presencia en estas

ciudades, que maneja temas como propiedad intelectual, derecho público y comercio exterior.”

(Posse Herrera Ruiz, firma colombiana del año, 2015)

La firma se especializa en las siguientes áreas:

• Fusiones y Adquisiciones

• Derecho de la Competencia

• Resolución de Conflictos

• Derecho Corporativo

• Propiedad Intelectual

• Derecho Laboral y Migratorio

• Impuestos, Aduanas y Comercio Exterior

• Seguros

• Mercado de Capitales y Derecho Financiero

• Recursos Naturales y Energía

• Infraestructura y Asociaciones Público-Privadas APP

• Inmobiliario, Urbanismo y Agroindustria

• Medio Ambiente

2.1.2 Proyectos Legales Legal Projects Management (LPM) es la aplicación de conceptos de gestión de proyectos al

Page 16: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

7

área jurídica, busca estimar un caso jurídico como un proyecto y poderle dar un manejo

estratégico de planificación, ejecución y cierre. Por lo general se rigen bajo PMI aunque en los

últimos años se han implementado proyectos con metodologías ágiles como SCRUM.

Es importante controlar un caso jurídico desde antes que comience para poder llegar a

culminarlo exitosamente para las partes interesadas. Como cliente se está interesado en

conocer el costo del proyecto anticipadamente y como proveedor de servicios se desea saber

la estimación de recursos para hacer una propuesta al cliente.

2.1.3 Derecho Laboral El derecho laboral en Colombia surge cuando los trabajadores se manifiestan ante el

desconocimiento de sus necesidades por parte de los grandes empresarios, a raíz de esto se

crean las leyes que protegen sus horarios de trabajo, su derecho a la salud y las pensiones, etc...

Y se vuelven necesarios como servicios mínimos a los cuales debe tener acceso un trabajador.

El derecho laboral es la rama del derecho que regula las relaciones entre empleadores y

empleados, con el objetivo de proteger el derecho fundamental al trabajo que tenemos los

colombianos y el cual el estado debe garantizar.

2.1.4 Due Diligence

Cuando se planea realizar un proceso de compra (generalmente de empresas) es necesario

realizar una investigación integral en todas las áreas (Laboral, tributario, fiscal, medio

ambiental, litigios, etc.…) de los estados de la empresa objeto de la adquisición, esta

investigación permite al cliente tener el máximo de información disponible en especial los

riesgos existentes y se pueda tomar una decisión con respecto a la adquisición.

En el área Laboral el proceso de Due Diligence debe identificar los aspectos donde haya

incumplimientos legales y que tengan impacto en los estados financieros, los siguientes

aspectos se consideran como los más importantes a tener en cuenta:

Page 17: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

8

• Cumplimiento de la norma vigente

• Revisión del proceso de contratación

• Políticas de recursos humanos

• Política retributiva

• Seguros sociales

• Ausentismo en la compañía

• Incapacidades

• Otros... atrasos salariales, indemnizaciones de pago, riesgos laborales etc. 2.2 Inteligencia Artificial

2.2.1 Introducción

La palabra inteligencia aún no cuenta con una definición aceptada, sin embargos varios autores

de diferentes ramas del conocimiento coinciden que la inteligencia es una capacidad o

habilidad cognitiva de representar el mundo que nos rodea. Una de estas representaciones más

básicas es el lenguaje y la escritura donde por medio de los símbolos se intenta representar la

realidad.

La Real Academia de la Lengua Española define la inteligencia como la facultad de conocer,

entender o comprender, pero es una definición muy ambigua puesto que hasta un sistema de

aire acondicionado podría considerarse un sistema inteligente de bajo nivel por eso es que hay

muchas formas de definir un comportamiento inteligente y es necesario hacer énfasis en que

para considerar un sistema inteligente, se deben considerar todos los aspectos y demostrar un

alto nivel en las facultades que define la RAE.

La inteligencia artificial se considera que tuvo sus orígenes con los silogismos propuestos por

Aristóteles, esta forma de razonamiento es la base de la lógica y el pensamiento científico,

consta de dos premisas y una conclusión. Después de esto vinieron muchos aportes de

filósofos, matemáticos y científicos como (Boole, Gardner etc..) pero no fue hasta el año 1936

cuando Alan Turing desarrollo la famosa “máquina automática” que es un modelo

computacional de un dispositivo autómata finito donde se pueden leer, escribir o borrar

símbolos. Este concepto es la base del funcionamiento de los computadores que usamos hoy

en día.

Page 18: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

9

En 1950 Alan Turing creo el Test de Turing para determinar las habilidades de

comportamiento inteligente en las maquinas, el fundamento de esta prueba era determinar si

las personas lograban diferenciar cuando estaban comunicándose con una maquina o con otro

ser humano.

Con estos aportes de Turing y de otros grandes científicos a la lógica matemática y el

razonamiento, en 1958 John McCarthy en el Instituto Tecnológico de Massachussets (MIT)

consolida el termino de inteligencia artificial refiriéndose a las maquinas que realizan cálculos

inteligentes y proponiendo utilizar el cálculo como un idioma para representar el

conocimiento.

Se pensaba que para los años 70 el mundo iba a estar rodeado de inteligencia artificial, pero

no fue sino hasta los años 90 donde las empresas empezaron a realizar inversiones en el área

de análisis y procesamiento de datos como foco principal en la inteligencia artificial. En 1997

se empodero el termino cuando IBM desarrollo Deep Blue un sistema informático que fue

capaz de vencer al campeón mundial del ajedrez.

2.2.2 Definición y teoría de la inteligencia artificial

La inteligencia artificial es la rama de la ciencia que trata de entender la inteligencia o el

comportamiento inteligente de los seres humanos y replicarlo en la construcción de un sistema

que sea útil en algún área del conocimiento como la psicología, física, economía, etc.

La IA aborda un complejo problema que es determinar “¿Cómo es posible que un diminuto

cerebro (sea biológico o electrónico) tenga capacidad para percibir comprender, predecir y

manipular un mundo que en tamaño y complejidad lo excede?” (Ponce Cruz, 2010) fue aquí

donde se comprendido que la IA debía empezar a comprenderse desde lo más básico de la

raciocinio, el razonamiento animal para luego guiar el enfoque hacia la naturaleza, a partir de

esto surgieron tres grandes grupos en los que se centra la inteligencia artificial:

Page 19: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

10

• Comunicación y percepción: Aquí se encuentra todo lo relacionado con el lenguaje

natural y todo lo que se obtiene a través de los sentidos, consiste en intentar que la

maquina pueda comprender el lenguaje y el contexto de las palabras en una

conversación.

• Pensamiento simbólico: La representación mental de las experiencias a través de los

símbolos e imágenes, con esto se busca que la maquina sea capaz de “razonar” según

su base de conocimiento y que no solamente siga una serie de instrucciones lógicas.

• Ingeniería del conocimiento: Transmitir los conocimientos y metodologías de un

experto a un sistema, es la base de los sistemas expertos.

A partir de los anteriores grupos de estudio la IA surgieron los siguientes campos

fundamentales donde cada uno aborda uno o más grupos de estudio, estos campos son:

• Redes neuronales

• Sistemas difusos

• Sistemas expertos

• Redes bayesianas

• Basada en comportamiento

• Robótica

• Aprendizaje de máquina

Con los siguientes enfoques:

• Tecnológico

• Ingenieril

• Científica

Si bien aún estamos en el comienzo del desarrollo de la inteligencia artificial y los sistemas aún

se encuentran muy limitados en su proceso aprendizaje, en la última década ha habido

Page 20: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

11

importantes evoluciones en la inteligencia artificial han mejorado procesos y los han hecho

más efectivos con un porcentaje de acierto más alto porque cuentan con muchas ventajas

frente al ser humano como, por ejemplo:

• Agentes externos: No están afectados por factores externos como el tiempo (no

envejecen), Cansancio, Presión, Entorno etc.

• Velocidad: Pueden resolver problemas en menor tiempo que un ser humano y mucho

más eficientemente

• Fortalecimiento de conocimientos

Sin embargo, también cuentan con muchas desventajas como, por ejemplo:

• Incapacidad de aprender de las equivocaciones, lo cual es un proceso de alta

importancia en el conocimiento.

• No cuentan con emociones, moralidad, sentido común, lenguaje natural etc.

2.2.3 Métodos de la inteligencia artificial convencional

2.2.3.1 Sistemas Expertos

Un experto es una persona enfocada en una disciplina especifica. Los sistemas expertos son

una rama de la inteligencia artificial que consisten en un programa computacional que esta

entrenado para el aprendizaje, memorización, razonamiento, comunicación y acción a partir

de una base de conocimientos, que le permite tomar decisiones como lo haría un humano

experto.

Para las compañías de hoy en día puede ser llamativo obtener un sistema experto puesto que

estos sistemas no están susceptibles a situaciones relacionadas con el ser humano como por

ejemplo que el experto se marche o tenga deterioros en su salud mental, además de ser más

rápidos y precisos.

Page 21: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

12

Los sistemas expertos son usados en varias áreas como por ejemplo la medicina, donde los

sistemas hacen un diagnostico (inclusive más acertado que el de un ser humano), interpretación

de las imágenes médicas, monitoreo, detección de enfermedades etc. En la milicia donde

cuentan con armamento inteligente, cobertura, protección etc.

El primer sistema experto que se conoció fue Dendral un proyecto que tuvo una duración de

10 años iniciando su desarrollo en los años 60 por Edward Feigenbaum (programador), Bruce

G. Buchanan, Joshua Lederberg (experto en química orgánica) y Carl Djerassi, este tenía como

objetivo colaborar a los químicos orgánicos en la identificación de moléculas orgánicas

desconocidas analizando sus espectros de masas.

Dendral se desarrolló en el lenguaje de programación Lisp que es considerado como el lenguaje

de la inteligencia artificial, desarrollado por John McCarthy y es conocido por ser uno de los

lenguajes de alto nivel más antiguos después de Fortran. Ver Imagen 1.

Imagen 1. Dendral primer sistema experto. Tomado de: https://expertossitemas.webcindario.com/dendral.html

Page 22: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

13

Mycin es otro sistema experto desarrollado en los años 70 como tesis doctoral en la

universidad de stanford por Edward Shortliffe (Mycin, s.f.) basado en Dendral, su principal

función consistía en el diagnóstico de bacterias que causaban infecciones en la sangre, a partir

de este diagnóstico generaba la recomendación de un tratamiento dependiendo de la persona.

A pesar de la efectividad de diagnóstico de Mycin nunca pudo salir al mercado por

inconvenientes en materia legal como por ejemplo la responsabilidad de las consecuencias de

los diagnósticos y/o tratamientos equivocados.

Este sistema experto al igual que Dendral estaba desarrollado sobre el lenguaje Lisp, opera

sobre una base de conocimientos con una estructura de control simple:

1. Colección de hechos

2. Conjunto de reglas

3. Generador de inferencias

2.2.3.2 Redes Bayesianas

Una red bayesiana es una técnica estadística muy usada en la rama de la inteligencia artificial

ya que a partir de un conjunto de variables aleatorias y sus relaciones se puede generar un

modelo de dependencia y obtener información interesante sobre cómo se relacionan las

variables y predecir el comportamiento de variables no conocidas en base a las que ya se

conocen, muchas veces este tipo de relación puede ser de causa efecto como por ejemplo

enfermedad y síntoma, si establecemos este concepto un sistema fácilmente puede a partir de

los síntomas predecir las enfermedades y gráficamente se podría ver en la Imagen 2:

Page 23: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

14

Imagen 2. Grafo de síntomas y enfermedades. Tomado de: https://ccc.inaoep.mx/~esucar/Clases-mgp/caprb.pdf

2.2.3.3 Sistemas Difusos

Los sistemas fuzzy, borrosos o difusos son una extensión de la lógica, una forma matemática

de representar lo impreciso, vago y ambiguo de los cuantificadores del lenguaje natural que

usamos los seres humanos para compartir las experiencias con términos lingüísticos de bajo

nivel como “muy”, “alto”, “medio”, “moderado”, “bajo” que para un ser humanos serían

fáciles de comprender pero para una máquina que no tiene definidos estos conceptos es muy

relativo y dependerá mucho del contexto que se le esté dando.

Por ejemplo, tenemos la siguiente premisa “el nivel de la temperatura es moderada” un ser

humano comprendería fácilmente esta afirmación, pero no sería tan sencillo para una máquina

que no sabe lo que significa que la temperatura este moderada y dependerá totalmente del

contexto que se le dé al por ejemplo indicarle que la temperatura es considerada como bajo si

es menor a 0 grados centígrados y alta cuando supere los 30 grados centígrados, cuando se

definen estos valores el sistema puede determinar que la temperatura que se está midiendo

cuando esta entre los 0 y los 30 grados es “moderada”.

Por lo tanto, es importante alimentar muy bien los elementos base del sistema y entre más

precisos sean mejores serán los resultados del sistema, por ejemplo, podríamos indicarle el

contexto de “muy caliente”, “hirviendo”, “tibio”, “congelado” y el sistema podría crecer aún

más con la representación de estos intervalos.

Page 24: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

15

La lógica difusa se fundamente en las reglas heurísticas “SI” y “ENTONCES” donde cada

enunciado debe ser “borroso” como por ejemplo “Si la temperatura tiende a ser más alta

ENTONCES está haciendo calor” a partir de estas premisas simples se construyen los

sistemas basados en la lógica difusa.

Actualmente muchos de los dispositivos que usamos están basados en la lógica difusa como

lo podemos ver con la Imagen 3:

Imagen 3. Dispositivos basados en la lógica difusa

Page 25: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

16

2.3 Machine Learning

Machine learning (Aprendizaje de máquina o Aprendizaje automático) es una rama de la

inteligencia artificial que nace de la necesidad que tienen las máquinas de simular un

aprendizaje, para el análisis o clasificación de datos. Machine learning permite convertir los

datos recolectados en información útil y aplicable, volviendo a la inteligencia artificial en algo

reactivo y proactivo, que se puede adaptar y evolucionar. En este aspecto Machine learning

toma un papel muy importante, ya que es el encargado de dar versatilidad, aprovechar los

cambios y dar un valor agregado a la información recolectada, dándole al sistema una capa más

de análisis y complejidad.

Machine learning tiene dos corrientes de aprendizaje, a continuación, se describirá cada una

de ellas y se introducirá un poco de historia para ver el desarrollo y evolución de estos

conceptos, además de que permitirá explicar conceptos que se usaran más adelante en el

desarrollo del modelo que se propone a solucionar esta investigación.

2.3.1 Aprendizaje supervisado Con el aprendizaje supervisado se tiene un conjunto de datos y de antemano ya se conoce

como debería ser la salida, teniendo en cuenta la relación existente entre la entrada y la salida.

Es decir, se tiene un propósito claro y entendimiento de la relación entre variables.

Dentro del aprendizaje supervisado tenemos dos soluciones posibles, a problemas de

regresión y a problemas de clasificación. En un problema de regresión se trata de predecir un

resultado dentro de un conjunto de resultados continuos, lo que significa que estamos tratando

de asignar variables de entrada en una función lineal. Para comprender un poco mejor el

concepto se plantea el siguiente ejemplo:

Teniendo una cantidad de datos X, que se caracterizan por ser información referente a

atributos de casas (Precio, Tamaño), se desea generar una función para predecir el valor, siendo

Page 26: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

17

conscientes que para el ejemplo se supone que la única variable que influye es el tamaño y de

esta depende el precio, pero se podría agregar tantas variables de entrada como se necesitaran.

Para plantear el problema de regresión se puede hacer con la pregunta, ¿Cómo se puede

calcular el precio de un inmueble teniendo como principal dato el tamaño del mismo?

Por el contrario, en un problema de clasificación se trata de predecir los resultados en un

resultado discreto, en otras palabras, se desea asignar las variables de entrada a unas categorías

discretas(conjuntos). Si usamos el ejemplo anterior el planteamiento de la pregunta puede ser,

¿Se vende el inmueble por más o menos del precio solicitado?

2.3.2 Aprendizaje sin supervisión Este tipo de aprendizaje permite abordar problemas con poca o ninguna idea sobre cómo

deberían definirse los resultados, se puede derivar una estructura de los datos de entrada donde

no necesariamente se conoce el efecto de las variables, Se puede derivar esta estructura al

agrupar los datos en función de las relaciones entre las variables, este modelo de aprendizaje

se basa en un concepto de la neurociencia denominado Efecto cóctel, que consiste en la

capacidad del cerebro de enfocar la atención auditiva en un estímulo particular mientras filtra

otros estímulos(auditivos). Este algoritmo de cóctel permite encontrar la estructura en un

entorno caótico, es decir poder identificar los atributos individualmente y un conjunto de

variables.

2.3.3 Función de costo El proceso de entrenamiento de una red neural es el siguiente. Se tiene un conjunto de datos

que corresponde a las variables de entrada y los resultados deseados en un conjunto . Para

dejarlo de una forma más clara, la red neuronal recibe para predecir , de tal manera que

para los datos de entrenamiento se usa una matriz m=( ), una porción de estos datos se

usará para el entrenamiento y la restante para evaluar la eficiencia de la red neuronal, en un

porcentaje recomendado de 90, 10.

Page 27: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

18

Cuando se cargan los datos de entrenamiento a la red neuronal, el objetivo de la misma es

identificar y generar una función que dado X sea un buen predictor de Y. Expresado

matemáticamente, es de la siguiente manera h( ) . Donde h es la hipótesis.

Se puede medir la precisión de la función de hipótesis utilizando una función de costo.

Consiste en hacer un promedio (algo más sofisticado) de todos los resultados de la hipótesis

con entradas X y salidas reales de Y, es decir la porción de 10% que se dejó del conjunto de

entrenamiento, que es ahora el conjunto de validación.

Suponiendo que se tiene un conjunto de datos de entrenamiento m, tal como se muestra en la

Imagen 4, el objetivo es minimizar el error cuadrático de cada uno de los puntos (datos de

entrenamiento).

Imagen 4. Ejemplo de grafico de datos. Autores

La línea que se muestra en el gráfico de la Imagen 4 no necesariamente es la más optima, y

corresponde a la ecuación y = mx + b, en este caso m corresponde a la pendiente y b al punto

de origen. El error cuadrático es la distancia entre un punto y línea que se trazó, en este caso

esta línea se define como . Cada uno de los puntos que se muestran en el plano cartesiano

se expresan de la siguiente manera . Por lo que para calcular el error cuadrático de cada

Page 28: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

19

uno de los puntos se emplea la ecuación . Por lo tanto, para hallar el error

cuadrático total se utiliza la sumatoria de los errores al cuadrado.

Con esto se obtiene el error cuadrático con respecto a la línea, y una vez concluido este proceso

se puede optimizar m y b para hallar los valores que disminuya el error cuadrático.

En la anterior ecuación se tiene en la primera parte de la igualdad la función de error cuadrático

medio y en la segunda parte la media de la hipótesis. Esta es la función de costo, la cual valida

si la línea descrita es la mejor opción para un conjunto de datos, esto con el gran objetivo de

conseguir la mejor línea posible, tal que las distancias verticales promedio cuadradas de los

puntos dispersos desde la línea sean mínimos. Así se garantiza que las predicciones que se

realizará en base a la función hipótesis sean lo más acertadas posible.

Para dejarlo más claro se hará un ejemplo con datos para poder visualizar cómo se hace el

ajuste de con la función de costo.

Suponiendo que se tiene un conjunto de datos de entrenamiento donde m=[(1,1), (2,2), (3,3)]

Page 29: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

20

Imagen 5. Regresión lineal simple. Autores

plot([1,2,3],[1,2,3], '-o')

En este momento, como se muestra en la Imagen 5, se tiene una línea en donde la pendiente

es igual a 1 y la función de error cuadrático es igual a 0, ya que todos los puntos son atravesados

por la línea, ahora se ingresan nuevos datos [(1,0.5), (2,1), (3,1.5)], ver Imagen 6.

Imagen 6. Desviación de regresión lineal. Autores

Plot ([3,2,1,0,1,2,3],[3,2,1,0,0.5,1,1.5], '-o')

Page 30: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

21

Se calculará el valor de error cuadrático para los nuevos valores con respeto a la primera línea.

Veamos cómo despejar el primer punto.

Si se continúa despejando más puntos, se obtiene una gráfica paraboloide 3D ya que hay que

notar que la función se construye a partir de los N datos que se tienen como variables A y

B. Aunque para poder observar mejor el punto de mínima desviación se visualiza en 2D, vea

la Imagen 7.

Imagen 7. Desviación mínima. Autores

x=-2:0.1:4;Y=(x.^2)-2*x+1;plot(x,Y)

Se debe tratar de minimizar la función de costo en este caso, es el mínimo global. Con

esto logramos identificar cual es el mejor camino que debe seguir la línea, ya sea para un sistema

de regresión lineal, como para un clasificador.

Page 31: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

22

2.3.4 Sobreajuste

El sobre ajuste es un problema que aparece cuando se intenta reducir el error cuadrático a 0,

ya se obliga a la función a crear una línea que cruce por cada uno de los puntos, vea las gráficas

en la Imagen 8 donde se ejemplifica esto.

Imagen 8. Comparación de sobreajuste. Autores

Se introduce una matriz de entrenamiento con 5 datos, con un sobre ajuste como se muestra

en el gráfico de la izquierda., Al ingresar dos nuevos datos, representados en color verde se

puede comparar con el gráfico de la derecha como el sobreajuste afecta el resultado. Por ende,

el sobreajuste en un principio podría parecer el objetivo deseado, pero representa un gran

peligro para la predicción de datos.

2.3.5 Tipos de redes neuronales

Las redes neuronales artificiales están basadas en el concepto de las redes neuronales

biológicas, y como estas, se crean a partir de diferentes conexiones entre las neuronas que la

componen. Las redes neuronales biológicas establecen sus conexiones por medio del

aprendizaje y la repetición y se comunican entre sí por medio del proceso de sinapsis. En el

Page 32: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

23

caso de las redes neuronales artificiales, las neuronas están basadas en un concepto anterior,

los árboles de decisiones, que se usan ampliamente en los sistemas expertos. Consiste en un

algoritmo que toma decisiones en forma de cascada, pasando por diferentes condiciones y

evaluaciones para deducir un resultado. Estos árboles se hacen en base a unas condiciones

preestablecidas. En el caso del aprendizaje automático estas condiciones no son

preestablecidas, y se generan a partir de funciones matemáticas, por lo que en una capa alta de

abstracción no se puede saber qué hace cada neurona, para conocerlo se debe resolver cada

una de las ecuaciones que genera ese árbol de decisiones, por este motivo se dice que cada uno

de estos nodos(neuronas) está en una capa oculta, Se puede definir un mínimo y máximo de

estos nodos y controlar su dirección de traspaso de información, en algo equivalente a una

sinapsis artificial. En algunas aplicaciones se pueden hacer nodos de los cuales se conoce su

funcionamiento para tareas específicas. El modelo matemático más simple de un nodo se

denomina perceptrón.

El perceptrón tiene varias unidades de análisis y a cada una se le asigna un peso sináptico, los

datos entran y se procesan en estas unidades que luego generan una función común que genera

el resultado, ver Imagen 9.

Imagen 9. Perceptrón. Tomado de: https://es.wikipedia.org/wiki/Perceptr%C3%B3n#/media/File:Perceptr%C3%B3n_5_unidades.svg

Page 33: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

24

Como se mencionó el perceptrón es la neurona artificial más básica, pero independiente de la

complejidad todas las neuronas artificiales están compuestas por variables de entrada

(estímulos), una o varias funciones matemáticas y una salida. Lo que cambia he identifica cada

neurona son los pesos sinápticos y la función que realizan, es decir el peso sináptico es el ajuste

que se hace para acercarse a la respuesta deseada y la función es la encargada de procesar los

valores sinápticos para generar un resultado, hacer la regresión lineal.

Como es lógico deducir, una simple neurona solo es capaz de trabajar con una recta, lo que

traducido a programación es una compuerta lógica and u or, en el caso de una compuerta

lógica xor o expresiones más complejas se requiere el trabajo de múltiples neuronas, así se

pueden trazar múltiples líneas para clasificar los datos, vea las Imágenes 10, 11, y 12.

Imagen 10. Condición lógica AND. Tomado de: https://commons.wikimedia.org/wiki/File:Computer.Science.AI.Neuron.AND.svg

Page 34: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

25

Imagen 11. Condición lógica OR. Tomado de: https://commons.wikimedia.org/wiki/File:Computer.Science.AI.Neuron.OR.svg

Imagen 12. Condición lógica XOR. Tomado de: https://commons.wikimedia.org/wiki/File:Computer.Science.AI.Neuron.XOR.svg

Page 35: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

26

Las neuronas se organizan en la misma capa, es decir en un mismo vector que recibe los datos

de entrada ya sea de la capa de entrada o de una capa oculta para así llegar a la capa de salida

con el resultado deseado.

Las neuronas artificiales se especializan en el manejo de datos específicos, es decir al entrenar

una red neuronal, lo que se hace es especializar cada una de sus neuronas en el tratamiento de

ciertos datos, lo que se mide en este entrenamiento es la correlación de las variables de entrada

para así identificar los pesos sinápticos y generar la función de cálculo que dé como resultado

los datos esperados. Entonces, entre más complejo sea el problema a solucionar, más capas

ocultas se deben crear, esto introduce al concepto de aprendizaje profundo o deep learning,

que se estudiará más adelante. En este punto se puede imaginar un problema real que surge

en el entrenamiento de redes neuronales y es la relevancia de las variables de entrada. Es decir,

la cantidad de información no determina la calidad de la misma. Por lo tanto, es obligación de

quien entrena la red asegurar la relevancia de cada una de las variables de entrada.

Retomando la idea de la capa oculta, se puede decir que la capa de salida es la sumatoria de

cada una de las líneas que trazan las funciones que están en cada neurona de la capa oculta. Lo

que da como resultado otra línea. Esto destruiría totalmente la red neuronal, ya que

matemáticamente la sumatoria de varias líneas es otra línea. Por este motivo en las neuronas

se incluye una función de activación. El objetivo de esta es distorsionar el valor de salida

añadiendo deformaciones no lineales para así poder computar el resultado de varias neuronas

encadenadas. Entre estas funciones se tiene la función escalonada (ver Imagen 13), sigmoidal

(ver Imagen 14), tangente hiperbólica (ver Imagen 15), la unidad rectificada lineal (ver Imagen

16) y algunas estructuras alternativas que se conocen como funciones de base radial entre las

que se encuentran las estructuras Gausiana, Multicuadraticas y Multicuadraticas inversas o las

máquinas de soporte vectorial.

Page 36: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

27

Imagen 13. Función de paso. Tomado de: https://en.wikipedia.org/wiki/Step_function#/media/File:Dirac_distribution_CDF.svg

Imagen 14. Función sigmoide. Tomado de:

https://es.wikipedia.org/wiki/Funci%C3%B3n_sigmoide#/media/File:Funci%C3%B3n_sigmoide_01.svg

Imagen 15. Función tangencial. Tomado de:

https://es.wikipedia.org/wiki/Tangente_hiperb%C3%B3lica#/media/File:Hyperbolic_Tangent.svg

Page 37: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

28

Imagen 16. Función rectificadora. Tomado de:

https://es.wikipedia.org/wiki/Rectificador_(redes_neuronales)#/media/File:Rectifier_and_softplus_functions.svg

Las redes de retroalimentación son una evolución del perceptrón, añade una capa oculta, y

cada una de las entradas se comunica con la capa oculta, siempre hacia adelante, es decir que

no tiene bucles de retorno. Utiliza un sistema de entrenamiento llamado retropropagación, en

inglés backpropagation. Este método consiste en el cálculo del gradiente del

algoritmo(función) usado para hacer la predicción. En palabras más sencillas, los datos pasan

mínimo dos veces por la red para calcular el error respecto a la salida.

Una red neural de retroalimentación también puede usar funciones de base radial como

función de activación, con el fin de dar valores más certeros en aproximaciones de funciones.

Esta red de base radial se ajusta perfecto a sistemas que usan valores continuos.

Las redes de retroalimentación pueden seguir creciendo también en capas ocultas, esto con el

objetivo de minimizar los errores que se pasan de una capa a otra. Estas redes de

retroalimentación con más de una capa se llaman redes de alimentación profunda.

Con el uso de las redes de alimentación profunda (ver Imagen 17) y su evolución surge un

nuevo concepto, las células recurrentes, su trabajo consiste en generar una salida y volver a

procesarla. Lo que logra este reproceso es tener en cuenta un contexto. Por ejemplo, para el

Page 38: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

29

procesamiento de palabras que requiere de un contexto para comprender su significado y

valor.

Imagen 17. Redes recurrentes. Tomado de: https://www.asimovinstitute.org/author/fjodorvanveen/

Estas células recurrentes no pueden almacenar mucho del contexto. Por lo que para solventar

esto se crean las células de memoria. Estas células de memoria pueden almacenar los últimos

datos procesados, hasta datos con intervalos de tiempo, resultando en la creación de una nueva

red. La red de memoria de corto y largo plazo, que tiene la capacidad de procesar fotogramas

de video, voz y escritura. Las células de memoria de esta red tienen unos elementos

denominados puertas recurrentes y son los encargados de controlar como se recuerda y olvida

la información. Sin estas puertas se logra que sea más fácil repetir la misma salida para una

entrada concreta varias veces, esto se hace en las redes de unidad de cerrado recurrente que

consumen menos recursos y se utilizan ampliamente en síntesis de sonido.

Imagen 18. Autocodificadores. Tomado de: https://www.asimovinstitute.org/author/fjodorvanveen/

Las redes que se comentaron anteriormente son para problemas de aprendizaje supervisado.

Modificando la estructura para que el número de nodos de entrada sea mayor al número de

nodos ocultos y el número de salidas es igual al número de nodos de entrada, se obliga a la red

Page 39: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

30

neuronal a generalizar los datos y buscar patrones comunes. A este tipo de redes se le conoce

como autocodificadores (ver Imagen 18), y son usados en aprendizaje no supervisado. Esto se

logra gracias a que se comprimen las características, pero otra manera de hacerlo es

comprimiendo las probabilidades. En ese caso se conoce como un autocodificador variacional.

Los autocodificadores presentan un problema, y es que al reducir los nodos ocultos se puede

presentar un sobreajuste. Para solucionar esto se agrega un poco de ruido a las entradas, es

decir se añaden unos bits aleatorios a cada entrada, para así obligar a construir una salida con

ruido para así hacerla un poco más general y forzar a elegir características más comunes. A

esta red se le conoce como un autocodificador de eliminación de ruido. Otra manera de

construir un autocodificador es haciendo que la capa oculta tenga más nodos que la capa de

entrada y salida. A esta configuración se le llama autocodificador de dispersión.

Imagen 19. Redes con aleatoriedad. Tomado de: https://www.asimovinstitute.org/author/fjodorvanveen/

En la teoría de probabilidad existe el concepto de cadenas de Markov (ver Imagen 19), que

indica la probabilidad de que ocurra un evento dependiendo de un evento inmediatamente

anterior. Este concepto se puede aplicar a las redes neuronales de manera clásica, por ejemplo,

para predecir la probabilidad de una palabra que viene a continuación de otra. El ejemplo más

común sería el autocompletar de un teclado para dispositivos móviles, pero también pueden

ser usados como filtros bayesianos y para clustering, como una máquina de estado finito.

Una red Hopfield en su estructura es una red de Markov, pero están capacitadas con un

conjunto limitado de muestras para que respondan a una muestra conocida con la misma

muestra, por lo tanto, también se pueden usar para reconstruir y destruir las entradas, dado

Page 40: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

31

que al responder con la parte restante devolverá la muestra completa. Las máquinas de

Boltzmann se distinguen de la red Hopfield porque en esta se definen unas entradas claras y

los nodos ocultos pasan a ser salidas una vez termina de procesarse los datos.

Imagen 20. Red profunda. Tomado de: https://www.asimovinstitute.org/author/fjodorvanveen/

Las redes de aprendizaje profundo (ver Imagen 20) son en realidad una pila de máquinas de

Boltzmann (rodeadas de VAE). Básicamente una red entrena a la otra en secuencia, y se usan

para generar datos por un patrón aprendido.

Imagen 21. Redes profundas compuestas. Tomado de: https://www.asimovinstitute.org/author/fjodorvanveen/

La Red convolucional profunda (ver Imagen 21) en este momento representa uno de los

grandes avances del machine learning con redes neuronales. Usa nodos de convolución, es

decir que agrupa funciones y genera una única función por neurona cada una con un propósito

diferente. Este tipo de redes se utiliza en el reconocimiento de imágenes, donde la red se

entrena con un conjunto de imágenes con un proceso de comprensión de características al

pasar por estas capas de convolución. A partir de los reconocimientos de imágenes, la primera

Page 41: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

32

capa detecta gradientes, la segunda líneas, la tercera formas y así sucesivamente hasta tener la

escala de un objeto en particular, ver Imagen 22.

Imagen 22. Funcionamiento de red convolucional. Tomado de: https://stats.stackexchange.com/questions/146413/why-convolutional-

neural-networks-belong-to-deep-learning

Se puede invertir una red convolucional para a partir de una imagen construida obtener sus

características. Podemos unificar una red convolucional con una invertida para crear imágenes

con las cuales nunca ha sido entrenada. Y para presentarlo más correctamente al unificarlas

dejan de ser dos redes y se convierten en una red de tipo autocodificador.

Imagen 23. Redes especializadas. Tomado de: https://www.asimovinstitute.org/author/fjodorvanveen/

Page 42: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

33

Por el contrario, como se puede ver en la Imagen 23 una red generativa adversaria, si está

compuesta por dos redes neuronales, una es un generador y la otra es un discriminador o

evaluador. Su trabajo consiste, uno por su parte generar datos y el otro al recibir los datos de

muestra intenta evaluar los resultados generados contra las muestras, por lo que este tipo de

redes puede estar en constante evolución, aunque deben estar en un equilibrio las dos redes.

Una máquina de estado líquido es una red que no está totalmente conectada, y las funciones

de activación se reemplazan por niveles de umbral. Donde los nodos acumulan valores de

muestras secuenciales y emite la salida solo cuando se alcanza el umbral, y reinicia su contador

interno a cero.

Las máquinas de aprendizaje extremo intentan reducir la complejidad de las redes neurales,

mediante la creación de capas ocultas dispersas con conexiones aleatorias, requieren menos

potencia computacional, pero su eficiencia depende de la tarea que vaya a realizar y de los

datos suministrados.

Las máquinas de estado de repetición son redes recurrentes con otro enfoque. ya que se

pueden activar nodos con características que son recurrentes.

Por último, tenemos la máquina neural de Turing (ver Imagen 24), esta red intenta solucionar

la visibilidad de las capas ocultas, ya que en las redes neuronales son como una caja negra,

podemos entrenarlas, mejorarlas y obtener resultados, pero la ruta de decisión está

mayormente oculto. Por este motivo esta red es de retroalimentación, pero con unos nodos

de memoria extraídos que permite leer y escribir dependiendo del estado actual de la mismo.

Page 43: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

34

Imagen 24. Red de turing. Tomado de: https://www.asimovinstitute.org/author/fjodorvanveen/

2.4 Tipos de datos

Esta es una de las partes más importantes en la creación de redes neuronales, ya que la

eficiencia de la red depende directamente de la calidad y forma en que se le administren los

datos. Se deben tener en cuenta los siguientes objetivos:

• Entender el contenido y las relaciones entre los datos.

• Hacer el mejor uso de la información.

• Los datos se ajustan al modelo de Machine Learning.

El aprendizaje de máquina es un trabajo sin sentido si no se conoce y no se entienden los

datos. Para poder hacer esta labor se debe identificar:

• Características de los datos (Tamaño, tipos de datos, etc).

• Resumen estadístico del conjunto de datos (Escala y rango de las variables).

• Errores y valores que no son típicos.

• Distribución de los atributos y tags de identificación de los mismos.

• Frecuencia de rasgos categóricos.

Poder identificar todos estos aspectos de los datos se logra gracias a un proceso iterativo de

procesamiento de los datos, en donde se debe identificar los tipos de datos y al propósito y

tipo de predicciones que se pueden trabajar con ellos. Se pueden identificar cuatro grandes

grupos de tipos de datos.

Page 44: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

35

2.4.1 Datos nominales

Este tipo de datos no requiere de una organización previa, ya que todas las agrupaciones son

excluyentes, ver Imagen 25.

Imagen 25. Ejemplo de datos nominales. Tomado de: https://medium.com/ai3-theory-practice-business/the-engineers-guide-to-

machine-learning-data-processing-data-types-ba40e6bf8765

2.4.2 Datos ordinales

Este tipo de datos requiere de un orden para poderse procesar, aunque no se conozca las

diferencias entre estas. Por ejemplo, en la figura que se presenta a continuación podemos ver

como se clasifica un grupo de datos, agrupándolo en perfiles comunes, en donde el orden es

totalmente importante para comprender el significado total de los datos, ver Imagen 26.

Page 45: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

36

Imagen 26. Ejemplo de datos ordinales. Tomado de: https://medium.com/ai3-theory-practice-business/the-engineers-guide-to-

machine-learning-data-processing-data-types-ba40e6bf8765

2.4.3 Datos de intervalo

En este tipo de datos se requiere ordenar y reconocer las diferencias exactas entre los datos,

ver Imagen 27. Este tipo de datos se presta fácilmente para su uso en la estadística, con su

procesamiento con herramientas como moda, media, mediana, desviación estándar entre

otros. Al crear escalas(intervalos) podemos generar diversas caracterizaciones y designar

valores para cada elemento.

Page 46: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

37

Imagen 27. Ejemplo de datos de intervalo. Tomado de: https://medium.com/ai3-theory-practice-business/the-engineers-guide-to-

machine-learning-data-processing-data-types-ba40e6bf8765

2.4.4 Datos de relación

Estos datos nos proporcionan en general la mayor cantidad de información posible y exacta

de los mismos (orden, valor, medición y atributos). Ya que podemos relacionar e identificar

los datos se pueden generar tanto medidas cualitativas como cuantitativas, y todo tipo de

operaciones matemáticas y estadísticas, ver Imagen 28.

Page 47: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

38

Imagen 28. Ejemplo de datos de relación. Tomado de: https://medium.com/ai3-theory-practice-business/the-engineers-guide-to-

machine-learning-data-processing-data-types-ba40e6bf8765

Ya se adquirieron los conceptos y de destacaron los aspectos más importantes relacionados

con los tipos de datos, ahora se procede a realizar la tabulación de estos, para el posterior

diseño de la red neuronal.

Page 48: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

39

3. Capítulo III

Desarrollo de la investigación

3.1 Análisis

Con ayuda del estándar de modelador de arquitectura empresarial archimate (The Open

Group, 2016) se utilizarán algunos puntos de vista que permitirán comprender acerca de la

organización sus procesos, la aplicación en infraestructura de estos.

3.1.1 Organización Para entender un poco cómo funcionan las interacciones entre los actores involucrados en la

aplicación, se mostrará el punto de vista de función del negocio:

Imagen 29. Punto de vista de negocio. Autores

Con la imagen 29 podemos inferir que el proceso inicia cuando un socio encuentra una

oportunidad de negocio y realiza una estimación sobre el mismo, cuando se da inicio al

proyecto legal diferentes abogados y asistentes empiezan a registrar información de sus

tiempos, gastos etc... en el ERP de la compañía a su vez con esta información los facturadores

Page 49: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

40

se encargan de emitir facturas a los clientes. Con esta información ya centralizada en un ERP

se logra determinar más fácilmente los requisitos de datos que alimentaran la red neural.

3.1.2 Proceso

El proceso como tal de due diligence inicia con el levantamiento de la información necesaria,

la realización de un análisis con esta información y la entrega de un informe final. La Imagen

30 representa el proceso de due diligence:

Imagen 30. Punto de vista de proceso. Autores

3.1.3 Aplicación 3.1.3.1 Microservicios

Este estilo de arquitectura está enfocada a proveer una colección de pequeños servicios

autónomos, algunas de sus características son:

• Unidades pequeñas de despliegue

• Reducción en tiempo de desarrollo

• Los servicios pueden tener arquitecturas diferente y se acoplan independiente de esto

• Fácil escalado horizontal

Los microservicios son una evolución de la arquitectura enfocada a servicios,

Page 50: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

41

pero integra nuevos conceptos enfocados a la gestión, orquestamiento y mantenimiento de

todos los servicios que componen la solución, ver Imagen 31.

Imagen 31. Microservicios. Tomado de: https://docs.microsoft.com/es-es/azure/architecture/guide/architecture-

styles/images/microservices-logical.svg

3.1.3.2 ¿Por qué esta arquitectura? Puede parecer que se está siendo muy ambicioso, y poco impráctico, ya que este tipo de

arquitectura requiere de un gran mantenimiento y gestión. Pero también no podemos olvidar

los beneficios. Principalmente se opta por esta arquitectura por su escalabilidad, ya que permite

ir actualizando la solución a medida que se necesite. Permitiendo la integración y

mejoramiento de servicios.

El prototipo se limita a generar un único microservicio, que corresponde al proceso de Due

Diligencie, que se revisó en capítulos anteriores. Recibiendo un vector con datos del proyecto

que se desea analizar y generando como salida otro vector con los resultados(predicción), ver

la Imagen 32.

Imagen 32. Diseño básico de microservicio. Autores

Page 51: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

42

Aunque este tipo de arquitectura no se limita solo a crear un contenedor de microservicios,

tiene en cuenta aspectos como la seguridad y gestión de los microservicios por lo tanto para

tener una visión general del diseño y de las herramientas a usar, vea la Imagen 33 y la imagen

34.

Imagen 33. Diseño general de arquitectura de microservicios. Tomado de: https://docs.microsoft.com/es-

es/azure/architecture/guide/architecture-styles/images/microservices-acs.png

Imagen 34. Diseño y herramientas del prototipo. Autores

Page 52: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

43

En la imagen 34 los hexágonos en blanco, con el icono de Docker, son la representación de

posibles microservicios, que para ejemplificar la arquitectura se mencionan, pero no son parte del

prototipo. El hexágono amarillo representa el microservicio con el que se trabajara. A

continuación, se explicará el uso y trabajo de este nodo. Que en realidad es el eje de esta

investigación.

3.2 Requerimientos

3.2.1 Requerimientos Funcionales

i. La autenticación a la aplicación debe realizarse por medio del directorio activo de la

compañía ii. Únicamente los usuarios con rol de Abogado o Socio podrán tener acceso iii. Se deben solicitar los siguientes datos, en el siguiente formato

Tabla 1. Campos de interfaz. Autores.

Dato Formato Elemento

Tipo Empresa Texto Dropdownlist

Tipo Caso Texto Dropdownlist

Lenguaje Texto Dropdownlist

Moneda Texto Dropdownlist

País Texto Dropdownlist

Departamento Texto Dropdownlist

Fecha Inicio Texto Datepicker

Las listas desplegables deben cargarse de acuerdo con la información existente en las bases de datos del ERP de la firma.

iv. El resultado de la proyección debe mostrarse en un informe detallado con el estimado de las probabilidades.

3.2.2 Requerimientos NO Funcionales

i. La aplicación debe estar disponible 7x24 ii. La aplicación debe ser Responsive iii. La aplicación debe tener un diseño sencillo y con alta usabilidad iv. El tiempo de espera en la realización de la predicción debe ser menos a 3 segundos

Page 53: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

44

3.3 Desarrollo

3.3.1 Origen de los datos

Se elaboró una bodega de datos para almacenar la información filtrada que se va a procesar.

El diseño de la nueva base de datos se elaboró en Entity Framework y se obtuvo como

resultado el diagrama de la Imagen 35:

Imagen 35. Diseño de base de datos. Autores.

Page 54: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

45

Para extraer la información requerida para la red se elaboró una ETL sencilla que extrae la

información principal de las bases de datos del ERP de la compañía, la transforma y la inserta

en una bodega de datos. La ETL tiene la siguiente estructura:

Flujo de control:

Imagen 36. Flujo de control de la ETL. Autores

Flujo de datos:

Imagen 37. Flujo de datos de la ETL. Autores.

La consulta filtra, agrupa y limpia la información requerida y por medio de la herramienta Data

Conversion se unifican todos los tipos de datos para que coincidan los formatos de las dos

bases de datos, una vez los datos se encuentren homogéneos, le añadimos el destino a la

consulta donde a través de la siguiente asignación establecemos la equivalencia de las columnas

de la consulta, en la bodega de datos (específicamente en la tabla Resumen) como lo muestra

la Imagen 38.

Page 55: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

46

Imagen 38. Asignaciones de columnas. Autores.

Al final se genera una sola consulta, la cual se puede observar en detalle en el Anexo I. 3.3.2 Exploración de datos Se obtienen aproximadamente 2000 registros asociados con el proceso de Due Diligence de la

base de datos de la empresa con la que se desarrolla el proyecto (PHR). Después del proceso

que realiza la ETL de clasificación, limpieza y agrupación de datos, quedan alrededor de 800

registros que se proceden a tabular y catalogar. Dando como resultado la información que

muestra la Imagen 39.

Page 56: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

47

Imagen 39. Categorización de los datos

La información se debe etiquetar y analizar, para poder generalizar los datos y crear

asociaciones entre ellos. Definiéndolos de la siguiente manera:

• El tipo de empresa se etiqueta como datos de texto categóricos.

• El tipo de caso se etiqueta como datos de texto categóricos.

• Lenguaje es numérico categórico.

• Moneda es numérico categórico.

• País son datos de texto categóricos.

• Departamento son datos de texto categóricos.

• La fecha de inicio se desagrega en varios campos. Para poder evidenciar si existe

alguna correlación entre estas variables y el resultado final.

o Año

o Mes

o Dia del mes

o Dia de la semana

Page 57: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

48

• Finalmente, el dato que se quiere predecir, en este caso días de duración. Que es de

tipo numérico y se etiqueta como label objetivo.

Como se puede observar en la Imagen 40, hay algunas alertas en los datos. Por ejemplo, al

revisar los histogramas pertenecientes a los datos de Tipo Empresa, Tipo Caso y

Departamento. Esto es porque los datos están muy sesgados. Hay que revisar el peso de estos

datos dentro del cálculo para tomar alguna decisión respecto a dejarlos como parte del proceso

de predicción o determinar si la mejor opción es eliminarlos.

Imagen 40. Histograma de la frecuencia de los datos. Autores

Como muestra la Imagen 41, la cantidad de casos varia bastante por tipo de empresa no tiene

tendencia alguna igualmente sucede con los tipos de caso (Imagen 42). Pero si revisamos la

Page 58: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

49

Imagen 43 podemos evidenciar que por tipo de caso si hay cierta relación con el tiempo de

duración de los casos.

Imagen 41.Cantidad de casos de Due Diligence por tipo de empresa. Autores.

Page 59: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

50

Imagen 42. Cantidad de casos Due Diligence por tipo de caso. Autores.

Imagen 43. Tiempo en días por tipo de caso y empresa. Autores.

Page 60: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

51

La imagen 44 nos permite determinar en cuales países se pueden encontrar mayor cantidad de casos.

Imagen 44. Total de casos por país. Autores.

La imagen 45 representa la dispersión de los días.

Imagen 45. Comportamiento de los días. Autores

Page 61: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

52

En base a los datos y el análisis de las gráficas generadas a partir de estos se puede hacer el

ejercicio de desarrollar la predicción con sistemas de clasificación como de regresión lineal.

Aunque para el caso de clasificación (Agrupamiento) no se tiene el mejor entorno. Ya que las

variables demuestran resultados algo aleatorios y parece que en los datos se presentan algunos

errores. Aun así, se puede calcular el peso de las variables, la correlación entre ellas y la ganancia

de información que tiene cada una. Esto con el objetivo de separar los datos entre los rangos

más adecuados.

𝐺𝑎𝑛𝑎𝑛𝑐𝑖𝑎(𝑆, 𝐴) = 𝐻(𝑆) − ∑𝑆𝜗

𝑆𝜗∈𝑉𝑎𝑙𝑜𝑟𝑒𝑠(𝐴)

𝐻(𝑆𝜗)

Con la anterior formula se puede calcular la ganancia de las variables, teniendo en cuenta la

entropía propia de los datos. Cada una de las variables es procesada con esta ecuación dando

como resultado la ganancia de cada una. Se selecciona cada una de las variables según su

resultado de ganancia, de mayor a menor y con esto se puede construir un árbol de decisión.

Las imágenes 46, 47 y 48 muestran algunas rutas posibles de este árbol, en el lado derecho

podemos encontrar la decisión que toma el árbol para llegar al valor que es la última fila

marcada en verde.

Page 62: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

53

Imagen 46. Ruta principal de árbol de decisiones. Autores.

Page 63: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

54

Imagen 47. Ruta alterna de árbol de decisiones. Autores.

Page 64: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

55

Imagen 48. Ruta corta en árbol de decisiones. Autores.

Este árbol de decisiones funciona ya como un predictor. Capaz de analizar cada una de las

variables y generar un valor aproximado al tiempo en días que tomara un proyecto de Due

Diligence. Mencionemos que las variables objetivo a predecir son:

• Tiempo de trabajo por socio

• Días de duración del proyecto

• Costo del proyecto

Page 65: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

56

Otra opción es crear un algoritmo de agrupación, que sea capaz de clasificar los datos de

entrada en grupos, con el objetivo de relacionar y descubrir patrones comunes entre los datos.

Esto se logra con un algoritmo como k-means. En este caso no tiene sentido desarrollar este

algoritmo ya que tenemos grupos claramente definidos, por las variables categóricas.

Ya se tiene una aproximación a la segunda predicción requerida(días). Pero como se mencionó

son rangos aproximados, por lo que se procede a cambiar el algoritmo a un caso de regresión

lineal teniendo en cuenta el peso y ganancias de las variables. Con el objetivo de generar

aproximaciones más concretas.

Se utiliza un modelo preestablecido de la librería de sklearn utilizado para regresión lineal

(linear_model.LinearRegression()).

Este modelo recibe dos matrices, una de entrada (entrenamiento) y la matriz de salida

(resultados deseados). Entre estas matrices se realizan las respectivas correlaciones que

generen el mejor resultado, que se determina por medio del mínimo error cuadrático.

Ahora, trabajemos la segunda parte. La predicción del tiempo por categorías de socios. En

este caso se trabajarán con algunas de las anteriores variables y se incluirán algunas nuevas.

Como la categoría del socio y el tiempo de trabajo, ver Imagen 49.

Page 66: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

57

Imagen 49. Dataset de horas por categorías. Autores.

3.3.3 Redes de entrenamiento Como ya se realizó el aplicativo cliente, el siguiente paso es diseñar una red neural que pueda

seguirse mejorando. Los datos y modelos diseñados hasta ahora nos acercan a una solución

de este tipo. A continuación, se describirán los siguientes prototipos de redes neurales

diseñadas y sus características.

Para las pruebas de los diferentes modelos se utilizó Anaconda, una suite de código abierto

que cuenta con una colección de más de 720 aplicaciones, librerías y conceptos diseñados para

el desarrollo de la ciencia de datos con Python (Toro, 2018).

Una de las aplicaciones que integra Anaconda es el cuaderno Jupyter que es una aplicación

web de código abierto que permite crear y compartir documentos que contienen código en

vivo, ecuaciones, visualizaciones y texto narrativo. Sus usos principales incluyen: limpieza y

transformación de datos, simulación numérica, modelado estadístico, visualización de datos,

aprendizaje automático entre otros (Jupyter, 2018). Para las pruebas de los modelos se decidió

Page 67: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

58

usar Jupyter ya que es una plataforma sencilla de utilizar, pero muy poderosa que permite hacer

todo tipo de análisis con la información.

Imagen 50. Logotipo de Anaconda, Jupyter y Spider. Tomado de: https://www.youtube.com/watch?v=Q0jGAZAdZqM

El primer modelo que se implementó, como se puede ver en la imagen 51 fue completamente

de regresión lineal. Con ayuda de las librerías para elaborar graficas se logró observar

histogramas de la frecuencia de los datos.

Page 68: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

59

Imagen 51. Primer modelo de regresión lineal. Autores.

En la Imagen 51 (Paso 1) podemos observar que se importaron las librerías:

• Numpy: Modulo para cálculos matemáticos

• Pandas: Análisis de datos

• Matplotlib: Gráfico de datos

• Seaborn: Complemento de la librería matplotlib para la representación gráfica de los

datos.

Page 69: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

60

• Sklearn: Poderosa librería de Python para machine learning, es de uso libre y facilita

para el procesamiento de datos a través de algoritmos potentes de regresión lineal,

clasificación entre otros.

En el paso 7 de la Imagen 51 se importan los datos que generó la ETL en un formato de .csv

y se imprime el tamaño de los datos, para este caso se usa una muestra pequeña de 357 filas y

8 columnas, en el paso 8 se usa la función head para comprobar la cabecera de los datos y

verificarlos, en el siguiente paso se imprime el histograma de algunos datos para determinar su

frecuencia.

Una vez realizado este pequeño análisis de los datos, se crea una estructura bidimensional con

ayuda de la librería pandas. Se etiquetan las cabeceras y se convierte en un arreglo.

En la imagen 52 (Paso 11) se crea una instancia del modelo de regresión lineal y se entrena

con los datos de la matriz creada, cuando el procedimiento finaliza se imprimen los

coeficientes donde se puede ver que hay varios muy altos que oscilan en un rango de -23 y 3,

este es un primer indicativo que hay un problema con este modelo, luego se imprime la

desviación cuadrática del error que da un valor de 162.174,96 lo cual es muy alto, y por último

se imprime la dispersión de los datos que muestra un valor del 14% un valor muy bajo teniendo

en cuenta que se desea aproximar a 1, pero como resultado de la regresión y para efectos de

este proyecto es un valor positivo.

Ahora en el paso 12 de la Imagen 52 se proceden a graficar los valores resultado después de

procesados por la red, en el grafico del resultado se evidencia que los valores están muy

dispersos y no corresponden al concepto de regresión lineal. Sin embargo, se procede a validar

el modelo. La línea 15 muestra el resultado de una predicción la cual es relativamente buena

ya que se esperaba obtener un resultado de predicción de días de 483 y se obtuvo 416.

Page 70: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

61

Imagen 52. Procesamiento del primer modelo de regresión lineal. Autores.

Page 71: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

62

Así que procedimos a realizar una validación masiva y se obtuvieron los siguientes resultados:

Tipo Empresa

Tipo Caso

Lenguaje Moneda País Departamento Fecha Inicio

Resultado Real

Prototipo %

Desviación

2 42 1 1 10 19 42095 763 541 -29%

2 6 1 2 10 9 42644 761 410 -46%

5 5 1 1 10 9 40787 763 756 -1%

8 8 1 1 10 11 40817 738 757 3%

8 25 1 4 10 17 42583 822 392 -52%

9 25 2 2 34 44 41609 106 492 364%

9 25 2 2 34 44 41609 106 492 364%

12 25 1 1 10 17 40756 794 778 -2%

15 25 2 2 8 4 42309 856 444 -48%

15 57 2 2 12 19 42917 94 338 260%

15 57 2 2 12 19 42917 94 338 260%

21 25 2 1 10 17 41852 83 580 599%

21 31 2 1 10 19 41852 84 583 594%

21 31 2 2 10 19 42005 103 534 418%

21 31 2 2 10 19 42005 103 534 418%

21 31 2 1 10 19 42309 113 504 346%

21 31 2 1 10 19 42309 113 504 346%

21 42 2 1 10 19 42339 80 490 513%

21 42 2 1 10 19 42339 80 490 513%

21 31 1 1 10 19 43009 107 390 264%

21 31 1 1 10 19 43009 107 390 264%

22 59 2 2 34 61 42309 88 411 367%

22 18 1 1 10 11 42614 791 436 -45%

22 32 2 4 14 24 42675 87 355 308%

22 41 2 4 14 25 42675 87 352 305%

22 19 1 4 14 19 43282 123 247 101%

22 19 1 4 14 19 43282 123 247 101%

22 19 1 4 14 19 43282 123 247 101%

22 19 1 4 14 19 43282 123 247 101%

22 20 1 4 14 19 43282 123 246 100%

22 22 1 4 14 19 43282 123 245 99%

22 24 1 4 14 19 43282 123 243 98%

22 25 1 4 14 20 43282 123 246 100%

22 25 1 4 14 20 43282 123 246 100%

22 19 1 4 14 19 43282 123 247 101%

22 19 1 4 14 19 43282 123 247 101%

22 19 1 4 14 19 43282 123 247 101%

Page 72: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

63

22 19 1 4 14 19 43282 123 247 101%

22 20 1 4 14 19 43282 123 246 100%

Tabla 2. Validación del prototipo de regresión lineal. Autores.

Conclusión: Como se puede observar en la tabla 2 hay una desviación muy alta en la

predicción de los datos, se encuentra sobre el 197%, por este motivo se marca este modelo

como no funcional y se procede a probar otros modelos.

En la imagen 53 podemos ver la representación gráfica la red que se intentó implementar

con la siguiente configuración:

• 64 nodos de activación ReLU (por sus siglas en ingles)

• 64 nodos de activación Sigmoide

• 1000 ciclos de entrenamiento

• Ganancia 0%

Imagen 53. Prototipo de red neural. Autores.

Page 73: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

64

Para probar este prototipo se siguieron los pasos que se indican en la imagen 54 realizados en

el notebook de Jupyter. En el paso 1 se importan las librerías pandas, sklearn y TensorFlow,

en el siguiente (paso 2) se cargan los datos normalizados que generó la ETL y se crean las

matrices. El siguiente modulo (paso 3) es muy importante ya que es donde se añaden las

funciones de activación ReLU y Sigmoide. Cuando se entrena el modelo con 100.000 ciclos

(paso 4) se puede ir evidenciando que hay una perdida bastante alta de información así que

esto es un indicio de que esta red no sirve para modelar el tipo de información que se necesita.

Sin embargo, en el paso 6 realizamos la predicción que genera este modelo y se evidencia que

estos valores no tienen relación alguna con lo que se busca predecir, que son los días de

duración del proyecto.

Page 74: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

65

Imagen 54. Notebook del modelo. Autores.

Page 75: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

66

Conclusión: Este tipo de red no funcionó ya que la última capa está compuesta de nodos con

una activación sigmoide que no sirve para procesar los casos de estudio ya que este tipo de

redes se especializa en problemas de clasificación y no de predicción. Por esta razón se elimina

esta capa y se procede a generar un nuevo modelo.

En la imagen 55, se evidencia la representación gráfica de otro tipo de red que se intentó

implementar con la siguiente configuración:

• 128 nodos de activación ReLU

• 12 nodos de activación ReLU

• 1000 ciclos de entrenamiento

• Ganancia 0%

Imagen 55. Prototipo de red neural sin nodos de activación sigmoide. Autores.

En la imagen 56, se evidencia la representación gráfica de otro modelo, el cual cuenta con la

siguiente configuración:

Page 76: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

67

• 8 nodos de activación ReLU

• 4 nodos de activación ReLU

• 1 nodo de activación lineal

• 1000 ciclos de entrenamiento

• Ganancia 0.26%

Imagen 56. Prototipo de red neural. Autores.

Como se puede apreciar en la Imagen 57, en el primer bloque de instrucciones se importan las

librerías necesarias. En el siguiente bloque se obtienen los datos y se hace la partición entre los

datos de entrenamiento y prueba.

En el cuarto bloque se hace la normalización de los datos. Un paso importante que comenzó

a estar presente en cada uno de los nuevos diseños, ya que este paso permite trabajar con

valores pequeños que dan mejor rendimiento al momento de ser procesados por la red neural,

eso sí, al hacer esta normalización se mantiene la proporción de distancia entre los datos, para

asegurar la integridad de los análisis de los mismos.

Page 77: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

68

En el quinto bloque se construye como tal el modelo. Esta vez añadiendo una capa con una

neurona que se activa con una función lineal.

Al añadir más datos de entrenamiento y ciclos a esta red se evidencio que la función lineal

depende totalmente del ordenamiento de los datos, por lo que en cada iteración y cambios que

se hacían sobre el dataset de entrenamiento los valores de ganancia eran desiguales. Por este

motivo al finalizar cada entrenamiento arroja valores diferentes, por lo que al acercarse a la

solución con esta metodología requeriría de mucha prueba y error y seria altamente ineficiente.

Aunque el mejor resultado logrado fue de 26% de asertividad. Un valor realmente bajo.

Page 78: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

69

Imagen 57. Notebook del modelo.Autores.

Page 79: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

70

Estos son algunos ejemplos de las pruebas y diseños que se hicieron. En cada uno de estos se

probó con diferentes cantidades de neuronas, capas, funciones de activación y paquetes de

ejecución de datos. Con el fin de mejorar el rendimiento y ver con prueba y error como iba

mejorando o, por el contrario, como fallaba la red.

Al subir los ciclos de entrenamiento la cantidad de neuronas utilizadas es excesiva, por lo que

en cada una de las iteraciones se aleja del objetivo deseado, y tiende a incrementar el error en

vez de disminuirlo. Por lo que se cambia la cantidad de neuronas por capa para solucionar este

problema.

Así que, por último, en la imagen 61, se evidencia la representación gráfica del ultimo tipo de

red que se implementó el cual tiene la siguiente configuración:

• 64 nodos de activación ReLU

• 64 nodos de activación ReLU

• 100.000 ciclos de entrenamiento

• Ganancia 0.04%

Imagen 58. Prototipo de red neural final sigmoide. Autores.

Page 80: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

71

La red utilizada finalmente pertenece al tipo de red de aprendizaje profundo, donde se

aprenden patrones para predecir los nuevos datos. Con esta red se obtuvo un porcentaje de

asertividad superior al 90% con tan solo 5000 iteraciones. Al tocar un poco sus parámetros e

incrementar las iteraciones de aprendizaje se logró un asertividad superior al 98%.

Para la función que calcula y ajusta los parámetros de la red neural se usó MSE (Error

cuadrático medio, por sus siglas en ingles), que se explicó en el capítulo anterior. Este ajuste

se hace con la finalidad de medir el rendimiento de la red basado en la distancia de error

cuadrado.

Como algoritmo de optimización de descenso de gradiente, que también se explicó

previamente, se usó RMSprop, un método de tasa de aprendizaje adaptativo, propuesto por

Geoff Hinton.

En los anteriores diseños se utilizó el método de optimización Adam, el cual también trabaja

con las tasas de aprendizaje adaptativo para cada parámetro. Pero este siendo mucho más

riguroso en la evaluación de parámetros, por lo que RMSprop da un mejor rendimiento como

prototipo.

Finalmente, como métrica de evaluación se usó MAE (Error medio absoluto, por sus siglas en

ingles), con esta métrica se pretende resumir y evaluar la calidad del modelo de aprendizaje.

Page 81: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

72

En un primer intento se ejecutó la red con 1000 ciclos, y se tardó un tiempo aproximado de

30 minutos. En una maquina con las características que muestra la Imagen 59:

Imagen 59. Características de la maquina donde se realiza el entrenamiento de la red. Autores.

Aun así, con solo 1000 ciclos se obtuvo un error cuadrado medio de 66.80

Posteriormente ejecutamos la red con 100.000 ciclos y se dejó procesando toda la noche,

donde aproximadamente tardo 5 horas en finalizar el proceso de entrenamiento. Durante este

tiempo se registró un consumo de maquina elevado (ver Imagen 60) y una ralentización en el

sistema para realizar otras tareas.

Imagen 60. Uso de máquina. Autores.

Page 82: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

73

En la Imagen 61, se puede ver el proceso realizado en el Notebook además se puede evidenciar

que este tipo de evaluación funciona muy bien con la función de perdida MSE.

Imagen 61. Notebook del modelo final. Autores.

Page 83: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

74

3.3.4 Web Service

Para la integración con el predictor de proyectos se elaboró un web service a partir del

Notebook en Jupyter este servicio recibe los datos requeridos para hacer la predicción y

retorna la predicción en base al modelo elaborado. El detalle se encuentra en el anexo III de

este proyecto.

3.3.5 Cliente -Web Para la interacción con el usuario se desarrolló una aplicación web en Visual Studio 2017 y con

ayuda de Power BI se logró elaborar un reporte que muestra gráficamente un breve análisis

del historial de la información procesada en el ETL.

El aplicativo cuenta con una pantalla inicial donde está un reporte de los tipos de caso por

país, su categoría y número de empleados (ver Imagen 62). Donde el usuario podrá interactuar

con los tipos de caso para ver gráficamente como están distribuidos mundialmente y adicional

observar cuantos empleados por categoría colaboraron en proyectos con este tipo de caso.

Page 84: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

75

Imagen 62. Reporte del aplicativo. Autores

En el módulo de predicción se encuentra el formulario donde se solicitan los datos básicos

para realizar la estimación de la duración del proyecto (Imagen 63), en este formulario se

consume el servicio generado por el notebook, el detalle de cómo se consume este servicio se

encuentra en el Anexo II.

Page 85: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

76

Imagen 63. Formulario de predicción de datos. Autores.

El proyecto está dividido en 3 principales componentes como lo muestra la imagen 64

Page 86: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

77

Imagen 64. Componentes del aplicativo. Autores.

En la carpeta de Datos se encuentra el modelo elaborado en Entity Framework que es lo que

nos permitirá interactuar con los datos alojados en la bodega de datos. En la Vista están

almacenados los formularios de interacción con el usuario y por último en la carpeta objetos

se encuentran los objetos creados adicionales a los del modelo de Entity.

3.4 Validación del prototipo

Se ejecutaron los comandos para determinar la medida del error cuadrático dando un valor de

21.08 que nos indica que el error es muy bajo, ver Imagen 62:

Imagen 65. Calculo del error cuadrático. Autores.

Page 87: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

78

Los datos de entrenamiento se han dividido en un 70/30 %, para entrenamiento y validación

respectivamente. A continuación, en la tabla 3 se puede observar que la desviación del

resultado que genera el prototipo de predicción vs el resultado de casos reales anteriores de la

firma.

Tabla 3. Comparación de predicción del prototipo vs datos reales.

Tipo Empresa

Tipo Caso

Lenguaje Moned

a País Departamento

Fecha Inicio

Resultado Real

Prototipo %

Desviación

2 42 1 1 10 19 42095 763 807 5%

2 6 1 2 10 9 42644 761 765 1%

5 5 1 1 10 9 40787 763 765 0%

8 8 1 1 10 11 40817 738 745 1%

8 25 1 4 10 17 42583 822 819 0%

9 25 2 2 34 44 41609 106 128 17%

9 25 2 2 34 44 41609 106 128 17%

12 25 1 1 10 17 40756 794 791 0%

15 25 2 2 8 4 42309 856 865 1%

15 57 2 2 12 19 42917 94 128 27%

15 57 2 2 12 19 42917 94 128 27%

21 25 2 1 10 17 41852 83 103 19%

21 31 2 1 10 19 41852 84 223 62%

21 31 2 2 10 19 42005 103 109 6%

21 31 2 2 10 19 42005 103 109 6%

21 31 2 1 10 19 42309 113 495 77%

21 31 2 1 10 19 42309 113 495 77%

21 42 2 1 10 19 42339 80 115 30%

21 42 2 1 10 19 42339 80 115 30%

21 31 1 1 10 19 43009 107 116 8%

21 31 1 1 10 19 43009 107 116 8%

22 59 2 2 34 61 42309 88 52 -69%

22 18 1 1 10 11 42614 791 783 -1%

22 32 2 4 14 24 42675 87 83 -5%

22 41 2 4 14 25 42675 87 83 -5%

22 19 1 4 14 19 43282 123 124 1%

22 19 1 4 14 19 43282 123 124 1%

22 19 1 4 14 19 43282 123 124 1%

22 19 1 4 14 19 43282 123 124 1%

22 20 1 4 14 19 43282 123 128 4%

Page 88: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

79

22 22 1 4 14 19 43282 123 128 4%

22 24 1 4 14 19 43282 123 128 4%

22 25 1 4 14 20 43282 123 119 -3%

22 25 1 4 14 20 43282 123 119 -3%

22 19 1 4 14 19 43282 123 124 1%

22 19 1 4 14 19 43282 123 124 1%

22 19 1 4 14 19 43282 123 124 1%

22 19 1 4 14 19 43282 123 124 1%

22 20 1 4 14 19 43282 123 128 4%

A partir de este análisis se puede evidenciar el éxito del proyecto, ya que los resultados

obtenidos en la mayoría de las predicciones se acercan mucho a la realidad. Evidenciando que

este modelo es el adecuado.

Page 89: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

80

PARTE III. CIERRE DE LA

INVESTIGACIÓN

Page 90: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

81

4. Conclusiones

• Uno de los pasos más importante y que toma más tiempo es la recolección,

análisis, clasificación y alistamiento de los datos. En un principio se tiende a

pensar que la parte compleja reside en la creación de la red neural, pero el

verdadero desafío está en implementar las herramientas y métodos de BigData,

ya que requiere de una gran exigencia de conocimiento y de análisis de datos.

• Es importante antes de embarcarse en la tarea de hacer un modelo de Machine

Learning tener claro el proceso de negocio que soporta y sobre todo tener los

datos ligados a este. Es totalmente contraproducente iniciar el desarrollo sin

tener los datos necesarios. Se entiende a estos datos como información que

representa valor para el proceso, que están activamente aportando al flujo del

negocio y que se tiene un histórico de ellos. Es más, si se hacen informes y

análisis a partir de estos datos mucho mejor, ya que esto valida la calidad de

los datos y su disposición para ser parte del proceso de machine learning.

• Para el procesamiento de los datos es importante tener en cuenta que la

maquina donde se ejecuta la red debe preferiblemente ser un servidor externo

y adicionalmente debe contar con un muy buen recurso de hardware ya que

esto impacta directamente en el tiempo en que se demora el aprendizaje de la

red.

• Machine Learning es un marco de trabajo que hace parte del conjunto de

herramientas de inteligencia artificial, su correcta implementación aporta valor

a los procesos existentes.

• Se evidencia a través del modelo diseñado, que las predicciones son muy

acertadas y además se hacen en un costo de tiempo menor, lo que representa

un gran beneficio a la compañía, puesto que actualmente el proceso se extiende

aproximadamente 1 o 2 días mientras el socio o la persona encargada hace una

revisión a la base de conocimientos.

Page 91: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

82

5. Trabajos Futuros

Realizar el mejoramiento y mantenimiento de la red neuronal creada: Con el modelo de red

neural establecido en el prototipo y realizando un pequeño análisis sobre otras variables a tener

en cuenta (como la categoría del empleado) se pueden fácilmente adaptar algunos datos de las

entradas que produce la ETL para elaborar una red neural similar pero que sea capaz de

predecir la cantidad de recursos humanos que se requieren para el proyecto.

Una vez la red sea capaz de predecir el recurso humano es bastante sencillo calcular el costo

del proyecto aproximado (en términos de recurso humano) ya que se multiplica el valor de la

categoría del abogado por el número de personas requeridas, y con esto ya tenemos un

estimado del costo.

Sin embargo, queda abierta la posibilidad de experimentar con otro tipo de red neural que sea

capaz de predecir varias variables al tiempo.

También es posible integrar la red neural de este proyecto a un ecosistema de redes neuronales

que puedan predecir los procesos complejos que implica todo el desarrollo de proyectos, no

solo en el ámbito legal si no en otros ámbitos y áreas. En nuestro caso, los proyectos con los

que trabajamos todos los días (Proyectos de software).

Y para ir mucho más lejos, se podría pensar en la elaboración de redes para extraer información

a partir de las sentencias y requerimientos escritos (NPL, Procesamiento de lenguaje natural),

de esta manera poder obtener los datos sin el preprocesamiento y clasificación de la

información.

En el entorno de usuario se podrán elaborar muchos más reportes, tanto de análisis de datos

existentes como de predicción, ya que con el 30% de los datos de pruebas que tenemos en el

modelo se pueden pasar por la red neural para representar gráficamente estas estimaciones

con filtros predeterminados.

Page 92: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

83

6. Bibliografía

Anderson, J. A., & A., J. (2007). Redes neurales. Alfaomega.

Benítez, R., Escudero, ., & K, . (2013). INTELIGENCIA ARTIFICIAL AVANZADA

(UOC). UOC.

Benjamins, R. (11 de Septiembre de 2018). Obtenido de Big Data & Data Science Blog:

Four design principles for developing sustainable AI applications: https://data-

speaks.luca-d3.com/2018/09/four-design-principles-for-

developing.html?utm_source=fe

Caballero, C. E., & Manios, S. R. (2016). Prototipo de Automatización del Proceso de

Importaciones a Colombia. Recuperado el 30 de 10 de 2018, de

http://repository.udistrital.edu.co/handle/11349/2794

Danièle Bourcier, P. C. (2003). Inteligencia artificial y derecho. UOC.

Dossman, C. (12 de Septiembre de 2018). Obtenido de The Engineers Guide to Machine

Learning: Data processing | Data Types: https://medium.com/ai3-theory-practice-

business/the-engineers-guide-to-machine-learning-data-processing-data-types-

ba40e

Google. (2018). Obtenido de Tensor Flow: https://www.tensorflow.org/

Group, M. C. (2017). Obtenido de Loss Functions: https://ml-

cheatsheet.readthedocs.io/en/latest/loss_functions.html

Hope, T., Resheff, Y. S., & Lieder, I. (2017). Learning TensorFlow. O'Reilly Media, Inc.

Jupyter. (10 de 2018). Jupyter. Obtenido de http://jupyter.org

Keras Documentation. (2018). Obtenido de https://keras.io/

Minka, E. (10 de 2018). Mean Absolute Erro. Obtenido de MAE :

https://medium.com/@ewuramaminka/mean-absolute-error-mae-machine-

learning-ml-b9b4afc63077

Mitchell, T. M. (2018). Universidad de Stanford. Obtenido de

https://www.coursera.org/learn/machine-learning/

Morgan, P. (2018). Machine Learning Is Changing the Rule. I. O’Reilly Media, Ed. (First

Edition).

Mycin. (s.f.). Recuperado el 8 de 10 de 2018, de Wikipedia, la enciclopedia libre:

http://es.wikipedia.org/wiki/Mycin

Ng, A. (2018). Universidad de Stanford. Obtenido de

https://www.coursera.org/learn/machine-learning/

Pajares Martinsanz, G. (2010). Ra-Ma. Obtenido de Aprendizaje automatico:

http://www.ra-ma.es/libros/APRENDIZAJE-AUTOMATICO-UN-ENFOQUE-

PRACTICO/23487/978-84-9964-011-2

Ponce Cruz, P. (2010). Inteligencia Artificial con Aplicaciones a la Ingeniería. México

D.F.: Alfaomega Grupo Editor, S.A. de C.V.

Posse Herrera Ruiz, firma colombiana del año. (2015). Portafolio, 1.

Ruder, S. (2016). Obtenido de An overview of gradient descent optimization algorithms:

http://ruder.io/optimizing-gradient-descent/index.html

Scikit-learn. (2018). Obtenido de Scikit-learn: https://scikit-learn.org/stable/

Page 93: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

84

The Open Group. (2016). Obtenido de

http://pubs.opengroup.org/architecture/archimate3-doc/

Toro, L. (Octubre de 2018). Blog desde Linux. Obtenido de https://blog.desdelinux.net:

https://blog.desdelinux.net/ciencia-de-datos-con-python/

Towards Data Science. (04 de 08 de 2017). Towards Data Science. Obtenido de The

mostly complete chart of Neural Networks, explained:

https://towardsdatascience.com/the-mostly-complete-chart-of-neural-networks-

explained-3fb6f2367464

Wasson, M. (2018). Microsoft Docs. Obtenido de Estilo de arquitectura de

microservicios: https://docs.microsoft.com/es-

es/azure/architecture/guide/architecture-styles/microservices

Page 94: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

85

ANEXOS

Page 95: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

86

ANEXO I. Fragmento del DataSet utilizado en el proyecto

A continuación, una muestra de 100 registros que se utilizaron para entrenar el modelo, el dataset completo contiene más de 5000 registros.

Tipo Empresa

Tipo Caso

Lenguaje Moneda País Departamento Fecha Inicio

Días Duración

1 12 1 2 9 5 40330 1220

1 25 1 1 10 15 42917 444

2 6 1 2 10 9 42644 761

2 42 1 1 10 19 42095 763

2 42 1 1 10 19 42795 610

3 2 2 2 34 42 40878 1197

4 3 2 2 8 4 40365 426

4 16 2 1 10 11 42767 238

5 5 1 1 10 9 40787 763

6 25 2 4 18 33 43266 139

6 25 2 4 18 33 43266 139

7 25 1 1 10 16 41183 892

7 25 1 1 10 17 40330 1220

7 28 1 1 10 19 41153 922

7 31 1 1 10 19 41579 452

7 31 1 2 34 48 40220 1855

8 8 1 1 10 11 40817 738

8 25 1 4 10 17 42583 822

8 25 2 1 10 17 42887 518

9 18 1 2 10 11 42795 610

9 25 1 2 14 20 41275 1730

9 25 2 2 34 44 41609 106

10 42 2 1 10 19 42461 944

11 27 2 2 13 19 41640 182

12 21 1 1 10 13 40909 1166

12 25 1 1 10 17 40756 794

12 25 1 2 34 44 40204 217

12 55 2 2 34 57 40634 329

13 18 2 2 2 2 43132 273

13 33 2 2 8 4 41913 1092

13 56 2 2 17 33 42522 483

13 56 2 2 34 60 42005 190

14 25 2 2 11 19 41730 1435

15 25 2 2 8 4 42309 856

Page 96: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

87

15 25 2 2 10 17 41640 295

15 25 1 1 10 17 41548 527

15 57 2 2 12 19 42917 94

15 57 2 2 13 19 42826 431

15 60 1 2 34 64 41031 201

16 48 1 4 10 19 42917 488

17 55 2 2 34 58 42217 220

17 59 2 2 34 61 40330 654

18 16 1 1 10 11 40391 1159

19 55 2 2 10 19 42309 414

19 55 2 2 10 19 42217 506

20 15 1 1 10 11 42278 475

20 16 1 1 10 11 40940 344

20 21 1 1 10 14 40725 274

21 17 1 1 10 11 41792 1613

21 25 2 1 10 17 41852 83

21 31 2 1 10 19 41852 136

21 31 2 1 10 19 41852 84

21 31 2 2 10 19 42005 103

21 31 1 1 10 19 43040 76

21 31 2 1 10 19 42430 975

21 31 2 1 10 19 42370 1035

21 31 2 1 10 19 42826 339

21 31 1 1 10 19 43009 107

21 31 1 1 10 19 43101 304

21 31 1 1 10 19 43191 214

21 31 2 1 10 19 42309 1096

21 31 2 1 10 19 42005 1400

21 31 2 1 10 19 42491 366

21 31 2 1 10 19 41883 550

21 31 2 1 10 19 41913 519

21 31 2 1 10 19 42278 168

21 31 2 1 10 19 42339 190

21 31 2 1 10 19 41852 581

21 31 2 1 10 19 41883 610

21 31 2 1 10 19 41883 550

21 31 2 1 10 19 42309 113

21 42 2 1 10 19 42339 80

21 42 2 1 10 19 42461 196

Page 97: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

88

21 42 2 1 10 19 41883 536

21 42 2 1 10 19 42278 245

21 42 2 1 10 19 42339 184

21 42 2 1 10 19 42339 80

21 42 2 1 10 19 41821 612

21 42 2 1 10 19 41883 535

21 42 2 1 10 19 41913 506

21 42 2 1 10 19 42278 251

21 42 2 1 10 19 42370 231

21 42 2 1 10 19 42370 305

21 42 2 1 10 19 42461 200

22 10 2 2 8 4 41365 710

22 11 2 2 8 4 41699 1306

22 16 2 2 8 4 41671 404

22 16 2 2 8 4 40969 397

22 18 1 1 10 11 42614 791

22 19 1 4 14 19 43282 123

22 19 1 4 14 19 43282 123

22 19 1 4 14 19 43282 123

22 19 1 4 14 19 43282 123

22 20 1 4 14 19 43282 123

22 22 1 4 14 19 43282 123

22 24 1 4 14 19 43282 123

22 25 1 4 14 20 43282 123

22 25 1 4 14 20 43282 123

22 25 2 2 14 20 40918 484

22 25 1 2 14 21 40969 356

Page 98: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

89

ANEXO II. Código del cliente de consumo del servicio

El siguiente fragmento de código corresponde a una clase en el lenguaje c#, que se encarga

de consumir el servicio de Jupyter Notebook.

Page 99: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

90

ANEXO III. Configuración Web Service

Instalación de Jupyter Kernel Gateway

Esta librería se utilizó para convertir un Notebook en un servicio Rest. Para configurarlo se deben realizar los siguientes pasos:

1. Instalar la librería con ayuda del entorno de Anaconda.

2. Aceptar e instalar las dependencias.

Page 100: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

91

3. Abrir Anaconda Prompt, ejecutar el siguiente comando:

conda install -c conda-forge jupyter_kernel_gateway

Se debe esperar a que se instalen todas las librerías requeridas.

4. Iniciar el servicio de Jupyter Rest:

jupyter kernelgateway --KernelGatewayApp.api='kernel_gateway.notebook_http' --KernelGatewayApp.seed_uri='./RedNeuronalFinal2.ipynb'

Page 101: DISEÑO DE UNA HERRAMIENTA BASADA EN MACHINE …repository.udistrital.edu.co/bitstream/11349/14633... · mundo sin la web, en unos años no tardaremos en acostumbrarnos y asimilar

92

Configuración de Notebook

Los siguientes dos bloques de código se deben ejecutar en el notebook para exponerlo como

un servicio rest. Se debe tener en cuenta la configuración y la correcta asignación de las

variables en el media query.