Fundamentos Teóricos del Aprendizaje Supervisado y No Supervisado

 

2. Fundamentos Teóricos del Aprendizaje Supervisado y No Supervisado

 

 

Exploración Detallada de los Conceptos Teóricos Detrás del Aprendizaje Supervisado y No Supervisado

 

Aprendizaje Supervisado: Conceptos Teóricos

Definición: Se basa en el uso de un conjunto de datos de entrenamiento que contiene tanto las entradas como las salidas deseadas.

Funcionamiento: El modelo se entrena con estos datos para aprender la relación entre las entradas y salidas. Su objetivo es generalizar esta relación para predecir las salidas de nuevos datos de entrada.

Tipos de Problemas: Clasificación (cuando la salida es una categoría) y regresión (cuando la salida es un valor numérico continuo).

 

Aprendizaje No Supervisado: Conceptos Teóricos

Definición: Se utiliza cuando solo tenemos datos de entrada sin etiquetas o salidas correspondientes.

Funcionamiento: El modelo busca patrones, estructuras o agrupaciones en estos datos. El objetivo es entender mejor la estructura y distribución de los datos.

Tipos de Problemas: Agrupamiento (clustering) y reducción de dimensionalidad (como el análisis de componentes principales).

Ejemplos de Algoritmos en Cada Categoría

Aprendizaje Supervisado: Algoritmos Ejemplo

1. Regresión Lineal: Utilizado para problemas de regresión, modela la relación entre una variable dependiente y una o más variables independientes.

2. Máquinas de Soporte Vectorial (SVM): Popular en problemas de clasificación, busca el hiperplano que mejor separa las clases en el espacio de características.

 

Aprendizaje No Supervisado: Algoritmos Ejemplo

1. K-Means: Un algoritmo de clustering que agrupa los datos en 'k' grupos basándose en sus características.

2. Análisis de Componentes Principales (PCA): Reduce la dimensionalidad de los datos mientras mantiene la mayor cantidad de información posible.

 

Cómo Elegir entre Aprendizaje Supervisado y No Supervisado

 

La elección entre aprendizaje supervisado y no supervisado depende en gran medida de la naturaleza de los datos disponibles y del problema específico a resolver:

 

Cuándo Elegir Aprendizaje Supervisado: Si tienes un conjunto de datos con ejemplos de entradas y salidas conocidas, y el objetivo es predecir la salida para nuevas entradas. Ideal para situaciones donde la relación entre la entrada y la salida es clara y se desea modelar esa relación.

 

Cuándo Elegir Aprendizaje No Supervisado: Si los datos no tienen etiquetas o si el objetivo es explorar los datos para encontrar patrones o estructuras ocultas. Es útil cuando se desconoce la estructura de los datos y se busca obtener insights o reducir la complejidad de los datos para análisis posteriores.

 

Ejemplos con Datos Ficticios

1. Regresión Lineal

Escenario: Supongamos que queremos predecir el precio de venta de casas basándonos en su tamaño (en metros cuadrados).

Datos Ficticios:

- Tamaño de la casa (m²): [50, 70, 80, 100, 120]

- Precio de venta (miles de dólares): [200, 250, 270, 300, 340]

Modelado:

- Variable dependiente (Y): Precio de venta

- Variable independiente (X): Tamaño de la casa

Funcionamiento:

- Se utiliza un modelo de regresión lineal para ajustar una línea a estos datos.

- La ecuación de la línea podría ser algo como `Precio = a * Tamaño + b`, donde `a` y `b` son los parámetros del modelo que se aprenden durante el entrenamiento.

Predicción:

- Una vez entrenado el modelo, podríamos predecir el precio de una casa de, digamos, 90 m². Si `a = 1.5` y `b = 50`, entonces `Precio = 1.5 * 90 + 50 = 185`.

2. Máquinas de Soporte Vectorial (SVM)

 

Escenario: Consideremos un problema de clasificación donde queremos distinguir entre dos tipos de frutas, digamos manzanas y naranjas, basándonos en su peso y color.

 

Datos Ficticios:

- Características: Peso (gramos) y Puntuación de Color (escala de 1 a 10).

- Etiquetas: Manzana (M) o Naranja (N).

 

| Peso (g) | Puntuación de Color | Etiqueta |

|----------|---------------------|----------|

| 150      | 6                   | M        |

| 200      | 7                   | N        |

| 180      | 5                   | M        |

| 210      | 8                   | N        |

| 170      | 6                   | M        |

Modelado:

- Variables de entrada (X): Peso y Puntuación de Color

- Variable de salida (Y): Tipo de fruta (Manzana o Naranja)

Funcionamiento:

- El SVM buscará el hiperplano que mejor separa las manzanas de las naranjas en este espacio bidimensional de peso y color.

- Por ejemplo, podría encontrar una línea que divide las dos categorías, maximizando la distancia (margen) entre los puntos más cercanos de cada categoría a la línea.

Clasificación:

- Con este modelo, si nos dan una fruta nueva con un peso de 190 g y una puntuación de color de 7, el SVM clasificará esta fruta basándose en qué lado del hiperplano cae.

 

Estos ejemplos ilustran cómo se pueden aplicar modelos de regresión lineal y SVM en situaciones con datos ficticios. En el aprendizaje automático real, los datos serían mucho más complejos y los modelos requerirían una evaluación y ajuste cuidadoso.


Análisis con Python:

 

import matplotlib.pyplot as plt

import numpy as np

from sklearn.svm import SVC

from sklearn.linear_model import LinearRegression

 

# Datos para Regresión Lineal

tamaño_casa = np.array([50, 70, 80, 100, 120])  # Tamaño de la casa en m²

precio_venta = np.array([200, 250, 270, 300, 340])  # Precio en miles de dólares

 

# Ajustar un modelo de Regresión Lineal

modelo_regresion = LinearRegression()

modelo_regresion.fit(tamaño_casa.reshape(-1, 1), precio_venta)

a = modelo_regresion.coef_[0]

b = modelo_regresion.intercept_

linea_regresion = a * tamaño_casa + b

 

# Datos para SVM

frutas = np.array([

    [150, 6], [200, 7], [180, 5], [210, 8], [170, 6]  # Peso y Puntuación de Color

])

etiquetas = np.array([1, 0, 1, 0, 1])  # 1 para Manzana, 0 para Naranja

 

# Ajustar un modelo SVM

modelo_svm = SVC(kernel='linear', C=1E10)

modelo_svm.fit(frutas, etiquetas)

 

# Función para dibujar el hiperplano del SVM

def plot_svc_decision_function(model, ax=None, plot_support=True):

    if ax is None:

        ax = plt.gca()

    xlim = ax.get_xlim()

    ylim = ax.get_ylim()

   

    # Crear cuadrícula para evaluar el modelo

    x = np.linspace(xlim[0], xlim[1], 30)

    y = np.linspace(ylim[0], ylim[1], 30)

    Y, X = np.meshgrid(y, x)

    xy = np.vstack([X.ravel(), Y.ravel()]).T

    P = model.decision_function(xy).reshape(X.shape)

   

    # Dibujar límites de decisión y márgenes

    ax.contour(X, Y, P, colors='k',

               levels=[-1, 0, 1], alpha=0.5,

               linestyles=['--', '-', '--'])

   

    # Dibujar vectores de soporte

    if plot_support:

        ax.scatter(model.support_vectors_[:, 0],

                   model.support_vectors_[:, 1],

                   s=300, linewidth=1, facecolors='none', edgecolors='k')

    ax.set_xlim(xlim)

    ax.set_ylim(ylim)

 

# Gráficos

plt.figure(figsize=(12, 6))

 

# Gráfico de Regresión Lineal

plt.subplot(1, 2, 1)

plt.scatter(tamaño_casa, precio_venta, color='blue')

plt.plot(tamaño_casa, linea_regresion, color='red')

plt.title("Regresión Lineal")

plt.xlabel("Tamaño de la Casa (m²)")

plt.ylabel("Precio de Venta (miles de $)")

plt.grid(True)

 

# Gráfico de SVM

plt.subplot(1, 2, 2)

plt.scatter(frutas[:, 0], frutas[:, 1], c=etiquetas, cmap='bwr')

plot_svc_decision_function(modelo_svm)

plt.title("Máquinas de Soporte Vectorial (SVM)")

plt.xlabel("Peso (g)")

plt.ylabel("Puntuación de Color")

plt.grid(True)

 

plt.tight_layout()

plt.show()

 

 

1. Regresión Lineal: Este gráfico muestra la relación entre el tamaño de la casa (en metros cuadrados) y su precio de venta (en miles de dólares). La línea roja representa el modelo de regresión lineal ajustado a los datos, mostrando cómo aumenta el precio a medida que aumenta el tamaño de la casa.

 

2. Máquinas de Soporte Vectorial (SVM): En este gráfico, los puntos representan las frutas con su peso (en gramos) y puntuación de color. Los puntos azules y rojos representan manzanas y naranjas, respectivamente. La línea sólida indica el hiperplano que el SVM ha encontrado para separar óptimamente las dos clases. Las líneas discontinuas representan el margen, y los puntos circundados son los vectores de soporte que ayudan a definir el hiperplano.

Estos gráficos visualizan cómo se pueden aplicar estos dos modelos en problemas de aprendizaje supervisado.

Conclusión

Comprender los fundamentos teóricos del aprendizaje supervisado y no supervisado es crucial para aplicar estos métodos de manera efectiva. La elección entre uno u otro depende de los objetivos específicos y de la naturaleza de los datos disponibles. En las siguientes publicaciones, exploraremos aplicaciones prácticas y estudios de caso que ilustran estos conceptos.

 

Comentarios

Entradas más populares de este blog

4. LA REGRESIÓN LOGÍSTICA

5. Aplicación Práctica: Árboles de Decisión (Aprendizaje Supervisado)

7. EXPLICACIÓN DEL ALGORITMO DE K-MEANS