¿Cómo realizar una regresión logística en Python?



Regresión logística en Python usando sklearn para predecir el resultado determinando la relación entre dependientes y una o más variables independientes.

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

  1. ¿Qué es la regresión?
  2. Regresión logística en Python
  3. Regresión logística vs regresión lineal
  4. Casos de uso
  5. Demostración

También puede consultar este tutorial detallado sobre regresión logística en Python con una demostración para una mejor comprensión o revisar el para dominar la regresión logística.





¿Qué es la regresión?

El análisis es una poderosa técnica de análisis estadístico. UN dependiente La 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 forma intuitiva todo el tiempo. Como predecir el clima utilizando 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 variable dependiente y una o más variables independientes.

El análisis predice el resultado en una variable binaria que tiene sólo 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 tendrá solo dos resultados.

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

La regresión logística es un caso especial de regresión lineal donde 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 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 el eje Y, que es básicamente el punto de la línea que toca el eje y.
  • β1 es la pendiente de la línea (la pendiente puede ser negativa o positiva según 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 + e-y

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

regresión logística en python-edureka

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

que es el formato en python
    • Regresión logística binaria: solo tiene dos resultados posibles. Ejemplo: sí 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 usuarios (1-5).

Regresión lineal versus logística

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

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.

La predicción de 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 un puntaje de mercado de valores es un ejemplo de regresión lineal.

Casos de uso

A continuación se muestran los casos de uso en los que podemos utilizar 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.

Determinar la enfermedad

Podemosutilizarregresió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.utilizandoregresión lógica en Python con la ayudadeun conjunto de datos,en estovamos a cubrir los siguientes pasos para lograr la regresión lógica.

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 juego en casa o fuera de casa, analizando la relación entre los datos relevantes.

importar pandas como pd importar numpy como np importar seaborn como sns importar matplotlib.pyplot como plt df = pd.read_csv (r'C: UsersMohammadWaseemDocumentsdata.csv ') print (df.head (5))

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.

convertir binario a decimal en java

Analizar datos

El conjunto de datos se analiza para determinar la relación entre las variables. Creando diferentes gráficos para comprobar la relación entre las variables.

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

Arriba está la relación entre el porcentaje de victorias / derrotas con respecto al juego local / visitante. Ssimilarmentepodemos trazar el gráfico de la relación entre otras entradas relevantes en los datos.

Negociación 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.

imprimir (df.isnull (). sum ())

Comprobaremos 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 NBA que estamos usando, procederemos a dividir los datos.

Prueba y entrenamiento de datos

Para el rendimiento del modelo, los datos se dividen en datos de prueba y datos de tren. Los datos se dividen utilizando el train_test_split . Los datos aquí están divididos en una proporción de 70:30.

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

A continuación, el modelo se ajusta al tren con la función de ajuste. Después de esto, la predicción se realiza utilizando la función de predicción.

de sklearn.model_selection importar train_test_split de sklearn.linear_model importar LogisticRegression desde sklearn.metrics importar class_report de sklearn.metrics importar confusion_matrix, precision_score x = df.drop ('Inicio', eje = 1) y = df ['Inicio'] 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 (clasificación_report (y_test, predictions)) print (confusion_matrix (y_test, predictions)) print (precision_score (y_test, predictions))

Informe de clasificación:

El informe de clasificación muestra el Precisión , Recuperación, F1 y Soporte puntuaciones 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 juego de visitante es 0.58 .

Recordar es la cantidad hasta la que el modelo puede predecir el resultado. Recordar un juego en casa es 0.57 y para un juego 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 juego de visitante es 1586 .

Matriz de confusión:

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

Mapa de calor de matriz de confusión:

Tracemos un mapa de calor de la matriz de confusión utilizando seaborn y 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, predicciones))) plt.show ()

Al mirar el mapa de calor, podemos concluir lo siguiente:

  • De todas las predicciones, el clasificador predijo sí para el total de 1730 veces, de las cuales 1012 fueron sí reales.
  • de todas las predicciones, el clasificador predijo no para el 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 para 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 bastante bastante precisa. Pero cuanto mayor sea la puntuación de precisión, más eficiente será su modelo de predicción. Siempre debe aspirar 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 juego local / visitante usando el conjunto de datos de la NBA. Después de analizar el informe de clasificación podemos asumir la posibilidad de un partido 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, cubrimos una demostración con el conjunto de datos de la NBA. 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.

Además, consulte los diversos blogs de ciencia de datos en la plataforma edureka para dominar al científico de datos que hay en usted.

Si desea aprender Python y desarrollar una carrera en la ciencia de datos, consulte nuestro programa interactivo en línea aquí, que viene con soporte 24 * 7 para guiarlo durante su período de aprendizaje.
¿Tienes alguna pregunta? Menciónalo en los comentarios y nos comunicaremos contigo.