Introducción al aprendizaje automático con Orange - José Manuel Casas - E-Book

Introducción al aprendizaje automático con Orange E-Book

José Manuel Casas

0,0
14,99 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.
Mehr erfahren.
Beschreibung

Aprender acerca de la inteligencia artificial (IA) y hacer realidad sus primeros modelos ahora es más fácil que nunca. Introducción al aprendizaje automático con Orange le guiará en este camino a través de una de las herramientas de software de código abierto más potentes de la actualidad, Orange Data Mining. En este libro encontrará una explicación detallada sobre Orange Data Mining, una plataforma que proporciona un entorno visual y de programación para la exploración, representación gráfica y análisis de datos. A través de un enfoque basado en componentes, este software le permitirá construir flujos de trabajo analíticos personalizados mediante la conexión de diferentes widgets para realizar tareas específicas. Apto para aficionados, curiosos y expertos por igual, este libro no solo cubre los fundamentos de la IA, sino que también le invita a sumergirse en la programación de modelos de IA por su cuenta, aprovechando una comunidad activa que constantemente enriquece Orange con nuevas capacidades y funcionalidades. Gracias a la lectura de este libro: •Aprenderá a usar el entorno de trabajo de Orange. •Comprenderá los principios del análisis de datos y su visualización. •Dominará los conceptos fundamentales del aprendizaje automático. •Será capaz de desarrollar sus propios modelos de inteligencia artificial. Únase a este viaje para explorar, aprender y crear con inteligencia artificial, mientras fomenta la colaboración y la innovación dentro de una comunidad de código abierto en constante crecimiento. Este libro es la puerta de entrada a un mundo donde la tecnología punta está al alcance de su mano. No lo deje escapar, transforme su comprensión de los datos y sus habilidades en IA.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 147

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



 

Introducción al aprendizaje automático con Orange

© 2024 José Manuel Casas, Sergio Luis Suárez Gómez, Laura Bonavera y Fernando Sánchez Lasheras

Primera edición, 2024

© 2024 MARCOMBO, S. L.

www.marcombo.com

Ilustración de cubierta: Jotaká

Corrección: Haizea Beitia

Directora de producción: M.a Rosa Castillo

Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra solo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley. Diríjase a CEDRO (Centro Español de Derechos Reprográficos, www.cedro.org) si necesita fotocopiar o escanear algún fragmento de esta obra

ISBN del libro en papel: 978-84-267-3825-7

ISBN del libro electrónico: 978-84-267-3854-7

Producción del ePub: booqlab

 

 

En memoria de mi tía Mariví.Siempre en nuestros corazones.Fernando Sánchez Lasheras

A mi padre, cuyo apoyo siempre me guía en el camino del conocimiento.En memoria de mi tía Pili.Sergio Luis Suárez Gómez

A mis adorables princesas, Layla y Naya.Con todo mi cariño.Laura Bonavera

A mis padres.José Manuel Casas González

Contenido

Prólogo

CAPÍTULO 1Introducción a Orange y su entorno de trabajo

1.1. Introducción

1.2. Instalación de Orange

1.2.1. Mac OS X

1.2.2. Windows

1.2.3. Linux

1.2.4. Anaconda

1.2.5. Instalación con pip

1.3. El entorno de trabajo de Orange

1.4. Flujo de trabajo en Orange. Canvas y widgets

1.4.1. Más sobre flujos de trabajo

1.4.2. Carga de ficheros en Orange

CAPÍTULO 2Conceptos fundamentales del aprendizaje automático

2.1. Introducción

2.2. Clasificación de las metodologías y técnicas fundamentales del aprendizaje automático

2.2.1. Clasificación por tipo de aprendizaje

2.2.2. Clasificación por tipo de tarea

2.3. Métodos de regresión

2.3.1. Regresión lineal

2.3.2. Random forest

2.3.3. Otros métodos de regresión

2.4. Métodos de clasificación

2.4.1. Árbol de decisión

2.4.2. K-Nearest Neighbors

2.4.3. Otros modelos de clasificación

2.5. El agrupamiento o clustering

2.5.1. K-Means

2.5.2. t-SNE

2.5.3. DBSCAN

2.5.4. Otros métodos de clustering

CAPÍTULO 3Análisis de bases de datos

3.1. Sobre la calidad de las bases de datos

