Compartir tecnología

Regresión logística (teoría pura)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. ¿Qué es la regresión logística?

La regresión logística es un método de aprendizaje estadístico de uso común, que se utiliza principalmente para resolver problemas de clasificación.A pesar de la palabra "regresión" en el nombre, en realidad es un algoritmo de clasificación.

2. ¿Por qué el aprendizaje automático necesita utilizar la regresión logística?

1. Clasificación binaria

Este es el uso más básico y común de la regresión logística.Puede predecir si ocurrirá un evento y el resultado de salida es sí o no

Por ejemplo:

  • Predecir si un usuario hará clic en un anuncio
  • Determinar si un correo electrónico es spam
  • Diagnosticar si un paciente tiene una enfermedad.

Todos estos ejemplos tienen una característica común, es decir, solo hay dos resultados, verdadero (1) y falso (0).

2. Clasificación multicategoría

La regresión logística se puede extender a problemas de clasificación de múltiples categorías mediante métodos como One-vs-Rest o softmax.

Por ejemplo:

  • Clasificación de objetos en el reconocimiento de imágenes.
  • Clasificación de textos (clasificación de noticias, análisis de sentimientos, etc.)

Todos estos ejemplos tienen una característica común, es decir, el mismo objeto tiene múltiples resultados posibles, similar a nuestras preguntas comunes de opción múltiple. Hay múltiples opciones, pero solo hay una opción que mejor se adapta a la respuesta.

3. Predicción de probabilidad

La regresión logística no solo proporciona resultados de clasificación, sino que también genera valores de probabilidad, lo cual es muy útil en muchos escenarios.

Por ejemplo:

  • Predecir la probabilidad de que un cliente compre un producto.
  • Evaluar la probabilidad de riesgo de incumplimiento de un solicitante de préstamo

Todos estos ejemplos tienen una característica común, que es la predicción, es decir, utilizar resultados conocidos para deducir resultados desconocidos.

Si no ha comprendido el papel de la regresión logística, no importa.

Imagine que es médico y necesita determinar si un paciente tiene una determinada enfermedad. La regresión logística es como un asistente inteligente que le ayuda a tomar este juicio. Así como un médico observa varios indicadores del examen físico de un paciente, la regresión logística considerará múltiples factores relacionados (los llamamos características). Algunas métricas pueden ser más importantes que otras. La regresión logística asigna un "peso" a cada factor, reflejando su importancia. Finalmente, en lugar de simplemente decir "sí" o "no", da una probabilidad. Por ejemplo, "La probabilidad de que este paciente contraiga la enfermedad es del 70%". Se puede establecer un estándar, por ejemplo, si supera el 50% se considera "sí", en caso contrario se considera "no". La regresión logística "aprende" de una gran cantidad de casos conocidos. Como un médico que adquiere experiencia a través de una gran cantidad de casos.

Por supuesto, el papel de la regresión logística va mucho más allá, limitado por el espacio (De hecho, sólo quiero ser vago), no entraré en demasiadas presentaciones.

3.Bien, introduzcamos la fórmula de regresión logística.

Personalmente, no me gusta darle muchas fórmulas matemáticas de manera prolija y luego decirle que los principios subyacentes son estas fórmulas matemáticas y dejar que usted mismo las comprenda lentamente.Lo que espero es poder analizar algunas fórmulas básicas y por qué es necesario utilizarlas. Esto es algo que espero poder explicar claramente en mi artículo.

1. Fórmula de regresión lineal

y = b0 + b1x1 + b2x2 + ... + bn*xn

  • yes la variable dependiente, el valor que queremos predecir.
  • b0es la intersección, que indica el valor de la variable dependiente cuando todas las variables independientes son 0
  • b1, b2, ..., bnes el coeficiente de regresión, que indica el grado de influencia de cada variable independiente sobre la variable dependiente
  • x1, x2, ..., xnes la variable independiente, es decir, el valor utilizado para predecir la variable dependiente

A continuación se muestra un ejemplo de regresión lineal.

