Visualización de Máxima Verosimilitud en Regresión Logística

Clase 14 de 17Curso de Matemáticas para Data Science: Probabilidad

Resumen

¿Cómo validar matemáticamente el modelo de regresión logística con código en Python?

El modelo de regresión logística es fundamental para resolver problemas de clasificación binaria en machine learning. Para validar su hipótesis, utilizamos Python y ciertas bibliotecas específicas para evaluar la función de verosimilitud y relacionarla con las etiquetas correctas del conjunto de datos. La función de verosimilitud determina las probabilidades de que los valores predichos por el modelo se acerquen a las categorías reales de los datos. ¿Listo para explorar cómo lo hacemos?

¿Qué librerías de Python usar para el modelo?

Al trabajar con regresión logística en Python, se utilizan las librerías más comunes y eficaces:

  • Matplotlib: Para crear visualizaciones gráficas en dos o tres dimensiones.
  • NumPy y Pandas: Librerías estándar para manipular y analizar datos numéricos y estructuras de datos en Python.
  • Scikit Learn: Ofrece algoritmos y funciones de machine learning que facilitan la implementación de modelos complejos de manera sencilla.

¿Cómo visualizar la función de verosimilitud?

Primero, definimos una función en Python considerando que la función de verosimilitud es de dos variables y graficamos sus resultados en un gráfico tridimensional.

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

def likelyhood_function(yp, y):
    return yp * y + (1 - yp) * (1 - y)

x = np.arange(0.0, 1.0, 0.1)
y = np.arange(0.0, 1.0, 0.1)
X, Y = np.meshgrid(x, y)
Z = likelyhood_function(X, Y)

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, Z, cmap='coolwarm')
plt.colorbar()
plt.show()

Aquí, la función muestra los valores máximos en los puntos donde la predicción y el valor real coinciden, justificando el uso de esta función para optimizar el modelo.

¿Cómo implementar el modelo de regresión logística con Scikit Learn?

Scikit Learn simplifica la implementación de modelos. El dataset "iris" se utiliza comúnmente por su claridad y simplicidad, permitiendo evaluar rápidamente los resultados del modelo.

from sklearn.linear_model import LogisticRegression
from sklearn import datasets

iris = datasets.load_iris()
X = iris.data[iris.target != 2]  # Consideramos sólo dos clases para problema binario
y = iris.target[iris.target != 2] 

model = LogisticRegression(random_state=0, solver='liblinear')
model.fit(X, y)

print(model.coef_)

Los coeficientes del modelo, o los betas, definen la importancia de cada atributo en la predicción de la clase, ofreciendo un vistazo claro de qué atributos influyen más.

¿Qué es la función de costo cross entropy y su relevancia?

La función de costo cross entropy surge de la necesidad de transformar la verosimilitud en una medida de error manejable. Se utilizó el logaritmo de las probabilidades, lo cual simplificó la expresión:

  • Cross Entropy es crucial porque traduce el objetivo del modelo de maximizar las probabilidades en minimizar el error en las predicciones.

Finalmente, a través de este ejercicio, la regresión logística es vista no solo como un algoritmo de clasificación, sino como una herramienta de estimación con un robusto marco matemático que optimiza los parámetros de modo que las predicciones sean lo más precisas posibles.

Al aplicar las técnicas aprendidas, abre un mundo de posibilidades en tus proyectos de inteligencia artificial. ¡La práctica y la aplicación continua son tus mejores aliados en este fascinante camino del aprendizaje automático!