Regresión logística en Python | Python para ciencia de datos

La regresión logística en Python es una técnica de análisis predictivo. También se usa en Machine Learning para problemas de clasificación binaria. En este blog, repasaremos los siguientes temas para comprender la regresión logística en Python:

¿Qué es la regresión?

El análisis de regresión es una poderosa técnica de análisis estadístico. A dependiente variable de nuestro interés se utiliza para predecir los valores de otras variables independientes en un conjunto de datos.

Nos encontramos con la regresión de una manera intuitiva todo el tiempo. Como predecir el clima usando el conjunto de datos de las condiciones climáticas en el pasado.

Utiliza muchas técnicas para analizar y predecir el resultado, pero el énfasis está principalmente en relación entre la variable dependiente y una o más variables independientes.

El análisis de regresión logística predice el resultado en una variable binaria que tiene solo dos resultados posibles.

Regresión logística en Python

Es una técnica para analizar un conjunto de datos que tiene una variable dependiente y una o más variables independientes para predecir el resultado en una variable binaria, lo que significa que solo tendrá dos resultados.

La variable dependiente es categórico en naturaleza. La variable dependiente también se conoce como variable objetivo y las variables independientes se llaman predictores.

La regresión logística es un caso especial de regresión lineal en el que solo predecimos el resultado en una variable categórica. Predice la probabilidad del evento utilizando la función de registro.

usamos el Función/curva sigmoidea para predecir el valor categórico. El valor del umbral decide el resultado (ganar/perder).

Ecuación de regresión lineal: y = β0 + β1X1 + β2X2 …. + βnXn

  • Y representa la variable dependiente que debe predecirse.
  • β0 es la intersección con Y, que es básicamente el punto en la línea que toca el eje y.
  • β1 es la pendiente de la línea (la pendiente puede ser negativa o positiva dependiendo de la relación entre la variable dependiente y la variable independiente).
  • X aquí representa la variable independiente que se usa para predecir nuestro valor dependiente resultante.

Función sigmoidea: p = 1 / 1 + ey

Aplique la función sigmoidea en la ecuación de regresión lineal.

1-1-311x300.png

Ecuación de regresión logística: p =1 / 1 + e-(β0 + β1X1 + β2X2 …. + βnXn)

Echemos un vistazo a los diferentes tipos de regresión logística.

Tipos de regresión logística

Imagen1-7-195x300.png

  • Regresión logística binaria: solo tiene dos resultados posibles. Ejemplo: si o no
  • Regresión logística multinomial: tiene tres o más categorías nominales. Ejemplo: gato, perro, elefante.
  • Regresión logística ordinal: tiene tres o más categorías ordinales, lo que significa que las categorías estarán en un orden. Ejemplo: calificaciones de los usuarios (1-5).

Regresión lineal vs logística

1-311x300.png

2-341x300.png

Si bien la regresión lineal puede tener infinitos valores posibles, La regresión logística tiene resultados definitivos.

La regresión lineal se usa cuando la variable de respuesta es de naturaleza continua, pero la regresión logística se usa cuando la variable de respuesta es de naturaleza categórica.

Predecir un moroso en un banco utilizando los detalles de la transacción en el pasado es un ejemplo de regresión logística, mientras que una salida continua como una puntuación del mercado de valores es un ejemplo de regresión lineal.

Casos de uso

Los siguientes son los casos de uso en los que podemos usar la regresión logística.

Predicción del tiempo

Las predicciones meteorológicas son el resultado de una regresión lógica. Aquí, analizamos los datos de los informes meteorológicos anteriores y predecimos el posible resultado para un día específico. Pero la regresión lógica solo predeciría datos categóricos, como si va a llover o no.

Determinación de la enfermedad

Podemos utilizar la regresión lógica con la ayuda de la historia clínica del paciente para predecir si la enfermedad es positiva o negativa en cualquier caso.

Tomemos un conjunto de datos de muestra para construir un modelo de predicción usando regresión logística.

Manifestación

Vamos a construir un modelo de predicción usando regresión lógica en Python con la ayuda de un conjunto de datos, en esto vamos a cubrir los siguientes pasos para lograr la regresión lógica.

  • Recolectando datos
  • Análisis de datos
  • disputa de datos
  • Entrenar y probar
  • Informe de precisión

Recolectando datos

El primer paso para implementar la regresión logística es recopilar los datos. Cargaremos el archivo csv que contiene el conjunto de datos en los programas que usan pandas. Estamos utilizando los datos de la NBA para construir el modelo de predicción para predecir la posibilidad de un partido en casa o fuera de casa, mediante el análisis de la relación entre los datos relevantes.

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

df = pd.read_csv(r'C:UsersMohammadWaseemDocumentsdata.csv')
print(df.head(5))

3-528x134.png

