Regresión logística | Guía para principiantes de regresión logística con Python

Contenidos

  • ¿Qué es la regresión logística?
  • Matemáticas involucradas en regresión logística
  • Medición del desempeño mediante matrices de confusión
  • Demostración de regresión logística con código Python

La regresión logística es uno de los algoritmos de aprendizaje automático más populares, que se utiliza en el caso de predecir varios conjuntos de datos categóricos.. Los conjuntos de datos categóricos tienen solo dos resultados, 0/1 o Sí / No

221055cc7604b063fb0c7d541a527_5cbeb12eae2b883405064bc1_two-choice-7704557

Tabla de contenido

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

2 ¿Por qué aplicar la regresión logística?

3 Matemáticas involucradas en regresión logística

4 Implementación de regresión logística al hacer predicciones

5 Medición del rendimiento

6 características clave de la regresión logística

7 tipos de regresión logística

8 Implementación del código Python

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

Es un tipo de algoritmos de aprendizaje automático de regresión que se implementan para resolver problemas de clasificación / categóricos,

Los problemas que tienen resultados binarios, como Sí / No, 0/1, Verdadero / Falso, son los que se denominan problemas de clasificación.

95588whatsapp-image-2020-02-11-at-8-30-11-pm-3472288

2. ¿Por qué aplicar la regresión logística?

La regresión lineal no da una buena línea de ajuste para los problemas que tienen solo dos valores (como se muestra en la figura). Dará menos precisión durante la predicción porque no cubrirá los conjuntos de datos, siendo de naturaleza lineal.

Para el mejor ajuste de los conjuntos de datos categóricos, se requiere una curva que es posible con la ayuda de la regresión logística, ya que utiliza una función sigmoidea para hacer predicciones.

48211l7xj9gkzufp00gt2txzu-1710093

3. Matemáticas involucradas en la regresión logística

La razón principal detrás de la flexión de la curva de regresión logística es que se calcula utilizando una función sigmoidea. (también conocida como función logística porque se utiliza en regresión logística) que se indica a continuación

60550sigmoid-equation-1821663

Esta es la función matemática que tiene la ‘curva en forma de S’. El valor de la función sigmoide siempre se encuentra entre 0 y 1, por lo que se implementa para resolver problemas categóricos que tienen dos valores posibles.

281361_a04iknbchaycaj7-0qlesa-6487209

4. Implementación de regresión logística al hacer predicciones

La regresión logística implementa la función sigmoidea para hacer predicciones en el caso de valores categóricos.

Establece un valor de punto de corte, que en su mayoría se establece en 0.5, que, cuando es superado por la salida prevista de la curva logística, da la salida prevista respectiva en forma de la categoría a la que pertenece el conjunto de datos.

Por ejemplo,

En el caso del modelo de predicción de la diabetes, si la salida supera el punto de corte, la salida de la predicción se dará como Sí para la diabetes; de lo contrario, No, si el valor está por debajo del punto de corte.

5. Medición del desempeño

Para medir el rendimiento del modelo en la resolución de problemas de clasificación, se está utilizando la matriz de confusión., a continuación se muestra la implementación de la Matriz de confusión.

96377confusion-matrix-9778094

Términos clave:

  1. – TN significa verdaderos negativos (El valor predicho (negativo) coincide con el valor real (negativo))
  2. – FP significa falsos positivos (El valor real fue negativo, pero el modelo predijo un valor positivo.)
  3. – FN son las siglas de falsos negativos(El valor real fue positivo, pero el modelo predijo un valor negativo)
  4. – TP significa verdaderos positivos (El valor predicho (positivo) coincidió con el valor real (positivo))

Para un buen modelo, uno no debe tener una gran cantidad de falsos positivos o falsos negativos

6. Características clave de la regresión logística

1. La regresión logística es uno de los algoritmos de aprendizaje automático más populares, utilizado en la técnica de aprendizaje automático supervisado. Se utiliza para predecir la variable dependiente categórica, utilizando un conjunto dado de variables independientes.

2. Predice la salida de una variable categórica, que es de naturaleza discreta. Puede ser Sí o No, 0 o 1, verdadero o falso, etc. pero en lugar de dar el valor exacto como 0 y 1, da el resultado como la probabilidad del conjunto de datos que se encuentra entre 0 y 1.

3. Es similar a la regresión lineal. La única diferencia es que la regresión lineal se usa para resolver problemas de regresión, mientras que la regresión logística se usa para resolver los problemas de clasificación / problemas categóricos.

4 En la regresión logística, la función logística (sigmoidea) en forma de “S” se utiliza como curva de ajuste, lo que da una salida entre 0 y 1.

7. Tipos de regresión logística

Hay tres tipos:

un binomio

b Ordinal

c Multinomial

un binomio

La regresión logística binomial se ocupa de los problemas con las variables objetivo que tienen solo dos valores posibles, 0 o 1.

Lo que puede significar Sí / No, Verdadero / Falso, Muerto / Vivo y otros valores categóricos.

b Ordinal

Regresión logística ordinal Se ocupa de aquellos problemas cuyas variables objetivo pueden tener 3 o más de 3 valores, desordenados por naturaleza. Esos valores no tienen ningún significado cuantitativo

