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.