No importa si no entiendes el código, solo mira la imagen.

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. import matplotlib.font_manager as fm
  4. # Generate some simulated house data
  5. np.random.seed(0)
  6. area = np.random.rand(100) * 200 + 50 # House area (square meters)
  7. price = 2 * area + 5000 + np.random.randn(100) * 500 # House price (ten thousand yuan)
  8. # Fit the data using linear regression
  9. from sklearn.linear_model import LinearRegression
  10. model = LinearRegression()
  11. model.fit(area.reshape(-1, 1), price)
  12. # Get the regression coefficients
  13. b0 = model.intercept_
  14. b1 = model.coef_[0]
  15. # Plot the scatter plot
  16. plt.scatter(area, price, label="House Data")
  17. # Plot the regression line
  18. plt.plot(area, b0 + b1*area, color="red", label="Linear Regression")
  19. # Set the plot title and axis labels
  20. plt.title("Linear Regression of House Area and Price")
  21. # Set the font to SimSun (楷体)
  22. font_prop = fm.FontProperties(fname=r"C:WindowsFontssimkai.ttf", size=12) # Replace with your SimSun font path
  23. plt.xlabel("House Area (Square Meters)", fontproperties=font_prop)
  24. plt.ylabel("House Price (Ten Thousand Yuan)", fontproperties=font_prop)
  25. # Add legend
  26. plt.legend()
  27. # Show the plot
  28. plt.show()

1. Generar datos de simulación de 100 casas.

  1. np.random.seed(0)
  2. area = np.random.rand(100) * 200 + 50
  3. price = 2 * area + 5000 + np.random.randn(100) * 500

2. Utilice la regresión lineal para ajustar los datos.

  1. from sklearn.linear_model import LinearRegression
  2. model = LinearRegression()
  3. model.fit(area.reshape(-1, 1), price)

3. Obtenga el coeficiente de regresión (b0 ~ bn)

  1. b0 = model.intercept_
  2. b1 = model.coef_[0]

4. Dibuja un diagrama de dispersión

plt.scatter(area, price, label="House Data")

5. Dibuja la línea de regresión.

plt.plot(area, b0 + b1*area, color="red", label="Linear Regression")

6. Establecer el título del artículo.

plt.title("Linear Regression of House Area and Price")

7. Establezca la fuente en cursiva y tamaño de fuente (si corresponde)

  1. font_prop = fm.FontProperties(fname=r"C:WindowsFontssimkai.ttf", size=12)
  2. plt.xlabel("House Area (Square Meters)", fontproperties=font_prop)
  3. plt.ylabel("House Price (Ten Thousand Yuan)", fontproperties=font_prop)

8. Agrega una leyenda

plt.legend()

9. Mostrar gráficos

plt.show()

Este código utiliza regresión lineal para ajustar la relación entre el área de la casa y el precio (los títulos horizontales y verticales se describen en inglés para evitar errores)

Los resultados de ejecución son los siguientes:

Algunas personas pueden preguntarse: ¿Por qué producimos una cantidad tan grande de datos?

Buena pregunta ~

Con estos datos, ¿podemos calcular aproximadamente y = b0 + b1x1 + b2x2 + ... + bn*xn ¿Qué pasa con el coeficiente?

Específicamente:

  • y representa la variable objetivo que queremos predecir, como los precios de la vivienda.
  • x1, x2, ... xn representan factores que afectan la variable objetivo, como el área de la casa, el número de habitaciones, la ubicación geográfica, etc.
  • b0, b1, b2, ... bn representan el grado de influencia de cada factor sobre la variable objetivo, que es el coeficiente que queremos calcular.

Al recopilar una gran cantidad de datos, podemos utilizar un modelo de regresión lineal para calcular estos coeficientes y construir un modelo predictivo.Este modelo puede ayudarnos a comprender el impacto de diferentes factores en la variable objetivo y predecir el valor de la variable objetivo en el futuro (similar a y = kx + b en matemáticas. Con k y b específicos, podemos predecir y obteniendo x , la diferencia es que aquí hay más coeficientes k)

