Home Machine Learning Arboles de Decisión en Regresión Machine Learning

Arboles de Decisión en Regresión Machine Learning

Por Felipe Veloso

Decision Tree for Regression

En esta ocasión nos topamos con otra forma de analizar las regresiones, esta es con un modelo de arboles de decisión, estos algoritmos están basados en la selección por nodos (binarios), este esta altamente relacionado con la entropía.

El principio de esto se basa en una decisión simple, cada atributo es analizado por una decisión (en forma de nodos)

En los beneficios de un árbol de decisión tenemos que es uno de esos algoritmos que nos permiten entender de manera natural sus resultados, pueden funcionar para casi todo tipo de dato sin importar como esté distribuido, lo malo es que dependiendo de sus configuraciones el overfit o el underfit, lo afectan mucho.

Decision Tree Scikit Learn

1.- Importar Librerías

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

2.- Importar Dataset

df = pd.read_csv('petrol_consumption.csv')

Revisando algunos dataset de kaggle encontré el dataset de petrol consumption desde aquí pueden verlo

3.- Analizar Data

df.head()
df.describe()
df.info()

Al tener nuestro dataframe cargado, obtenemos su vistazo inmediato tanto con head() y describe(),  luego un info() para saber el tipo de variables y cuantos nulos encontramos.

4.- PreProcesar Data

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
X = df[['Petrol_tax','Average_income','Paved_Highways','Population_Driver_licence(%)']]
y = df[['Petrol_Consumption']]
X_train , X_test , y_train , y_test = train_test_split(X, y, test_size = 0.3 , random_state = 329)

En esta etapa al verificar la distribución de la data, estandarizamos nuestra data, de hecho hace poco se generó un post de ejemplo respecto a estandarizar la data.

5.- Entrenar Algoritmo y hacer Predicción

from sklearn.linear_model import LinearRegression

model = DecisionTreeRegressor().fit(X_train,y_train)
pred = model.predict(X_train)

from sklearn import metrics
print('MAE', metrics.mean_absolute_error(y_test['Petrol_Consumption'],y_test['result']))
print('MSE', metrics.mean_squared_error(y_test['Petrol_Consumption'],y_test['result']))
print('RMSE', np.sqrt(metrics.mean_squared_error(y_test['Petrol_Consumption'],y_test['result'])))

Generamos la predicción este modelo de arboles de decisión y sus estadísticos principales

En pocas palabras algunos resultados fueron muy buenos y otros muy malos, al revisar sus test nos indica que el modelo no fue muy bueno (claramente, no estamos ajustando ni usando hiperparametros, lo importante es comentar que se pueden mejorar)

Pueden revisar la ejecución del notebook desde github, así ven los resultados de primera mano.

You may also like

Deja un Comentario

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More