Por ejemplo, casa tipo 1, casa tipo 3, casa tipo 3, etc.

c Multinomial

La regresión logística multinomial, simplemente Regresión logística ordinal, se ocupa de los problemas que tienen valores objetivo mayores o iguales a 3. La principal diferencia radica en que, a diferencia de Ordinal, esos valores están bien ordenados. Los valores tienen importancia cuantitativa

Por ejemplo, la evaluación de la habilidad como baja, media, experta

6. Implementación del código Python

[ Note: The Datasets Being Taken is The Titanic Dataset]

Importación de bibliotecas

importar pandas como pd
importar numpy como notario público
importar matplotlib.pyplot como plt
%matplotlib en línea
importar marinero como sns
sns, conjunto ()

Importar el conjunto de datos

titanic_data = pd.read_csv(‘titanic_train.csv’)

Realización de análisis de datos exploratorios:

1. Verificación de varias entradas nulas en el conjunto de datos, con la ayuda del mapa de calor

2.Visualización de diversas relaciones entre variables

3. Uso de Box Plot para obtener detalles sobre la distribución

sns.mapa de calor(titanic_data.es nulo(), cbar=Falso)
sns.countplot(X=‘Sobrevivió’, datos=titanic_data)
sns.countplot(X=‘Sobrevivió’, matiz=‘Sexo’, datos=titanic_data)
sns.countplot(X=‘Sobrevivió’, matiz=‘Pclass’, datos=titanic_data)

14222missing-values-heatmap-4429968

mapa de calor

La edad y la cabaña tienen entradas nulas

72354seaborn-countplot-1017498
99768seaborn-countplot-hue-sex-9273318
43948seaborn-countplot-hue-pclass-6846511

sns.diagrama de caja(titanic_data[‘Pclass’], titanic_data[‘Age’])

44808age-boxplot-4052864

Usando la función para reemplazar entradas nulas

def input_missing_age(columnas):
la edad = columnas[0]
pasajero_clase = columnas[1]
si pd.es nulo(la edad):
si(pasajero_clase == 1):
regreso titanic_data[titanic_data[‘Pclass’] == 1][‘Age’].significar()
elifpasajero_clase == 2):
regreso titanic_data[titanic_data[‘Pclass’] == 2][‘Age’].significar()
elifpasajero_clase == 3):
regreso titanic_data[titanic_data[‘Pclass’] == 3][‘Age’].significar()
demás:
regreso la edad

Completar los datos de edad que faltan

titanic_data[‘Age’] = titanic_data[[‘Age’, ‘Pclass’]].solicitar(input_missing_age, eje = 1)

Eliminar datos nulos

titanic_data.soltar(‘Cabina’, eje=1, en su lugar = Cierto)
titanic_data.dropna(en su lugar = Cierto)

Crear variables ficticias para la columna Sexo y Embarcados

sex_data = pd.get_dummies(titanic_data[‘Sex’], drop_first = Cierto)
embarked_data = pd.get_dummies(titanic_data[‘Embarked’], drop_first = Cierto)

Agregue variables ficticias al DataFrame y elimine datos no numéricos

titanic_data = pd.concat([titanic_data, sex_data, embarked_data], eje = 1)
titanic_data.soltar([‘Name’, ‘PassengerId’, ‘Ticket’, ‘Sex’, ‘Embarked’], eje = 1, en su lugar = Cierto)

Imprima el conjunto de datos finalizado

titanic_data.cabeza()

45986final-data-frame-5467311

Divida el conjunto de datos en datos xey

y_data = titanic_data[‘Survived’]
x_data = titanic_data.soltar(‘Sobrevivió’, eje = 1)

Divida el conjunto de datos en datos de entrenamiento y datos de prueba

de sklearn.model_selection importar train_test_split
x_training_data, x_test_data, y_training_data, y_test_data = train_test_split(x_data, y_data, test_size = 0,3)

Crea el modelo

de sklearn.Modelo lineal importar Regresión logística
modelo = Regresión logística()

Entrene el modelo y cree predicciones

modelo.encajar(x_training_data, y_training_data)
predicciones = modelo.predecir(x_test_data)

Calcular métricas de desempeño

de sklearn.métrica importar informe_clasificacion
impresión(informe_clasificacion(y_test_data, predicciones))

 precision    recall  f1-score   support

           0       0.83      0.87      0.85       169

           1       0.75      0.68      0.72        98

    accuracy                           0.80       267

   macro avg       0.79      0.78      0.78       267

weighted avg       0.80      0.80      0.80       267

Genera una matriz de confusión

de sklearn.métrica importar matriz de confusión
impresión(matriz de confusión(y_test_data,
predicciones)

[[145  22]

 [ 30  70]]

Con esto termino este blog.
Hola a todos, Namaste
Me llamo Pranshu Sharma y soy un entusiasta de la ciencia de datos
Muchas gracias por tomarse su valioso tiempo para leer este blog. Siéntase libre de señalar cualquier error (después de todo, soy un aprendiz) y proporcionar los comentarios correspondientes o dejar un comentario.
Dhanyvaad !!
Realimentación:
Correo electrónico: [email protected]

Los medios que se muestran en este artículo no son propiedad de DataPeaker y se utilizan a discreción del autor.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.