Obtendrá todos los datos en un formato legible para facilitar el análisis. Y luego puede determinar las variables dependientes e independientes para su modelo.

Análisis de datos

El conjunto de datos se analiza para determinar la relación entre las variables. Mediante la creación de diferentes parcelas para comprobar la relación entre las variables.

sns.countplot('Home', hue="WINorLOSS", data=df)
plt.show()

Imagen1-1-400x300.png

Arriba está la relación entre el porcentaje de victorias/derrotas con respecto al partido local/visitante. De manera similar, podemos trazar el gráfico de relación entre otras entradas relevantes en los datos.

disputa de datos

El conjunto de datos se modifica de acuerdo con la variable objetivo. Eliminaremos todos los valores nulos y los valores de cadena también del DataFrame.

print(df.isnull().sum())

Verificaremos todos los datos irrelevantes como valores nulos y los valores que no serán necesarios al construir el modelo de predicción. Si no hay valores nulos en el conjunto de datos de la NBA que estamos utilizando, procederemos a dividir los datos.

Datos de prueba y entrenamiento

Para el rendimiento del modelo, los datos se dividen en datos de prueba y datos de entrenamiento. Los datos se dividen utilizando el entrenar \ probar \ dividir. Los datos aquí se dividen en la proporción 70:30.

Ahora, para el modelo de predicción la función de regresión logística se implementa importando el modelo de regresión logística en el módulo sklearn.

Luego, el modelo se ajusta en el juego de trenes usando la función de ajuste. Después de esto, la predicción se realiza utilizando la función de predicción.

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix,accuracy_score

x = df.drop('Home', axis=1)
y = df['Home']
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.33, random_state=1)
logmodel = LogisticRegression()
logmodel.fit(x_train, y_train)

predictions = logmodel.predict(x_test)
print(classification_report(y_test, predictions))
print(confusion_matrix(y_test, predictions))
print(accuracy_score(y_test, predictions))

5.png

Informe de clasificación:

El informe de clasificación muestra la Precisión Recall , F1 y puntajes de soporte para el modelo.

Precisión puntuación significa el nivel hasta el cual la predicción hecha por el modelo es precisa. La precisión para un juego en casa es 0,62 y para el partido de ida es 0.58.

Recuerdo es la cantidad hasta la cual el modelo puede predecir el resultado. Recordar un juego en casa es 0.57 y para un partido de visitante es 0,64. Las puntuaciones F1 y Support son la cantidad de datos probados para las predicciones. En el conjunto de datos de la NBA, los datos probados para el juego en casa son 1662 y para el partido de ida es 1586.

Matriz de confusión:

La matriz de confusión es una tabla que describe el rendimiento de un modelo de predicción. Una matriz de confusión contiene los valores reales y los valores predichos. podemos usar estos valores para calcular la puntuación de precisión del modelo.

Mapa de calor de la matriz de confusión:

Tracemos un mapa de calor de la matriz de confusión usando seaborn y matplotlib para visualizar el modelo de predicción que hemos construido. Para trazar un mapa de calor, es necesaria la siguiente sintaxis.

sns.heatmap(pd.DataFrame(confusion_matrix(y_test,predictions)))
plt.show()

Imagen2-399x300.png

Mirando el mapa de calor, podemos concluir lo siguiente:

  • De todas las predicciones, el clasificador predijo que sí un total de 1730 veces, de las cuales 1012 fueron sí reales.
  • de todas las predicciones, el clasificador predijo no por un total de 1518 veces, de las cuales 944 fueron no reales.

Con este análisis de la matriz de confusión podemos concluir la puntuación de precisión de nuestro modelo de predicción.

Puntuación de precisión:

La puntuación de precisión es el porcentaje de precisión de las predicciones realizadas por el modelo. Para nuestro modelo, la puntuación de precisión es 0,60, que es considerablemente bastante precisa. Pero cuanto mayor sea la puntuación de precisión, más eficiente será su modelo de predicción. Siempre debe apuntar a una puntuación de precisión más alta para un mejor modelo de predicción.

Siguiendo los pasos discutidos anteriormente, hemos predicho la posibilidad de un partido de local/visitante utilizando el conjunto de datos de la NBA. Tras analizar el informe de clasificación podemos asumir la posibilidad de un partido de local/visitante.

En este blog hemos discutido la regresión logística en los conceptos de python, en qué se diferencia del enfoque lineal. Además, hemos cubierto una demostración utilizando el NBA Dataset. Para obtener más información y práctica, puede usar un conjunto de datos de su elección y seguir los pasos discutidos para implementar la regresión logística en Python.

¿Tienes una pregunta? Menciónalo en los comentarios y nos pondremos en contacto contigo.

Similar Posts

Leave a Reply

Your email address will not be published.