0% encontró este documento útil (0 votos)
32 vistas19 páginas

Aprendizaje Supervisado con Árboles de Decisión

Este documento describe el aprendizaje supervisado y los árboles de decisión. El objetivo es desarrollar un agente que pueda predecir si un animal es un mamífero o un reptil usando características como el peso y la altura. Se implementará el algoritmo de árbol de decisión usando Python para clasificar los animales basándose en datos de entrenamiento.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
32 vistas19 páginas

Aprendizaje Supervisado con Árboles de Decisión

Este documento describe el aprendizaje supervisado y los árboles de decisión. El objetivo es desarrollar un agente que pueda predecir si un animal es un mamífero o un reptil usando características como el peso y la altura. Se implementará el algoritmo de árbol de decisión usando Python para clasificar los animales basándose en datos de entrenamiento.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

SISTEMAS DE APRENDIZAJE

SUPERVISADO

GRUPO: 4
INTEGRANTES: Urquidi Rueda Rafael Enrique
Peña Chinchilla Luis Anghelo
Molina Ávila Guillermo Rodrigo
Angulo Montaño Kevin
MATERIA: Inteligencia Artificial
DOCENTE: Patricia Erika Rodriguez Bilbao
FECHA: 16/07/2021

Cochabamba - Bolivia
I. Introducción
La inteligencia artificial es uno de los campos tecnológicos de los cuales más
énfasis se ha puesto en los últimos años, aun cuando su estudio y teorización han
sido planteados desde la Segunda Guerra Mundial (con la máquina de Alan Turing).
Existen varias metodologías y procesos a realizarse para conseguir que a un agente
programado se le pueda considerar como “inteligente”. Desde la programación de
agentes que sigan reglas de búsqueda preestablecidas, que reconozcan ciertos
patrones para obtener valores y caminos óptimos; pero también existen otros
agentes, los agentes que aprenden.

En base a los agentes con aprendizaje automatizado, se ha desarrollado el campo


del “machine learning” que es una rama de la inteligencia artificial que empezó a
cobrar importancia a partir de los años 80. Este es tipo de IA que no depende de
unas reglas y un programador, sino que la computadora puede establecer sus
propias reglas y aprender por sí misma.

El machine learning se clasifica en tres tipos:

● Aprendizaje supervisado
● Aprendizaje no supervisado
● Aprendizaje de refuerzo según la naturaleza de los datos que recibe.
● Sistemas multi-agente

Los modelos de aprendizaje sin supervisión no cuentan con intervención por parte
de un programador, mientras que los sistemas multi-agente implementan varios
agentes que, usualmente, compiten entre sí.

El aprendizaje supervisado puede reconocer ciertas entradas de datos tras una


exposición a ese tipo de datos en un entorno manipulado. Mediante esta
metodología se puede asegurar que el agente tenga cierto conocimiento previo
sobre el funcionamiento y algunos resultados esperados, teniendo el mismo que
deducir o aprender patrones y funciones que le permitan obtener resultados
satisfactorios cuando se vea en una situación nueva y desconocida. Además,
cuentan con un método de entrenamiento, con el cual se le puede corregir de
cometer errores.
Uno de los procesos por los cuales puede conseguirse un agente inteligente
mediante el método del aprendizaje supervisado puede ser el árbol de decisión,
o como se conoce en inglés classification and regression tree (CART) que fue
desarrollado por Breiman et al. (1984). Es un tipo de algoritmo de aprendizaje
supervisado que se utiliza principalmente en problemas de clasificación, aunque
funciona para variables de entrada y salida categóricas como [Link] divide la
población o muestra en conjuntos homogéneos basados en la variable de entrada
más significativa. La construcción del árbol sigue un enfoque de división binaria
recursiva (top-down greddy approach). Greedy -> analiza la mejor variable para
ramificación sólo en el proceso de división actual.

Los problemas de tipo de clasificación generalmente son aquellos en los que


intentamos predecir los valores de una variable dependiente categórica (clase,
pertenencia a grupos, etc.) a partir de una o más variables predictoras continuas.

En el problema planteado se tiene que nuestro agente deberá ser capaz de predecir
si un animal es mamífero o si un animal es reptil a partir de los datos de las
variables continuas ingresadas, es decir que si nuestro agente se le pasa algunos
parámetros como peso, altura, etc este deberá ser capaz de predecir de qué animal
nos referimos basándose en datos anteriores que se le dio para realizar dicha
predicción.

En el siguiente informe nos enfocaremos en el uso de aprendizaje supervisado para


la implementación de un agente con la ayuda de la metodología de árboles de
decisión.

