ML | Clasificación de árbol de decisión de regresión logística v/s

La regresión logística y la clasificación del árbol de decisiones son dos de los algoritmos de clasificación más populares y básicos que se utilizan en la actualidad. Ninguno de los algoritmos es mejor que el otro y el rendimiento superior de uno a menudo se atribuye a la naturaleza de los datos con los que se trabaja. 

Podemos comparar los dos algoritmos en diferentes categorías: 

Criterios Regresión logística Clasificación del árbol de decisión
Interpretabilidad Menos interpretable Más interpretable
Límites de decisión Límite de decisión lineal y único Divide el espacio en espacios más pequeños
Facilidad de toma de decisiones Se debe establecer un umbral de decisión. Maneja automáticamente la toma de decisiones
sobreajuste No es propenso al sobreajuste Propenso al sobreajuste
Robustez al ruido Robusto al ruido Mayormente afectado por el ruido
Escalabilidad Requiere un conjunto de entrenamiento lo suficientemente grande Se puede entrenar en un pequeño conjunto de entrenamiento.

Como un experimento simple, ejecutamos los dos modelos en el mismo conjunto de datos y comparamos sus rendimientos.

Paso 1: Importación de las bibliotecas requeridas 

Python3

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier

  
Paso 2: lectura y limpieza del conjunto de datos

Python3

cd C:\Users\Dev\Desktop\Kaggle\Sinking Titanic
# Changing the working location to the location of the file
df = pd.read_csv('_train.csv')
y = df['Survived']
 
X = df.drop('Survived', axis = 1)
X = X.drop(['Name', 'Ticket', 'Cabin', 'Embarked'], axis = 1)
 
X = X.replace(['male', 'female'], [2, 3])
# Hot-encoding the categorical variables
 
X.fillna(method ='ffill', inplace = True)
# Handling the missing values

  
Paso 3: Entrenamiento y evaluación del modelo de Regresión Logística

Python3

X_train, X_test, y_train, y_test = train_test_split(
            X, y, test_size = 0.3, random_state = 0)
 
lr = LogisticRegression()
lr.fit(X_train, y_train)
print(lr.score(X_test, y_test))

  
Paso 4: Entrenamiento y evaluación del modelo Clasificador de Árbol de Decisión

Python3

criteria = ['gini', 'entropy']
scores = {}
 
for c in criteria:
    dt = DecisionTreeClassifier(criterion = c)
    dt.fit(X_train, y_train)
    test_score = dt.score(X_test, y_test)
    scores = test_score
 
print(scores)

Al comparar las puntuaciones, podemos ver que el modelo de regresión logística se desempeñó mejor en el conjunto de datos actual, pero es posible que este no sea siempre el caso.
 

Publicación traducida automáticamente

Artículo escrito por AlindGupta y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *