Fundamentos de regresión logística
Regresión Logística con Python y Scikit Learn
Regresión Logística con Python y Scikit Learn
Cuándo usar la regresión logística en modelos de clasificación
Regresión Logística: Fórmula y Aplicación en Python
Regresión logística binomial
Regresión Logística Aplicada a Dataset Binomial de Churn
Análisis de Correlación y Escalado de Datos en Pandas
Análisis Exploratorio de Datos con Visualización usando Seaborn y Matplotlib
Regresión Logística para Clasificación Binomial
Regresión Logística: Evaluación y Optimización de Modelos
Análisis de Resultados en Modelos de Regresión Logística
Regularizadores L1 y L2 en Regresión Logística
Regresión logística multinomial
Regresión Logística Multiclase: Estrategias y Solvers Efectivos
Clasificación Multiclase con Regresión Logística en Python
Análisis Exploratorio y Escalamiento de Datos para Regresión Logística
Optimización de Modelos de Regresión Logística Multiclase
Conclusiones
Proyecto Final: Diagnóstico de Cáncer de Seno con Regresión Logística
Comparte tu proyecto de regresión logística y certifícate
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
La regresión logística es un algoritmo crucial para la clasificación de datos, permitiéndonos predecir la probabilidad de un evento binario, como "sí" o "no", "verdadero" o "falso", "positivo" o "negativo". Para lograrlo, utilizamos la función sigmoide. Esta función, representada por la fórmula ( P = \frac{1}{1 + e^{-\zeta}} ), convierte cualquier valor en una probabilidad comprendida entre 0 y 1. Pero, ¿cómo se lleva a cabo este proceso y cuál es la base matemática detrás de esta operación?
La función sigmoide es una función matemática que transforma cualquier valor real en un valor comprendido entre 0 y 1, adquiriendo una forma de "S" al graficarse. Esta función es particularmente útil en regresión logística, pues nos permite trabajar con probabilidades:
import numpy as np
import matplotlib.pyplot as plt
# Definir una función sigmoide
def sigmoid(z):
return 1 / (1 + np.exp(-z))
# Crear un rango de datos entre -10 y 10
z = np.linspace(-10, 10, 100)
# Calcular la función sigmoide
sigmoid_values = sigmoid(z)
# Graficar la función
plt.plot(z, sigmoid_values)
plt.title('Función Sigmoide')
plt.xlabel('z')
plt.ylabel('Sigmoid(z)')
plt.grid(True)
plt.show()
Al aplicar la función sigmoide, cualquier dato recibido, sin importar su magnitud, se transformará en un valor entre 0 y 1, ideal para representar probabilidades y hacer predicciones.
Un concepto fundamental en regresión logística es el de los "odds", que expresan la probabilidad del éxito de un evento sobre la probabilidad de su fracaso. Por ejemplo, si tenemos una probabilidad de éxito de 80%, los "odds" serían:
[ \text{odds} = \frac{0.80}{1 - 0.80} = 4 ]
Los "log odds" se emplean para manejar mejor los infinitos, ya que al aplicar el logaritmo natural a los "odds", toda la información se centra alrededor del cero, permitiendo a los algoritmos procesar estos valores de forma más efectiva:
[ \text{log odds} = \ln(\text{odds}) ]
La regresión logística se basa en las mismas premisas que la regresión lineal, aunque con un objetivo diferente: predecir una probabilidad en lugar de un valor continuo. Utilizamos una fórmula similar a la de la regresión lineal:
[ \beta_0 + \beta_1 \cdot x ]
Aquí, (\beta_0) representa el intercepto y (\beta_1) la pendiente. En regresión logística, este modelo lineal se introduce en la función sigmoide para obtener probabilidades.
Para ilustrar cómo estas piezas se integran, veamos cómo se transforma la fórmula de la regresión lineal en una fórmula de regresión logística:
[ P = \frac{e^{\beta_0 + \beta_1 \cdot x}}{1 + e^{\beta_0 + \beta_1 \cdot x}} ]
La regresión logística permite abordar problemas de clasificación binaria de manera eficiente y precisa. Al convertir valores continuos en probabilidades, facilita la toma de decisiones basada en datos. Esta capacidad de asignar una probabilidad a cada caso nos permite clasificar con certeza eventos como un diagnóstico médico, la aprobación de un crédito, o el resultado de un partido deportivo.
A medida que amplíes tus conocimientos en machine learning, descubrirás que la regresión logística es solo la punta del iceberg. Existen numerosos algoritmos y métodos para abordar problemas de clasificación y predicción. Sin embargo, entender las bases de la regresión logística te brindará una ventaja significativa en el mundo del análisis de datos. ¡Sigue explorando y construyendo habilidades valiosas en este campo!
Aportes 25
Preguntas 0
Los “odds” (en español, “cuotas” o “probabilidades”) son una forma de expresar la probabilidad de que ocurra un evento. En particular, los “odds” representan la relación entre la probabilidad de que ocurra un evento y la probabilidad de que no ocurra.
Por ejemplo, si la probabilidad de que un equipo de fútbol gane un partido es del 60%, entonces la probabilidad de que pierda es del 40%. En términos de “odds”, la probabilidad de ganar se puede expresar como 3 a 2, lo que significa que por cada 2 veces que pierde el equipo, gana 3 veces. De manera similar, la probabilidad de perder se puede expresar como 2 a 3, lo que significa que por cada 3 veces que gana el equipo, pierde 2 veces.
Los “odds” se utilizan comúnmente en las apuestas y en los juegos de azar, donde se usan para determinar las ganancias potenciales de una apuesta. En la estadística, los “odds” se utilizan en la regresión logística para modelar la relación entre las variables independientes y la variable dependiente binaria.
Justo esta descomposición le hizo falta al curso de Regresión Lineal.
…
Me duele el cerebro, pero voy entendiendo de a poco. 🦾
x es la variable independiente.
x = np.arange(-10, 10, 0.5)
# y = 1/(1+np.exp(-x))
from scipy.special import expit
y = expit(x)
fig1=px.line(x=x, y=y)
fig1.update_xaxes(showgrid=True, gridwidth=1, gridcolor='red', range=[int(x.min()), int(x.max())])
fig1.update_yaxes(showgrid=True, gridwidth=1, gridcolor='red',
scaleanchor="y",
scaleratio=1,
)
fig1.show()
<import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-10, 10, 100)
y = 1 / (1 + np.exp(-x))
plt.plot(x, y) # Use plt.plot to create the plot
plt.show()
>
Aquí que pasa cuando pones un signo mal!
Graficar la función sigmoide
import random
from math import exp
import matplotlib.pyplot as plt
def sigmoid(x):
return ( 1 ) / ( 1 + exp( -x ) )
def main():
x = []
y = []
for _ in range(200):
num = random.randint(-10, 10)
x.append(num)
y.append(sigmoid(num))
plt.plot(x, y, 'bo')
if __name__ == "__main__":
main()
Es interesante como se emplea la forma para regresion logistica. Los prfes en mi universidad lo explicaban de una forma tediosa y nada entendible. Ahora si me queda claro como se debe aplicar.
def sigmoid(x):
return 1/(1+np.exp(-x))
num_samples = 100
x = np.linspace(-5, 5, num_samples)
y = sigmoid(x)
# plot
plt.plot(x, y)
Esta clase ha estado muy interesante 📝
¡Qué buena explicación! Solo quiero aportar que mientras el odd ratio sea mayor a 1 es mejor y si es menor a 1 es peor
Crear la función:
import numpy as np
def sigmoid(z):
return 1.0 / (1.0 + np.exp(-z))
Gráfica de la función:
import matplotlib.pyplot as plt
import seaborn as sns
# Generar valores de x
x = np.linspace(-10, 10, num=1000)
# Calcular los valores de la función sigmoide en x
y = sigmoid(x)
# Graficar la función sigmoide utilizando Seaborn
sns.set_style("whitegrid")
sns.lineplot(x=x, y=y)
plt.title("Función sigmoide")
plt.xlabel("x")
plt.ylabel("y")
plt.show()
x = np.random.randn(30)
y = 1/(1+np.exp(-x))
plt.plot(x, y, 'o');
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?