2.fórmula de la función sigmoidea

σ(x) = 1 / (1 + exp(-x))

La imagen de la función sig se ve así:

Pregunta 1: ¿Por qué elegir la función sigmoidea?

Como mencionamos antes, el uso más básico de la regresión logística es resolver problemas de clasificación binaria.

El objetivo de la regresión logística es convertir el resultado de un modelo lineal (que puede ser cualquier número real) en un valor de probabilidad que represente la probabilidad de que ocurra un evento, y el valor de probabilidad debe oscilar naturalmente entre 0 y 1.

La función sigmoidea logra esta tarea a la perfección: comprime la salida del modelo lineal entre 0 y 1 y, a medida que aumenta el valor de entrada, el valor de salida aumenta gradualmente, lo que es consistente con la tendencia cambiante del valor de probabilidad.

Mire la función de sig. Cuando se acerca al infinito positivo, se acerca a 1 infinitamente. Cuando se acerca al infinito negativo, se acerca a 0 infinitamente.

Pregunta 2: ¿Cómo clasificar las funciones sigmoideas?

Entonces alguien quiere volver a decir que estás equivocado. Aunque se dice que los dos lados pueden estar infinitamente cerca, no se puede llegar al medio. Por ejemplo, 0,5 está entre 0 y 1, entonces dices que 0,5 está cerca de 0. ¿O se acerca la 1?

Aunque se dice que los números en el medio no pueden estar cerca, puedo configurarlo artificialmente ~

Por ejemplo, si pongo los números >= 0,5 en la categoría 1 y los números < 0,5 en la categoría 0, el problema se resolverá ~

Por lo tanto, 0,5 no es un punto crítico, sino un umbral que establecemos artificialmente para la clasificación.

3. Fórmula de regresión logística

p = σ(b0 + b1*x1 + b2*x2 + ... + bn*xn) = 1 / (1 + exp(-(b0 + b1*x1 + b2*x2 + ... + bn*xn)))

Hemos dicho mucho antes solo para presentar esta fórmula.

¿Te da dolor de cabeza sólo con verlo? Me da dolor de cabeza solo mirarlo, así que ¿por qué no lo simplificamos?

Verás, se siente mucho más refrescante así, como un chico guapo al que no le gusta disfrazarse. Arregló un poco su apariencia y luego descubriste, guau, este chico se ve tan guapo~.

Ejem, estoy divagando ~ EntoncesLa regresión logística es en realidad regresión lineal + función sigmoidea

z en la función sigmoidea usa regresión lineal y = b0 + b1x1 + b2x2 + ... + bn*xn para reemplazar

Entonces que hace esto?

Bien, echemos un vistazo ~

4. La esencia y función de la regresión logística.

La esencia de la regresión logística esPredecir la probabilidad de que ocurra un evento. .No clasifica directamente los datos, pero asigna los resultados de la regresión lineal al intervalo 0 ~ 1 a través de una función (función sigmoidea). El valor en este intervalo representa la posibilidad de que ocurra el evento.

La base de la regresión logística es la regresión lineal. La regresión lineal construye un modelo lineal e intenta ajustar los datos con una función lineal para obtener un valor predicho.Este valor previsto puede ser cualquier valor y no está restringido por el intervalo 0~1.

La función sigmoidea es una función "mágica" que convierte el valor predicho obtenido por regresión lineal en el intervalo 0 ~ 1, y los valores en este intervalo se pueden interpretar como la probabilidad de que ocurra el evento.

Para realizar una clasificación binaria, necesitamos establecer un umbral, normalmente 0,5.Si la probabilidad prevista es mayor que el umbral, se determina que es una clase positiva; de lo contrario, se determina que es una clase negativa.

Por ejemplo:

La función de la izquierda puede verse como una función de regresión lineal y la función de la derecha es la función sigmoidea asignada.

Todas las imágenes de este artículo provienen de[Aprendizaje automático] La regresión logística se puede aprender en diez minutos y es fácil de entender (incluido el proceso de solución de chispa)_bilibili_bilibili