3.2. Detección de espurios y de posibles agrupaciones en el conjunto de datos

3.2.1. Local Outlier Factor

3.2.2. Otros métodos para calcular outliers

3.3. Exploración de datos faltantes

3.4. Sobre los tipos de datos faltantes

3.5. Aplicación de metodologías de imputación

3.5.1. Ejercicio 3.1

3.6. Escalado de las variables

3.6.1. Ejercicio 3.2

3.6.2. Ejercicio 3.3

CAPÍTULO 4Visualización de datos

4.1. Introducción al análisis exploratorio

4.1.1. Visualizaciones inteligentes

4.2. Gráficos de dispersión

4.3. Gráficos de cajas

4.4. Gráficos de violín

4.5. Gráficos de barras

4.6. Gráficos de distribución

4.7. Diagramas de tamiz

4.8. Gráficos de mosaico

4.9. Mapas de calor

CAPÍTULO 5Redes neuronales artificiales

5.1. Introducción a las redes neuronales artificiales

5.2. Conjuntos de datos

5.3. Arquitectura de una red

5.4. Funciones de activación

5.5. Funciones de coste

5.6. Algoritmo de retropropagación

5.7. Otras arquitecturas de redes

5.8. Ejemplo. MLP para el set de datos MNIST

CAPÍTULO 6Las máquinas de vectores de soporte

6.1. Introducción

6.2. Ejemplo de aplicación de las máquinas de vectores de soporte como clasificador en Orange

6.3. Medidas de rendimiento

6.4. Curvas ROC

6.5. Teoría de las máquinas de vectores de soporte

6.5.1. La función de pérdida

6.6. Modelos de árbol

CAPÍTULO 7Métodos combinados (ensemble)

7.1. Introducción

7.2. Métodos combinados. Un ejemplo que hace uso de la regresión logística y otros modelos

7.3. Gradient boosting

7.3.1. Preprocesado

7.3.2. Gradient boosting (scikit-learn)

7.3.3. Extreme gradient Boosting (xgboost)

7.3.4. Extreme gradient boosting random forest (xgboost)

7.3.5. Gradient boosting (catboost)

7.3.6. Ejercicio completo

7.4. Sobre los tipos de datos faltantes

7.5. Aplicación de metodologías de imputación

7.6. Escalado de las variables

7.6.1. Ejercicio 2

Referencias

Prólogo

En un mundo donde los datos se han convertido en el activo más valioso, la capacidad para extraer información significativa de ellos es fundamental. En este contexto, Orange Data Mining emerge como una herramienta indispensable, una brújula que guía a los exploradores de datos a través del vasto océano de información.

En este libro, descubrirá el potencial que ofrece Orange Data Mining. Paso a paso aprenderá todas sus capacidades, desde la exploración inicial de conjuntos de datos hasta la creación de modelos predictivos avanzados. Este software de código abierto ofrece un arsenal de herramientas poderosas, todo ello presentado en una interfaz visual intuitiva que facilita el análisis de datos a los menos expertos. A través del enfoque en componentes de este programa, los usuarios podrán construir flujos de trabajo personalizados sin necesidad de codificación, lo que permitirá una exploración ágil y flexible de los datos.

Con Orange Data Mining, las posibilidades son infinitas. Desde la segmentación de clientes hasta el descubrimiento de patrones ocultos, desde la clasificación de imágenes hasta la predicción de resultados futuros, este software se convierte en un compañero imprescindible para cualquier persona interesada en este campo.

A medida que lea este libro, descubrirá las grandes posibilidades que ofrece este programa. Ya sea un novato en el campo de la ciencia de datos o un experto en la materia, estamos seguros de que encontrará en Orange Data Mining el mejor aliado en su viaje hacia el descubrimiento y la comprensión de los datos.

Los autoresOviedo, marzo de 2024

CAPÍTULO 1

INTRODUCCIÓN A ORANGE Y SU ENTORNO DE TRABAJO

1.1. Introducción

Orange es un paquete de software de programación visual. Consiste en un conjunto de herramientas de visualización de datos, aprendizaje automático, minería y análisis de datos de código abierto. Cuenta con una interfaz de programación visual para el análisis exploratorio de datos cualitativos y la visualización interactiva de los mismos.

