Home Machine Learning Random Forest en Regresión Para Machine Learning

Random Forest en Regresión Para Machine Learning

Por Felipe Veloso

Random Forest for Regression

En el pasado post analizamos sobre arboles de decision, entendimos en parte que un árbol de decision puede ser sesgado dependiendo mucho de la data y como se analice la data, una mejor formar de evaluar la data podría ser utilizar diversos arboles de decision, así hacer una mejor predicción calculando el promedio de sus predicciones, este enfoque se denomina como algoritmos de ensamble o ensemble learning.

De este algoritmo podemos decir, que une multiples arboles de decision, así crea un bosque de predicción, las evalúa y entrega el resultado promedio.

 

Random Forest 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.ensemble import RandomForestRegressor

model = RandomForestRegressor().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 multiples arboles de decisión y sus estadísticos principales

El resultado que obtuvimos es el promedio de multiples arboles de decision,  estas cantidades se pueden regular, como hiperparametros, los cuales se alejan de esta explicación.

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