II. Objetivos
Nuestro objetivos son: El desarrollar un agente capaz de reconocer si un animal es
reptil o mamífero, todo esto lo realizará en base a unos datos que le pasemos con
anterioridad y el agente deberá ser capaz de aprender en base a estos datos, para
que cuando se le pasen nuevo datos sea capaz de predecir si el animal pertenece a
la clase de mamíferos o a la clase de reptiles
Objetivos Específicos:
● Analizar y comprender el lenguaje Supervisado.
● Investigar e implementar los conocimientos y métodos para lograr el
aprendizaje supervisado.

● Realizar un prototipo de solución del agente con python.


● Aplicar el algoritmo de árbol de decisiones.
● Implementar librerías de aprendizaje como: sklearn, random, os. Para poder
generar el prototipo.

III. Marco teórico

El aprendizaje supervisado, también conocido como aprendizaje automático


supervisado, es una subcategoría del aprendizaje automático y la inteligencia
artificial. Se define por su uso de conjuntos de datos etiquetados para entrenar
algoritmos que clasifiquen datos o predigan resultados con precisión. A medida que
los datos de entrada se introducen en el modelo, éste ajusta sus ponderaciones
hasta que el modelo se ha ajustado adecuadamente, lo que ocurre como parte del
proceso de validación cruzada. El aprendizaje supervisado ayuda a las
organizaciones a resolver una serie de problemas del mundo real a escala, como
clasificar el spam en una carpeta separada de una bandeja de entrada.

El aprendizaje supervisado se divide en:

● Clasificación: Centrado en construir modelos que separan los datos


en clases distintas. Generalmente pueden ser de tipo Árbol de
Decisión o de tipo Máquina con soporte vectorial.
● Regresión: Se basa en los datos ingresados previamente, la máquina
predice valores de salida continuos. Existen en dos formas: Regresión
Lineal y Regresión polinomial.

En esta ocasión se utilizará el método de clasificación empleado junto con el


algoritmo de un árbol de decisión.

Los árboles de decisión son una técnica de aprendizaje automático supervisado


muy utilizada en muchos negocios. Como su nombre indica, esta técnica de
machine learning toma una serie de decisiones en forma de árbol. Los nodos
intermedios (las ramas) representan soluciones. Los nodos finales (las hojas) nos
dan la predicción que vamos buscando.
Ventajas:
● Son simples de entender y de interpretar
● Si el árbol no es excesivamente grande, puede visualizarse
● No requiere una preparación de los datos demasiado exigente (aunque la
implementación de Scikit-Learn no soporta valores nulos)
● Se puede trabajar tanto con variables cuantitativas como cualitativas
● Utiliza un modelo de caja blanca: la respuesta del algoritmo es fácilmente
justificable a partir de la lógica booleana implementada en él.
Desventajas:

● Los aprendices de árbol de decisión tienden al sobreentrenamiento,


especialmente cuando el número de características predictivas es alto
● Son inestables: cualquier pequeño cambio en los datos de entrada puede
suponer un árbol de decisión completamente diferente
● No se puede garantizar que el árbol generado sea el óptimo
● Hay conceptos que no son fácilmente aprendibles pues los árboles de
decisión no son capaces de expresarlos con facilidad (como el operador
XOR)
● Los aprendices crean árboles sesgados si hay clases dominantes, por lo que
se recomienda balancear el conjunto de datos antes de entrenar el aprendiz
Arquitectura de árboles de decisión:
Un árbol de decisión en Machine Learning es una estructura de árbol similar a un

diagrama de flujo donde un nodo interno representa una característica (o atributo),

la rama representa una regla de decisión y cada nodo hoja representa el resultado.

El nodo superior en un árbol de decisión en Machine Learning se conoce como el

nodo raíz. Aprende a particionar en función del valor del atributo. Divide el árbol de

una manera recursiva llamada partición recursiva.

Esta estructura tipo diagrama de flujo lo ayuda a tomar decisiones. Es una

visualización como un diagrama de flujo que imita fácilmente el pensamiento a nivel

humano. Es por eso que los árboles de decisión son fáciles de entender e

interpretar.
Los árboles de decisión clasifican los ejemplos clasificándolos por el árbol desde la

raíz hasta algún nodo hoja, con el nodo hoja proporcionando la clasificación al

ejemplo, este enfoque se llama Enfoque de arriba hacia abajo.

Cada nodo en el árbol actúa como un caso de prueba para algún atributo, y cada

borde que desciende de ese nodo corresponde a una de las posibles respuestas al

caso de prueba. Este proceso es recursivo y se repite para cada subárbol enraizado

en los nuevos nodos.

