IA con Python: aprendizaje automático
El aprendizaje significa la adquisición de conocimientos o habilidades a través del estudio o la experiencia. En base a esto, podemos definir el aprendizaje automático (ML) de la siguiente manera:
Puede definirse como el campo de la informática, más específicamente una aplicación de inteligencia artificial, que proporciona a los sistemas informáticos la capacidad de aprender con datos y mejorar a partir de la experiencia sin estar programados explícitamente.
Básicamente, el enfoque principal del aprendizaje automático es permitir que las computadoras aprendan automáticamente sin intervención humana. Ahora surge la pregunta de cómo se puede iniciar y realizar dicho aprendizaje. Puede iniciarse con las observaciones de datos. Los datos pueden ser algunos ejemplos, instrucción o algunas experiencias directas también. Luego, sobre la base de esta entrada, la máquina toma una mejor decisión al buscar algunos patrones en los datos.
Tipos de aprendizaje automático (ML)
Los algoritmos de aprendizaje automático ayudan al sistema informático a aprender sin estar programado explícitamente. Estos algoritmos se clasifican en supervisados o no supervisados. Veamos ahora algunos algoritmos:
Algoritmos de aprendizaje automático supervisados
Este es el algoritmo de aprendizaje automático más utilizado. Se llama supervisado porque el proceso de aprendizaje de algoritmos a partir del conjunto de datos de entrenamiento se puede considerar como un maestro que supervisa el proceso de aprendizaje. En este tipo de algoritmo ML, los posibles resultados ya se conocen y los datos de entrenamiento también se etiquetan con respuestas correctas. Se puede entender de la siguiente manera:
Supongamos que tenemos variables de entrada x y una variable de salida y y aplicamos un algoritmo para aprender la función de mapeo de la entrada a la salida, como:
Y = f(x)
Ahora, el objetivo principal es aproximar la función de mapeo tan bien que cuando tengamos nuevos datos de entrada (x), podamos predecir la variable de salida (Y) para esos datos.
Los problemas de apoyo principalmente supervisados se pueden dividir en los siguientes dos tipos de problemas:
Classification - Un problema se denomina problema de clasificación cuando tenemos la salida categorizada como “negro”, “docente”, “no docente”, etc.
Regression - Un problema se llama problema de regresión cuando tenemos la salida de valor real como "distancia", "kilogramo", etc.
Árbol de decisión, bosque aleatorio, knn, regresión logística son ejemplos de algoritmos de aprendizaje automático supervisados.
Algoritmos de aprendizaje automático no supervisados
Como sugiere el nombre, este tipo de algoritmos de aprendizaje automático no tienen ningún supervisor que proporcione ningún tipo de orientación. Es por eso que los algoritmos de aprendizaje automático no supervisados están estrechamente alineados con lo que algunos llaman verdadera inteligencia artificial. Se puede entender de la siguiente manera:
Suponga que tenemos la variable de entrada x, entonces no habrá variables de salida correspondientes como ocurre en los algoritmos de aprendizaje supervisado.
En palabras simples, podemos decir que en el aprendizaje no supervisado no habrá una respuesta correcta ni un maestro para la orientación. Los algoritmos ayudan a descubrir patrones interesantes en los datos.
Los problemas de aprendizaje no supervisados se pueden dividir en los siguientes dos tipos de problemas:
Clustering- En los problemas de agrupación, necesitamos descubrir las agrupaciones inherentes a los datos. Por ejemplo, agrupar a los clientes por su comportamiento de compra.
Association- Un problema se llama problema de asociación porque este tipo de problemas requieren descubrir las reglas que describen grandes porciones de nuestros datos. Por ejemplo, encontrar clientes que compren ambosx y y.
K-means para agrupación en clústeres, algoritmo Apriori para asociación son ejemplos de algoritmos de aprendizaje automático no supervisados.
Algoritmos de aprendizaje automático de refuerzo
Este tipo de algoritmos de aprendizaje automático se utilizan menos. Estos algoritmos entrenan a los sistemas para que tomen decisiones específicas. Básicamente, la máquina está expuesta a un entorno en el que se entrena continuamente utilizando el método de prueba y error. Estos algoritmos aprenden de la experiencia pasada e intentan capturar el mejor conocimiento posible para tomar decisiones precisas. El proceso de decisión de Markov es un ejemplo de algoritmos de aprendizaje automático de refuerzo.
Algoritmos de aprendizaje automático más comunes
En esta sección, aprenderemos sobre los algoritmos de aprendizaje automático más comunes. Los algoritmos se describen a continuación:
Regresión lineal
Es uno de los algoritmos más conocidos en estadística y aprendizaje automático.
Concepto básico: la regresión principalmente lineal es un modelo lineal que asume una relación lineal entre las variables de entrada, digamos x, y la variable de salida única, digamos y. En otras palabras, podemos decir que y se puede calcular a partir de una combinación lineal de las variables de entrada x. La relación entre las variables se puede establecer ajustando la mejor línea.
Tipos de regresión lineal
La regresión lineal es de los dos tipos siguientes:
Simple linear regression - Un algoritmo de regresión lineal se denomina regresión lineal simple si solo tiene una variable independiente.
Multiple linear regression - Un algoritmo de regresión lineal se denomina regresión lineal múltiple si tiene más de una variable independiente.
La regresión lineal se utiliza principalmente para estimar los valores reales en función de las variables continuas. Por ejemplo, la venta total de una tienda en un día, basada en valores reales, se puede estimar mediante regresión lineal.
Regresión logística
Es un algoritmo de clasificación y también conocido como logit regresión.
Principalmente, la regresión logística es un algoritmo de clasificación que se utiliza para estimar los valores discretos como 0 o 1, verdadero o falso, sí o no en función de un conjunto dado de variables independientes. Básicamente, predice la probabilidad, por lo que su salida se encuentra entre 0 y 1.
Árbol de decisión
El árbol de decisiones es un algoritmo de aprendizaje supervisado que se utiliza principalmente para problemas de clasificación.
Básicamente es un clasificador expresado como partición recursiva basada en las variables independientes. El árbol de decisión tiene nodos que forman el árbol enraizado. El árbol enraizado es un árbol dirigido con un nodo llamado "raíz". La raíz no tiene bordes entrantes y todos los demás nodos tienen un borde entrante. Estos nodos se denominan hojas o nodos de decisión. Por ejemplo, considere el siguiente árbol de decisiones para ver si una persona está en forma o no.
Máquina de vectores de soporte (SVM)
Se utiliza para problemas de clasificación y regresión. Pero principalmente se utiliza para problemas de clasificación. El concepto principal de SVM es trazar cada elemento de datos como un punto en un espacio n-dimensional con el valor de cada característica siendo el valor de una coordenada particular. Aquí n serían las características que tendríamos. A continuación se muestra una representación gráfica simple para comprender el concepto de SVM:
En el diagrama anterior, tenemos dos características, por lo que primero debemos trazar estas dos variables en un espacio bidimensional donde cada punto tiene dos coordenadas, llamadas vectores de soporte. La línea divide los datos en dos grupos clasificados diferentes. Esta línea sería el clasificador.
Bayes ingenuo
También es una técnica de clasificación. La lógica detrás de esta técnica de clasificación es utilizar el teorema de Bayes para construir clasificadores. El supuesto es que los predictores son independientes. En palabras simples, asume que la presencia de una característica particular en una clase no está relacionada con la presencia de ninguna otra característica. A continuación se muestra la ecuación del teorema de Bayes:
$$ P \ left (\ frac {A} {B} \ right) = \ frac {P \ left (\ frac {B} {A} \ right) P \ left (A \ right)} {P \ left ( B \ right)} $$
El modelo Naïve Bayes es fácil de construir y particularmente útil para grandes conjuntos de datos.
K-Vecinos más cercanos (KNN)
Se utiliza tanto para la clasificación como para la regresión de los problemas. Se usa ampliamente para resolver problemas de clasificación. El concepto principal de este algoritmo es que solía almacenar todos los casos disponibles y clasifica los casos nuevos por mayoría de votos de sus k vecinos. Luego, el caso se asigna a la clase que es la más común entre sus K vecinos más cercanos, medida por una función de distancia. La función de distancia puede ser distancia euclidiana, de Minkowski y de Hamming. Considere lo siguiente para usar KNN:
Computacionalmente, los KNN son más costosos que otros algoritmos utilizados para problemas de clasificación.
La normalización de las variables necesarias, de lo contrario, las variables de rango superior pueden sesgarlo.
En KNN, tenemos que trabajar en una etapa de preprocesamiento como la eliminación de ruido.
Agrupación de K-medias
Como sugiere el nombre, se utiliza para resolver los problemas de agrupamiento. Básicamente es un tipo de aprendizaje no supervisado. La lógica principal del algoritmo de agrupación de K-Means es clasificar el conjunto de datos a través de una serie de agrupaciones. Siga estos pasos para formar clústeres por K-means:
K-means elige k número de puntos para cada grupo conocido como centroides.
Ahora, cada punto de datos forma un grupo con los centroides más cercanos, es decir, k grupos.
Ahora, encontrará los centroides de cada grupo en función de los miembros del grupo existentes.
Necesitamos repetir estos pasos hasta que ocurra la convergencia.
Bosque aleatorio
Es un algoritmo de clasificación supervisado. La ventaja del algoritmo de bosque aleatorio es que se puede utilizar para problemas de clasificación y regresión. Básicamente es la colección de árboles de decisión (es decir, bosque) o puede decir conjunto de árboles de decisión. El concepto básico de bosque aleatorio es que cada árbol da una clasificación y el bosque elige las mejores clasificaciones de ellos. Las siguientes son las ventajas del algoritmo Random Forest:
El clasificador de bosque aleatorio se puede utilizar para tareas de clasificación y regresión.
Pueden manejar los valores perdidos.
No se ajustará demasiado al modelo incluso si tenemos más árboles en el bosque.