Orange es un paquete de software de código abierto publicado bajo GPL y alojado en GitHub. Las versiones hasta la 3.0 incluyen componentes principales en C++ con wrappers en Python. Desde la versión 3.0 en adelante, Orange utiliza bibliotecas comunes de código abierto de Python para computación científica, como numpy, scipy y scikit-learn, mientras que su interfaz gráfica de usuario opera dentro del marco Qt multiplataforma.

Los componentes de Orange se llaman widgets. Las funcionalidades de los mismos abarcan desde la simple visualización de datos, la selección de subconjuntos y el preprocesamiento de información hasta la evaluación empírica de los algoritmos de aprendizaje y modelos predictivos.

La programación visual se implementa a través de una interfaz en la que se crean flujos de trabajo al vincular algunos widgets o bien predefinidos, o bien diseñados por el usuario, mientras que los usuarios avanzados pueden usar Orange como una biblioteca de Python para la manipulación de datos y la modificación de widgets.

La instalación predeterminada incluye una serie de algoritmos de aprendizaje automático, preprocesamiento y visualización de datos en seis conjuntos de widgets (data, transform, visualize, model, evaluate y unsupervised). Las funcionalidades adicionales están disponibles como complementos (text-mining, image analytics, bioinformatics, etc.).

1.2. Instalación de Orange

Orange es compatible con macOS, Windows y Linux, y también se puede instalar desde el repositorio Python Package Index (pip install Orange3).