Cómo trabaja el árbol de decisión en Machine Learning

Pasos de la lógica del árbol de decisión

1. Seleccione el mejor atributo utilizando Medidas de selección de atributos


(ASM) para dividir los registros.
2. Haga que ese atributo sea un nodo de decisión y divida el conjunto de
datos en subconjuntos más pequeños. recursivamente para cada niño
hasta que una de las condiciones coincida:
● Todas las tuplas pertenecen al mismo valor de atributo.
● No quedan más atributos.
● No hay más instancias.

Ganancia de información
La ganancia de información es una propiedad estadística que mide qué tan bien un
atributo dado separa los ejemplos de entrenamiento de acuerdo con sus
clasificación objetivo.

Ejemplo:

C porque requiere menos información ya que todos los valores son similares.

Por otro lado, B requiere más información para describirlo y A requiere la

información máxima. En otras palabras, podemos decir que C es un nodo puro, B es

menos impuro y A es más [Link], podemos llegar a la conclusión de que un

nodo menos impuro requiere menos información para describirlo. Y, el nodo más

impuro requiere más información.

Entropía:

Mide la impureza del conjunto de entrada. En física y matemáticas, la entropía se


conoce como aleatoriedad o impureza en el sistema.
Matemáticas en árboles de decisión

Fórmulas usualmente utilizadas en los árboles de clasificación para medir la


impuridad son:

- Gini

𝐻(𝑄𝑚 ) = ∑ 𝑝𝑚𝑘 (1 − 𝑝𝑚𝑘 )


𝑘
El índice de Gini es una métrica de error alternativa que está diseñada para mostrar
lo "pura" que es una región. En este caso, "pureza" significa que la mayor parte de
los datos de entrenamiento de una región concreta pertenecen a una única clase. Si
una región contiene datos que pertenecen mayoritariamente a una sola clase, el valor
del Índice de Gini será pequeño.

- Entropía

𝐻(𝑄𝑚 ) = − ∑ 𝑝𝑚𝑘 𝑙𝑜𝑔(𝑝𝑚𝑘 )


𝑘
Una alternativa al índice de Gini.

- Clasificación Errónea
En lugar de ver la distancia de una respuesta numérica con respecto al valor
medio, como en el caso de la regresión, podemos definir la "tasa de aciertos" como
la fracción de observaciones de entrenamiento en una región concreta que no
pertenecen a la clase más frecuente. Es decir, el error viene dado por:

𝐻(𝑄𝑚 ) = 1 − 𝑚𝑎𝑥(𝑝𝑚𝑘 )
En donde 𝑝𝑚𝑘 representa la fracción de datos de entrenamiento de la región
seleccionada.
Los árboles de decisión se construyen usando un algoritmo voraz que optimiza la
siguiente función de coste:

𝑚𝑖𝑧𝑞𝑢𝑖𝑒𝑟𝑑𝑜
𝐽(𝑎, 𝐼𝑎 ) = 𝐺𝑖𝑛𝑖𝑖𝑧𝑞𝑢𝑖𝑒𝑟𝑑𝑜
𝑚
𝑚𝑑𝑒𝑟𝑒𝑐ℎ𝑜
+ 𝐺𝑖𝑛𝑖𝑑𝑒𝑟𝑒𝑐ℎ𝑜
𝑚
● a es la abreviatura de atributo (también llamado característica o
feature)
● la significa el límite del atributo
● m se refiere al número de muestras

Aprendizaje Supervisado

El aprendizaje supervisado se caracteriza porque el proceso de aprendizaje se


realiza mediante un entrenamiento controlado por un agente externo (supervisor,
maestro) que determina la respuesta que debería generar la red a partir de una
entrada determinada. El supervisor controla la salida de la red y en caso de que ésta
no coincida con la deseada, se procederá a modificar los pesos de las conexiones,
con el fin de conseguir que la salida obtenida se aproxime a la deseada.

Entonces, el aprendizaje supervisado es una técnica para deducir una función a


partir de datos de entrenamiento. Los datos de entrenamiento consisten de pares de
objetos (normalmente vectores)

Es decir , tenemos lo pares de X e Y, y el objetivo es asignarlos en una función

f: X → Y
Donde “Y” son los datos del supervisor ,las salidas deseadas de destino y los datos
“ X “ son los datos de origen son datos independientes.

Una característica particular de este paradigma de aprendizaje es que existe una


referencia de error directa, que es sólo la comparación entre el objetivo y el
resultado real actual. Los parámetros del sistema se introducen en una función de
coste, que cuantifica el desajuste entre las salidas deseadas y las reales.

Una función de coste es sólo una medida que lleva a un problema de optimización.
Esto significa que uno busca encontrar los parámetros que llevan la función de coste
al valor más bajo posible.

En este tipo de aprendizaje se suelen considerar, a su vez, tres formas de realizarlo

1. Corrección por error, consiste en ajustar los pesos de las conexiones de la


red en función de la diferencia entre los valores deseados y los obtenidos a la
salida de la red en función del error cometido en la salida.
2. Aprendizaje por refuerzo ,se basa en la idea de no disponer de un ejemplo
completo del comportamiento deseado ,donde la función del supervisor se
reduce a indicar mediante una señal de refuerzo si la salida de la red se
ajusta a la deseada y en función a ello se ajustan los pesos.
3. Aprendizaje estocástico ,este tipo de aprendizaje consiste básicamente en
realizar cambios aleatorios a los pesos de las conexiones de la red y evaluar
su efecto a partir del objetivo deseado y de distribuciones de probabilidad.

IV. Marco referencial


Nuestro problema está planteado para la creación de un agente capaz de reconocer
entre si un animal es mamífero o reptil, para esto al agente se le pasara
previamente una serie de datos con las especificaciones necesarias de cada tipo de
mamífero, para que de esta manera sea capaz de predecir una clasificación de
dichos datos de los animales que recibió

Como un ejemplo práctico se puede apreciar una fase inicial de nuestro algoritmo,
clasificando en cuanto a temperatura del nivel 0 a 1 y a tamaño o longitud del nivel 1
al 2..
En el problema actual, nuestro árbol iniciará haciendo referencia a la mayor
disparidad de las características entre mamíferos y reptiles: La temperatura
corporal, una vez se haya probado que el animal en cuestión posee temperatura ya
sea baja o alta, se ejecutarán un par de interrogantes más debido a la potencial
presencia de excepciones tanto en temperatura de mamíferos como de reptiles.

V. Ingeniería

Descripción, ampliación y/o abstracción del problema:


Se desea implementar el árbol de decisiones a una serie de datos de animales que
pertenecen a la clase de mamíferos y reptiles, de manera que pasándole nuevos
datos este sea capaz de predecir a qué grupo pertenece.
Aclaraciones:
Se cuenta con el método animalset, el cual genera un conjunto de n
datos que se generan a partir de 10 tipos de animales, 5 mamíferos y 5
reptiles.
Cada dato de los animales consta de temperatura mínima, temperatura
máxima, longitud mínima y longitud máxima.
Todos estos datos se utilizarán como entradas para que el agente sea
capaz de clasificar por cuenta propia los siguientes datos que le
pasemos.
Formulación de meta:
El objetivo es que el agente sea capaz de predecir la clasificación a la que
pertenece el nuevo animal que se le está pasando a través de parámetros ,
tomando esta decisión en base a los datos que se le dio previamente al agente.
Formulación del problema:
REAS:

R(Medida) → Número de aciertos de clasificación

E(Entorno) → Todos los nodos del árbol de decisión.

A(Actuadores) → Nodo raíz, nodos de decisión, nodos hoja.

S(Sensores) → Separador de datos, ramificadores.

PERCEPCIONES ACCIONES:

Percepción Acción
Inicio del agente Ingreso de variables
(independientes)
Las variables no poseen errores Recibir el Dataset
de sintaxis
El Dataset se recibe sin Se carga el conjunto de etiquetas
problemas
Las etiquetas cargan sin Se relaciona el Dataset con las
complicaciones etiquetas y se busca similitudes
Condición o pregunta (¿El animal Generar dos condiciones a partir
es mamífero?) de nodo raíz, SI y NO

Si la condición es si Termina el proceso y predice el


resultado
Si la condición es no Analizar la otra clasificación
Condición o pregunta (¿El animal Generar dos condiciones a partir
es reptil?) de nodo raíz, SI y NO
Si la condición es si Termina el proceso y predice el
resultado
Si la condición es no Analizar otro nodo de decisión

Conjunto problema:
Estado Inicial(Ei) → El agente sin datos registrados

Función Sucesora S(x) → animalset, donde n → es la cantidad de datos a


generar para que el agente aprenda, classifyAnimal1 donde temp es la temperatura
del nuevo animal y leng es la longitud del nuevo animal

Espacio de Estados → La clasificación que escoja el agente entre las clases de


animales

Test Objetivo/ Meta → El agente sea capaz de predecir por cuenta propia a
qué clase pertenecen los nuevos datos del animal introducidos?

Costo Ruta → ??????

Referencia de las tecnologías a usar:


Lenguaje: Python
Se utilizaron (Lists, Random, las librerías de sklearn, os, random)
El prototipo fue programado en Visual Studio Code:
● Abrimos la carpeta del proyecto desde Visual Studio.
● Ejecutar el ejecutable adjunto para hacer correr el programa.

Ejecución

Una vez iniciado el agente éste muestra 2 opciones al usuario, siendo la


segunda la más conveniente debido a que solicita tres parámetros: La
temperatura del animal, la longitud y su clasificación como mamífero o
reptil. Todos estos deben ser ingresados en la misma fila separando
cada parámetro con espacios.
Hacer esto las veces que se desee.

Mientras que la primera opción se emplea para solicitar al usuario una


lista de los animales que se desean. El agente tomará esos datos y
generará animales aleatorios, los colocará en una lista para poder
clasificarlos según lo aprendido y luego así imprimirá la cantidad de
aciertos totales y la probabilidad de aciertos realizados en la ejecución.

Prototipo:
Creación del dataset.
Para entrenar al agente es necesario dotarlo de una gran cantidad de datos,
comúnmente llamado dataset.

Para la representación de nuestros animales se definió una clase llamada “Animal”


la cual consta de atributos de un ejemplar como ser :
El nombre de la especie a la que pertenece, su altura, la temperatura corporal del
mismo y si este pertenece a la clase mamífero o “Mammalia”
La representación se da de la siguiente manera:

Una vez definido el modelo representante de nuestros datos, se procedió a


generarlos con características aleatorias según el tipo de especie al que pertenece.
Para conseguirlo se implementó una función llamada generateDataSet,
Esta recibe un parámetro que es el número de ejemplares por cada especie con las
que se desea poblar el dataset.
Mediante funciones del paradigma funcional se itera sobre un conjunto de datos
definidos previamente y se genera un dataset con animales representados en forma
de vector o Array
Para la creación aleatoria de estos especímenes el algoritmo toma como rango los
datos llenados del conjunto “animalSet” tomando los datos en pares como rango
mínimo y máximo para crear la característica de un animal.

classifyAnimal
Para la clasificación de los nuevos animales, lo que hacemos es pasarle los
parámetros de temperatura y longitud. Luego utilizamos el predict del árbol que
conseguimos exportando las librerías y mediante esto el agente realiza una
predicción de a qué tipo de animal pertenece, para luego mostrar dicha predicción.
Testset
A manera de automatizar el proceso de pasado de animales, se creó el testset de tal
manera que si queremos ver los resultados de varios animales, no tengamos que
pasar todos por consola, de tal manera que el método genera por sí mismo una
serie de animales, los cuales son almacenados en un arreglo para luego ser
pasados.

El arreglo creado es pasado al metodo testset en donde se le pide al agente que


realice la clasificación de cada uno de los animales generados, además que de se
realiza una verificación de dicha predicción para luego poder mostrar un contador en
donde calcularemos la cantidad de aciertos del agente, así como la probabilidad de
que el agente acierte la clasificación
Ejecución del prototipo:
En la ejecución el agente recibe datos de temperatura y longitud de tal manera que
con estos datos el agente utiliza el árbol de decisiones para comparar con los datos
registrados previamente, primero compara el dato de temperatura busca los rangos
de temperatura anteriores, luego de no ser suficiente compara con los datos de
longitud registrados de los animales previos y mediante esto el agente es capaz de
realizar su propia predicción de a qué grupo pertenece el nuevo animal, en el
ejemplo nos dio como resultado un mamífero y dos reptiles de los datos ingresados.
También se puede ejecutar de manera automatizada de tal manera que
directamente se pida la predicción de un conjunto de animales generados de
manera aleatoria, en el ejemplo podemos ver cómo clasifica un conjunto de
mamíferos y reptiles además de mostrar cuántas veces acertó el agente y cuál es su
probabilidad de éxito.
IV. Conclusión
Luego de realizar pruebas con el agente podemos afirmar que
este ha aprendido a distinguir y clasificar animales según su
temperatura corporal y su longitud basándose en el conjunto de datos
iniciales y a clasificarlos según el conjunto de etiquetas. Mediante
técnicas y librerías de aprendizaje supervisado el agente ha aprendido y
es capaz de clasificar los datos de un animal con gran precisión.

V. Bibliografía
Definición de Aprendizaje Supervisado por IBM:
[Link]

Aprendizaje Supervisado: Decision Tree Classification


[Link]

Beginner's Guide to Decision Trees for Supervised Machine Learning


[Link]
ed-Machine-Learning/

Decision Trees
[Link]

Árbol de decisión en Machine learning


[Link]

También podría gustarte