La última versión de Orange se puede descargar desde la página web de Orange (https://orangedatamining.com).

1.2.1. Mac OS X

Después de descargar la última versión para OSX, lo más probable es que el navegador guarde el archivo de instalación con un nombre similar a Orange3.dmg en la carpeta de Descargas. Una vez descargado este archivo de instalación, la instalación comienza haciendo doble clic en su icono. Debería abrirse una ventana como la que se muestra a continuación en la Figura 1.1. Arrastre el icono naranja y suéltelo sobre el icono de aplicaciones.

Figura 1.1 Instalación de Orange en MacOS X.

Ahora se puede abrir Orange desde la carpeta de Aplicaciones. Simplemente abra dicha carpeta, busque la aplicación llamada Orange, haga clic en su icono para seleccionarla y ábrala eligiendo Abrir en el menú Archivo del Finder.

1.2.2. Windows

Descargue el archivo de instalación y guárdelo en un su ordenador. Inicie la instalación haciendo doble clic en el archivo descargado. Elija Sí cuando se le pregunte si desea permitir que este programa realice cambios en su ordenador. El programa de instalación le pedirá que confirme la instalación de Python. Presione OK. Si ya tiene instalado Python, este paso no es necesario. Siga al asistente de instalación para la instalación de Python. Puede dejar la configuración predeterminada y esperar a que se complete la instalación. Después de instalar Python, el asistente instalará Orange 3 y sus dependencias (como se muestra en la Figura 1.2). Este paso puede llevar un tiempo.

Figura 1.2 Instalación de Orange en Windows.

Haga doble clic en el icono de Orange para iniciar la aplicación de Orange.

1.2.3. Linux

Siguiendo las instrucciones en la página web oficial de Orange, clone el repositorio de Orange desde GitHub (un servicio de alojamiento de Internet para el desarrollo de software) o descargue el tarball del código fuente desde GitHub. Luego siga las instrucciones en README.md.

Para ejecutar Orange Canvas es necesario que introduzca la siguiente línea de código (Figura 1.3):

Figura 1.3 Comando para ejecutar Orange en Linux.

Se pueden agregar características adicionales a Orange instalando add-ons. El administrador de add-ons se encuentra en el menú Opciones.

1.2.4. Anaconda

Si se está utilizando Python proporcionado por la distribución de Anaconda, la instalación es todavía más sencilla. Si es usuario de OSX, agregue conda-forge a la lista de canales desde los que puede instalar paquetes por medio del código (Figura 1.4):

Figura 1.4 Agregar conda-forge.

Luego ejecute los comandos en la Figura 1.5:

Figura 1.5 Instalar Orange en Anaconda.

Para los usuarios Linux, además de agregar conda-forge a la lista de canales desde los que puede instalar paquetes, hay que configurarlo como predeterminado (Figura 1.6):

Figura 1.6. Configuración conda-forge para Linux.

Luego hay que ejecutar los comandos de la Figura 1.7:

Figura 1.7 Instalar Orange para Linux.

1.2.5. Instalación con pip

Orange también se puede instalar desde el índice de paquetes de Python (pip). En este caso es posible que necesite paquetes de sistema adicionales proporcionados por su distribución. Si es así, para conseguir la instalación se debe ejecutar el siguiente código (Figura 1.8):

Figura 1.8. Instalación con pip.

1.3. El entorno de trabajo de Orange

Orange consta de una interfaz de canvas en la que el usuario coloca las unidades computacionales de Orange, conocidas como widgets, y crea un flujo de trabajo de análisis de datos. Los widgets ofrecen funcionalidades básicas como leer los datos, mostrar una tabla de datos, seleccionar funciones, entrenar predictores, comparar algoritmos de aprendizaje, visualizar elementos de los datos, etc. El usuario puede explorar visualizaciones de manera interactiva o alimentar el subconjunto seleccionado en otros widgets.

Una vez instalado Orange, se obtiene una ventana como la que se muestra en la Figura 1.9.

La mayoría de los flujos de trabajo comienzan cargando un fichero. Haciendo clic en el icono File aparece en la ventana el nuevo fichero, como se muestra en la Figura 1.10.

Figura 1.9 Ventana de inicio.

Figura 1.10 Creación de un nuevo fichero.

En este caso concreto, se carga un fichero de trabajo de los que dispone Orange. Pulsando con el botón derecho en el nuevo icono se abre la ventana que se muestra a continuación (Figura 1.11):

Figura 1.11 Cargar un fichero.

Para ver el fichero que hemos cargado, necesitamos introducir en el canvas el widget Data Table pulsando el icono correspondiente en el menú de la derecha. El resultado se muestra en la Figura 1.12.

Y después se conectan los widgets seleccionando uno de ellos con el ratón y arrastrando hacia el otro, para obtener así la conexión que se puede ver en la Figura 1.13.

Figura 1.12 Introducción del widget Data Table.

Figura 1.13 Conexión entre widgets. En este caso del widget File al widget Data Table.

Con el botón derecho podemos abrir la tabla y ver su contenido; pulsando en Open se abre la tabla que se puede ver en las Figuras 1.14 y 1.15:

Figura 1.14 Cómo abrir y ver el contenido de la tabla.

Figura 1.15 Cómo aparece el contenido de la tabla.

Con el contenido de la tabla de la Figura 1.15 se puede crear un diagrama de dispersión (Figura 1.16). Arrastrando con el ratón desde el icono File hasta un punto de la ventana se genera una línea como la que se muestra en la figura y se abre un menú bastante amplio donde se puede elegir la opción Scatter Plot, más o menos bajando hasta la mitad de la lista de las posibles opciones.

Figura 1.16 Cómo crear un diagrama de dispersión.

Pulsando dos veces sobre el icono del diagrama de dispersión, se abre una ventana como la que se muestra en la Figura 1.17. Al explorar las posibilidades del menú, empezando desde arriba, se observa cómo se puede escoger lo que se quiere representar en cada eje, con algunas sugerencias de proyecciones informativas, pinchando en el botón correspondiente. Más abajo se pueden escoger los atributos como color, forma, medida, etiquetas y otras opciones seleccionando las casillas correspondientes.

Figura 1.17 Ejemplo de diagrama de dispersión y sus opciones.

Por ejemplo, seleccionando Show color regions y Show gradient se obtiene un diagrama de dispersión como el que se muestra en la Figura 1.18:

Figura 1.18 Ejemplo de diagrama de dispersión con gradiente de color para cada región.

1.4. Flujo de trabajo en Orange. Canvas y widgets

Antes de crear un flujo de trabajo borramos el grafico anterior pinchando con el botón derecho en el icono correspondiente y seleccionando Remove. Así, queda una ventana como la que se muestra en Figura 1.19.

Figura 1.19 Ventana de Orange una vez borrado el grafico de la sección 1.3.

La información que hemos cargado es una base de datos de características de flores de iris formada por 150 muestras. Se trata de una base de datos muy conocida que introdujo Ronald Fisher (1890-1962) y que se emplea para ilustrar todo tipo de problemas relacionados con el machine learning y la estadística. Esta base de datos contiene información relativa a la longitud y ancho de los pétalos y sépalos de tres especies diferentes de esta planta, denominadas setosa, versicolor y virginica.

Por tanto, la base de datos contiene cuatro variables numéricas y otra categórica relativa a la especie de iris a la que pertenece cada flor. Si se vuelve a abrir la tabla se pueden ver las cuatro variables en las últimas cuatro columnas (Figura 1.20).

Figura 1.20 Contenido de la tabla con la especie de cada flor (primera columna) y las variables numéricas (las restantes cuatro columnas).

Para analizar sus distribuciones, añadimos el widget Distributions como se puede ver en la Figura 1.21.

Figura 1.21 Introducción del widget Distributions para analizar las distribuciones.

Si se abre, se pueden obtener los histogramas de la variable que nos interesa y que se selecciona en el menú a la derecha. En el caso de la Figura 1.22 se ha seleccionado la longitud de los sépalos. Las líneas continuas representan el ajuste gaussiano a las distribuciones. Se puede seleccionar la función para el ajuste en el menú Fitted Distribution.

Un ajuste gaussiano es un ajuste a una función como esta:

Su gráfico tiene una forma característica simétrica en forma de campana. Las funciones gaussianas se utilizan a menudo para representar la función de densidad de probabilidad de una variable aleatoria, normalmente distribuida con valor esperado μ y varianza σ2. El parámetro es la altura del pico de la curva, μ indica la posición del centro del pico y σ (también llamada desviación estándar o anchura RMS gaussiana) controla la amplitud de la "campana". Las funciones gaussianas son ampliamente utilizadas; por ejemplo, se utilizan en estadística para describir las distribuciones normales, en procesamiento de señales para definir filtros gaussianos, en procesamiento de imágenes (donde se utilizan gaussianas bidimensionales) para desenfoques gaussianos y en matemáticas para resolver ecuaciones de calor y ecuaciones de difusión.

Figura 1.22 Distribución de las longitudes de los sépalos y sus ajustes gaussianos.

Para el análisis crearemos otra vez un widget de Scatter Plot y seleccionaremos las variables que mejor separan en dos categorías. Pulsando en el botón Find Informative Projections se abre una ventana como la que se muestra en la Figura 1.23.

Figura 1.23 Análisis utilizando el widget Scatter Plot.

Seleccionamos los valores de la zona de intersección de ambas categorías para que se puedan explorar. Simplemente se define la región de interés arrastrando el ratón y así quedan seleccionados nuestros valores (Figura 1.24).

Figura 1.24 Selección de la región de interés.

De esta manera creamos una nueva instancia de datos en la que solo aparecen las variables seleccionadas. Para hacerlo, hay que volver a la ventana principal (del flujo de trabajo) y añadir, como antes, un Data Table conectado al Scatter Plot (Figura 1.25).

Figura 1.25 Creación de Data Table con los datos seleccionados.

Puede ser útil, cuando el flujo de trabajo se vuelve complejo, tener en cuenta que seleccionando el widget que nos interese y pulsando F2 podemos cambiar el nombre para que resulte más fácil su identificación (Figura 1.26).

Figura 1.26 Es posible cambiar el nombre a los widgets para que quede más clara su identificación.

Es importante también guardar un flujo de trabajo. Para guardar nuestro primer flujo de trabajo en Orange, hay que pulsar en File y seleccionar Save en el menú que se abre.

1.4.1. Mas sobre flujos de trabajo

Comenzamos ahora un nuevo proyecto en el que insertaremos los widgets en el canvas y, posteriormente, seleccionaremos la base de datos. A la hora de realizar las conexiones, Orange nos ayuda, pues no nos dejará conectar entre sí dos widgets que no sean compatibles.

Podemos hacer uso del menú para seleccionar los widgets. Copiamos o arrastramos al canvas (o buscamos en el menú que se abre con el botón derecho del ratón) los widgets que se indican en esta imagen; en particular introducimos un nuevo widget: Box Plot (Figura 1.27).

Figura 1.27 Introducción del widget Box Plot.

Escogemos la base de datos Iris y unimos los widgets. Veremos que todo se ha cargado y funciona, como en la Figura 1.28.

Figura 1.28 Conexión de los widgets que se van a utilizar (Data Table, Scatter Plot y Box Plot).

Podemos ver (Figura 1.29) el Box Plot de las distintas variables, y también nos aporta un análisis estadístico.