Random Forest Python
Random Forest Python
Tabla de
contenidos
Introducción
Random Forest
Métodos de ensem
Bagging
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (en… 1/72
3/31/23, 10:39 AM Random Forest python
Tabla de
contenidos
Introducción
Introducción
Random Forest
Métodos de ensem
Bagging Un modelo Random Forest está formado por un conjunto de árboles de
Entrenamiento de R
Predicción de Rand decisión
Out-of-Bag Error (https://www.cienciadedatos.net/documentos/py07_arboles_decision_python.
Importancia de los individuales, cada uno entrenado con una muestra ligeramente distinta de
Ejemplo regresión
Librerías
los datos de entrenamiento generada mediante bootstrapping
Datos (https://en.wikipedia.org/wiki/Bootstrapping_(statistics)). La predicción de
Ajuste del modelo una nueva observación se obtiene agregando las predicciones de todos los
Predicción y evalua
árboles individuales que forman el modelo.
Optimización de hi
Número de árbo
Max features Muchos métodos predictivos generan modelos globales en los que una
Grid search única ecuación se aplica a todo el espacio muestral. Cuando el caso de
Grid Search bas uso implica múltiples predictores, que interaccionan entre ellos de forma
Grid Search bas
compleja y no lineal, es muy difícil encontrar un único modelo global que
Importancia de pre
Importancia por sea capaz de reflejar la relación entre las variables. Los métodos
Importancia por estadísticos y de machine learning basados en árboles engloban a un
Ejemplo clasificación
conjunto de técnicas supervisadas no paramétricas que consiguen
Librerías
Datos segmentar el espacio de los predictores en regiones simples, dentro de las
Ajuste del modelo y cuales es más sencillo manejar las interacciones. Es esta característica la
Grid Search bas que les proporciona gran parte de su potencial.
Grid Search bas
Predicción y evalua
Los métodos basados en árboles se han convertido en uno de los
Predicción de prob
Importancia de pre referentes dentro del ámbito predictivo debido a los buenos resultados que
Importancia por generan en problemas muy diversos. A lo largo de este documento se
Importancia por
explora la forma en que se construyen y predicen los modelos Random
Extrapolación con mo
Variables dummy (on Forest. Dado que el elemento fundamental de un modelo Random Forest
Extremely randomize son los árboles de decisión
Comparación Random (https://www.cienciadedatos.net/documentos/py07_arboles_decision_python.
Bibliografía
es fundamental entender cómo funcionan estos últimos.
Ventajas
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (en… 4/72
3/31/23, 10:39 AM Random Forest python
Tabla de
contenidos
Random Forest
Introducción
Random Forest
Métodos de ensem
Bagging Un modelo Random Forest está formado por un conjunto (ensemble) de
Entrenamiento de R
Predicción de Rand árboles de decisión individuales, cada uno entrenado con una muestra
Out-of-Bag Error aleatoria extraída de los datos de entrenamiento originales mediante
Importancia de los bootstrapping (https://en.wikipedia.org/wiki/Bootstrapping_(statistics)). Esto
Ejemplo regresión
Librerías
implica que cada árbol se entrena con unos datos ligeramente distintos. En
Datos cada árbol individual, las observaciones se van distribuyendo por
Ajuste del modelo bifurcaciones (nodos) generando la estructura del árbol hasta alcanzar un
Predicción y evalua
nodo terminal. La predicción de una nueva observación se obtiene
Optimización de hi
Número de árbo agregando las predicciones de todos los árboles individuales que forman el
Max features modelo.
Grid search
Grid Search bas Para entender cómo funcionan los modelos Random Forest es necesario
Grid Search bas
conocer primero los conceptos de ensemble y bagging.
Importancia de pre
Importancia por
Importancia por
Ejemplo clasificación
Librerías
Datos
Métodos de ensemble
Ajuste del modelo y
Grid Search bas
Grid Search bas
Predicción y evalua
Todos los modelos de aprendizaje estadístico y machine learning sufren el
Predicción de prob problema de equilibrio entre bias y varianza.
Importancia de pre
Importancia por El término bias (sesgo) hace referencia a cuánto se alejan en promedio las
Importancia por
predicciones de un modelo respecto a los valores reales. Refleja cómo de
Extrapolación con mo
Variables dummy (on capaz es el modelo de aprender la relación real que existe entre los
Extremely randomize predictores y la variable respuesta. Por ejemplo, si la relación sigue un
Comparación Random patrón no lineal, por muchos datos de los que se disponga, un modelo de
Bibliografía
regresión lineal no podrá modelar correctamente la relación, por lo que
tendrá un bias alto.
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (en… 5/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (en… 6/72
3/31/23, 10:39 AM Random Forest python
bootstrapping (https://en.wikipedia.org/wiki/Bootstrapping_(statistics)),
Tabla de
generando así pseudo-muestras con los que ajustar diferentes modelos y
contenidos
después agregarlos. A este proceso se le conoce como bagging y es
Introducción aplicable a una gran variedad de métodos de regresión.
Random Forest
Métodos de ensem En el caso particular de los árboles de decisión, dada su naturaleza de
Bagging bajo bias y alta varianza, bagging ha demostrado tener muy buenos
Entrenamiento de R
Predicción de Rand
resultados. La forma de aplicarlo es:
Out-of-Bag Error
Importancia de los
Ejemplo regresión 1. Generar pseudo-training sets mediante bootstrapping a partir de la
B
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (en… 8/72
3/31/23, 10:39 AM Random Forest python
Tabla de
contenidos
Entrenamiento de Random Forest
Introducción
Random Forest
Métodos de ensem
Bagging El algoritmo de Random Forest es una modificación del proceso de
Entrenamiento de R bagging que consigue mejorar los resultados gracias a que decorrelaciona
Predicción de Rand aún más los árboles generados en el proceso.
Out-of-Bag Error
Importancia de los
Recordando el apartado anterior, los beneficios de bagging se basan en el
Ejemplo regresión
Librerías hecho de que, promediando un conjunto de modelos, se consigue reducir
Datos la varianza. Esto es cierto siempre y cuando los modelos agregados no
Ajuste del modelo
estén correlacionados. Si la correlación es alta, la reducción de varianza
Predicción y evalua
Optimización de hi que se puede lograr es pequeña.
Número de árbo
Max features Supóngase un set de datos en el que hay un predictor muy influyente, junto
Grid search con otros moderadamente influyentes. En este escenario, todos o casi
Grid Search bas
todos los árboles creados en el proceso de bagging estarán dominados por
Grid Search bas
Importancia de pre el mismo predictor y serán muy parecidos entre ellos. Como consecuencia
Importancia por de la alta correlación entre los árboles, el proceso de bagging apenas
Importancia por conseguirá disminuir la varianza y, por lo tanto, tampoco mejorar el modelo.
Ejemplo clasificación
Librerías
Random forest evita este problema haciendo una selección aleatoria de m
Datos predictores antes de evaluar cada división. De esta forma, un promedio de
Ajuste del modelo y (p − m)/p divisiones no contemplarán el predictor influyente, permitiendo
Grid Search bas
Grid Search bas
que otros predictores puedan ser seleccionados. Añadiendo este paso
Predicción y evalua extra se consigue decorrelacionar los árboles todavía más, con lo que su
Predicción de prob agregación consigue una mayor reducción de la varianza.
Importancia de pre
Importancia por Los métodos de random forest y bagging siguen el mismo algoritmo con la
Importancia por
Extrapolación con mo
única diferencia de que, en random forest, antes de cada división, se
Variables dummy (on seleccionan aleatoriamente m predictores. La diferencia en el resultado
Extremely randomize dependerá del valor m escogido. Si m = p los resultados de random
Comparación Random
forest y bagging son equivalentes. Algunas recomendaciones son:
Bibliografía
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (en… 9/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 10/72
3/31/23, 10:39 AM Random Forest python
Tabla de
El valor predicho por cada árbol es la media de la variable respuesta Y en
contenidos
el nodo terminal. Acorde a la imagen, las predicciones de cada uno de los
Introducción tres árboles (de izquierda a derecha) es:
Random Forest
24 + 2 + 20
Métodos de ensem ^
y arbol
= = 15.33333
1
3
Bagging
18 + 24
Entrenamiento de R ^ arbo
y l
= = 21
2
2
Predicción de Rand
18 + 24 + 2 + 20
Out-of-Bag Error ^
y arbol
= = 16
3
4
Importancia de los
Ejemplo regresión
La predicción final del modelo es la media de todas las predicciones
Librerías
Datos individuales:
Ajuste del modelo
15.33333 + 21 + 16
Predicción y evalua ^ =
μ = 17.4
3
Optimización de hi
Número de árbo
Max features
Grid search
Grid Search bas Aunque la anterior es la forma más común de obtener las predicciones de
Grid Search bas un modelo Random Forest, existe otra aproximación. La predicción de un
Importancia de pre árbol de regresión puede verse como una variante de vecinos cercanos en
Importancia por
Importancia por
la que, solo las observaciones que forman parte del mismo nodo terminal
Ejemplo clasificación que la observación predicha, tienen influencia. Siguiendo esta
Librerías aproximación, la predicción del árbol se define como la media ponderada
Datos
de todas las observaciones de entrenamiento, donde el peso de cada
Ajuste del modelo y
Grid Search bas observación depende únicamente de si forma parte o no del mismo nodo
Grid Search bas terminal. Para Random Forest esto equivale a la media ponderada de
Predicción y evalua
todas las observaciones, empleando como pesos w la media de los
Predicción de prob
Importancia de pre vectores de pesos de todos los árboles.
Importancia por
Importancia por Acorde a la imagen anterior, el vector de pesos para cada uno de los tres
Extrapolación con mo árboles (de izquierda a derecha) es:
Variables dummy (on
Extremely randomize 1 1 1
warbol = (0, 0, , 0, , 0, 0, 0, , 0)
Comparación Random 1
3 3 3
1 1
Bibliografía warbol = (0, , , 0, 0, 0, 0, 0, 0, 0)
2
2 2
1 1 1 1
warbol = (0, , , 0, , 0, 0, 0, , 0)
3
4 4 4 4
1 13 7 7
(0, , , 0, , 0, 0, 0, , 0)
4 36 36 36
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 11/72
3/31/23, 10:39 AM Random Forest python
Random Forest ^ = ∑¯
μ w¯¯
¯
i
Yi
1 13 1
Bagging ^ = (0 × 10) + (
μ × 18) + ( × 24) + (0 × 8) + ( × 2) +
Entrenamiento de R 4 36 4
Predicción de Rand 1
(0 × 9) + (0 × 16) + (0 × 10) + ( × 20) + (0 × 14) = 17.4
Out-of-Bag Error 4
Importancia de los
Ejemplo regresión
Librerías
Datos
Ajuste del modelo
Predicción y evalua
Optimización de hi
Número de árbo
Max features
Grid search
Grid Search bas
Grid Search bas
Importancia de pre
Importancia por
Importancia por
Ejemplo clasificación
Librerías
Datos
Ajuste del modelo y
Grid Search bas
Grid Search bas
Predicción y evalua
Predicción de prob
Importancia de pre
Importancia por
Importancia por
Extrapolación con mo
Variables dummy (on
Extremely randomize
Comparación Random
Bibliografía
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 12/72
3/31/23, 10:39 AM Random Forest python
Tabla de
contenidos
Out-of-Bag Error
Introducción
Random Forest
Métodos de ensem
Bagging Dada la naturaleza del proceso de bagging, resulta posible estimar el error
Entrenamiento de R de test sin necesidad de recurrir a métodos de validación cruzada (cross-
Predicción de Rand validation). El hecho de que los árboles se ajusten empleando muestras
Out-of-Bag Error
Importancia de los
generadas por bootstrapping conlleva que, en promedio, cada ajuste use
Ejemplo regresión solo aproximadamente dos tercios de las observaciones originales. Al
Librerías tercio restante se le llama out-of-bag (OOB).
Datos
Ajuste del modelo
Si para cada árbol ajustado en el proceso de bagging se registran las
Predicción y evalua
Optimización de hi observaciones empleadas, se puede predecir la respuesta de la
Número de árbo observación i haciendo uso de aquellos árboles en los que esa
Max features observación ha sido excluida y promediándolos (la moda en el caso de los
Grid search
árboles de clasificación). Siguiendo este proceso, se pueden obtener las
Grid Search bas
Grid Search bas predicciones para las n observaciones y con ellas calcular el OOB-mean
Importancia de pre square error (para regresión) o el OOB-classification error (para árboles de
Importancia por
clasificación). Como la variable respuesta de cada observación se predice
Importancia por
Ejemplo clasificación empleando únicamente los árboles en cuyo ajuste no participó dicha
Librerías observación, el OOB-error sirve como estimación del error de test. De
Datos
hecho, si el número de árboles es suficientemente alto, el OOB-error es
Ajuste del modelo y
Grid Search bas
prácticamente equivalente al leave-one-out cross-validation error.
Grid Search bas
Predicción y evalua Esta es una ventaja añadida de los métodos de bagging, y por lo tanto de
Predicción de prob Random Forest ya que evita tener que recurrir al proceso de validación
Importancia de pre
cruzada (computacionalmente costoso) para la optimización de los
Importancia por
Importancia por hiperparámetros.
Extrapolación con mo
Variables dummy (on Dos limitaciones en el uso Out-of-Bag Error:
Extremely randomize
Comparación Random El Out-of-Bag Error no es adecuado cuando las observaciones tienen
Bibliografía una relación temporal (series temporales). Como la selección de las
observaciones que participan en cada entrenamiento es aleatoria, no
respetan el orden temporal y se estaría introduciendo información a
futuro.
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 13/72
3/31/23, 10:39 AM Random Forest python
Permutar en todos los árboles del modelo los valores del predictor
j manteniendo el resto constante.
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 14/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 15/72
3/31/23, 10:39 AM Random Forest python
"
Tabla de
contenidos
Introducción
Random Forest
Métodos de ensem
Bagging
Entrenamiento de R
Predicción de Rand
Out-of-Bag Error
Importancia de los
Ejemplo regresión
Librerías
Datos
Ajuste del modelo
Predicción y evalua
Optimización de hi
Número de árbo
Max features
Grid search
Grid Search bas
Grid Search bas
Ejemplo regresión
Importancia de pre
Importancia por
Importancia por
Ejemplo clasificación
Librerías Librerías
Datos
Ajuste del modelo y
Grid Search bas
Grid Search bas Las librerías utilizadas en este ejemplo son:
Predicción y evalua
Predicción de prob
Importancia de pre
Importancia por
Importancia por
Extrapolación con mo
Variables dummy (on
Extremely randomize
Comparación Random
Bibliografía
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 16/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 17/72
3/31/23, 10:39 AM Random Forest python
Tabla de
contenidos
Datos
Introducción
Random Forest
Métodos de ensem
Bagging El set de datos Boston disponible en la librería scikitlearn contiene
Entrenamiento de R precios de viviendas de la ciudad de Boston, así como información socio-
Predicción de Rand económica del barrio en el que se encuentran. Se pretende ajustar un
Out-of-Bag Error
Importancia de los
modelo de regresión que permita predecir el precio medio de una vivienda
Ejemplo regresión ( MEDV ) en función de las variables disponibles.
Librerías
Datos Number of Instances: 506
Ajuste del modelo
Predicción y evalua Number of Attributes: 13 numeric/categorical predictive. Median Value
Optimización de hi
Número de árbo
(attribute 14) is usually the target.
Max features
Grid search Attribute Information (in order):
Grid Search bas
Grid Search bas
CRIM: per capita crime rate by town
Importancia de pre ZN: proportion of residential land zoned for lots over 25,000 sq.ft.
Importancia por INDUS: proportion of non-retail business acres per town
Importancia por CHAS: Charles River dummy variable (= 1 if tract bounds river; 0 otherwise)
Ejemplo clasificación NOX: nitric oxides concentration (parts per 10 million)
Librerías RM: average number of rooms per dwelling
Datos AGE: proportion of owner-occupied units built prior to 1940
Ajuste del modelo y DIS: weighted distances to five Boston employment centres
Grid Search bas RAD: index of accessibility to radial highways
Grid Search bas TAX: full-value property-tax rate per $ 10,000
Predicción y evalua
PTRATIO: pupil-teacher ratio by town
Predicción de prob
B: 1000(Bk - 0.63)^2 where Bk is the proportion of blacks by town
Importancia de pre
LSTAT: % lower status of the population
Importancia por
Importancia por
MEDV: Median value of owner-occupied homes in $ 1000's
Extrapolación con mo
Variables dummy (on Missing Attribute Values: None
Extremely randomize
Comparación Random Creator: Harrison, D. and Rubinfeld, D.L.
Bibliografía
This is a copy of UCI ML housing dataset.
https://archive.ics.uci.edu/ml/machine-learning-databases/housing/
(https://archive.ics.uci.edu/ml/machine-learning-databases/housing/)
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 18/72
3/31/23, 10:39 AM Random Forest python
Importancia de los 1 0.02731 0.0 7.07 0.0 0.469 6.421 78.9 4.9671 2.0 242.0
Ejemplo regresión
2 0.02729 0.0 7.07 0.0 0.469 7.185 61.1 4.9671 2.0 242.0
Librerías
Datos
Ajuste del modelo
Predicción y evalua In [69]: datos.info()
Optimización de hi
<class 'pandas.core.frame.DataFrame'>
Número de árbo
RangeIndex: 506 entries, 0 to 505
Max features
Data columns (total 14 columns):
Grid search # Column Non-Null Count Dtype
Grid Search bas --- ------ -------------- -----
Grid Search bas 0 CRIM 506 non-null float64
Importancia de pre 1 ZN 506 non-null float64
Importancia por 2 INDUS 506 non-null float64
Importancia por 3 CHAS 506 non-null float64
Ejemplo clasificación 4 NOX 506 non-null float64
Librerías 5 RM 506 non-null float64
Datos
6 AGE 506 non-null float64
7 DIS 506 non-null float64
Ajuste del modelo y
8 RAD 506 non-null float64
Grid Search bas 9 TAX 506 non-null float64
Grid Search bas 10 PTRATIO 506 non-null float64
Predicción y evalua 11 B 506 non-null float64
Predicción de prob 12 LSTAT 506 non-null float64
Importancia de pre 13 MEDV 506 non-null float64
Importancia por dtypes: float64(14)
Importancia por memory usage: 55.5 KB
Extrapolación con mo
Variables dummy (on
Extremely randomize
Comparación Random
Bibliografía
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 19/72
3/31/23, 10:39 AM Random Forest python
Tabla de
contenidos
Ajuste del modelo
Introducción
Random Forest
Métodos de ensem Se ajusta un modelo empleando como variable respuesta MEDV y como
Bagging predictores todas las otras variables disponibles.
Entrenamiento de R
Predicción de Rand La clase RandomForestRegressor del módulo sklearn.ensemble permite
Out-of-Bag Error
Importancia de los
entrenar modelos random forest para problemas de regresión. Los
Ejemplo regresión parámetros e hiperparámetros empleados por defecto son:
Librerías
Datos n_estimators=100
Ajuste del modelo criterion='mse'
Predicción y evalua max_depth=None
Optimización de hi min_samples_split=2
Número de árbo min_samples_leaf=1
Max features min_weight_fraction_leaf=0.0
Grid search max_features='auto'
Grid Search bas max_leaf_nodes=None
Grid Search bas
min_impurity_decrease=0.0
Importancia de pre
min_impurity_split=None
Importancia por
bootstrap=True
Importancia por
Ejemplo clasificación oob_score=False
Librerías n_jobs=None
Datos random_state=None
Ajuste del modelo y verbose=0
Grid Search bas warm_start=False
Grid Search bas ccp_alpha=0.0
Predicción y evalua max_samples=None
Predicción de prob
Importancia de pre De entre todos ellos, destacan aquellos que detienen el crecimiento de los
Importancia por
Importancia por
árboles, los que controlan el número de árboles y predictores incluidos, y
Extrapolación con mo los que gestionan la paralelización:
Variables dummy (on
Extremely randomize n_estimators ; número de árboles incluidos en el modelo.
Comparación Random
Bibliografía max_depth : profundidad máxima que pueden alcanzar los árboles.
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 20/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 21/72
3/31/23, 10:39 AM Random Forest python
rmse = mean_squared_error(
y_true = y_test,
y_pred = predicciones,
squared = False
)
print(f"El error (rmse) de test es: {rmse}")
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 22/72
3/31/23, 10:39 AM Random Forest python
Tabla de
contenidos
Optimización de hiperparámetros
Introducción
Random Forest
Métodos de ensem
Bagging El modelo inicial se ha entrenado utilizando 10 árboles
Entrenamiento de R ( n_estimators=10 ) y manteniendo el resto de hiperparámetros con su
Predicción de Rand valor por defecto. Al ser hiperparámetros, no se puede saber de antemano
Out-of-Bag Error
Importancia de los
cuál es el valor más adecuado, la forma de identificarlos es mediante el
Ejemplo regresión uso de estrategias de validación, por ejemplo validación cruzada.
Librerías
Datos Los modelos Random Forest tienen la ventaja de disponer del Out-of-Bag
Ajuste del modelo
error, lo que permite obtener una estimación del error de test sin recurrir a
Predicción y evalua
Optimización de hi la validación cruzada, que es computacionalmente costosa. En la
Número de árbo implementación de RandomForestRegressor , la métrica devuelta como
Max features oob_score es el R2 , si se desea otra, se tiene que recurrir al método
Grid search
oob_decision_function_() para obtener las predicciones y con ellas
Grid Search bas
Grid Search bas calcular la métrica de interés. Para una explicación más detallada
Importancia de pre consultar: Grid search de modelos Random Forest con out-of-bag error y
Importancia por
early stopping (https://www.cienciadedatos.net/documentos/py36-grid-
Importancia por
Ejemplo clasificación search-random-forest-out-of-bag-error-early-stopping.html).
Librerías
Datos Cabe tener en cuenta que, cuando se busca el valor óptimo de un
Ajuste del modelo y hiperparámetro con dos métricas distintas, el resultado obtenido raramente
Grid Search bas
Grid Search bas
es el mismo. Lo importante es que ambas métricas identifiquen las mismas
Predicción y evalua regiones de interés.
Predicción de prob
Importancia de pre
Importancia por
Importancia por
Extrapolación con mo Número de árboles
Variables dummy (on
Extremely randomize
Comparación Random
Bibliografía En Random Forest, el número de árboles no es un hiperparámetro crítico
en cuanto que, añadir árboles, solo puede hacer que mejorar el resultado.
En Random Forest no se produce overfitting por exceso de árboles. Sin
embargo, añadir árboles una vez que la mejora se estabiliza es una
perdida te recursos computacionales.
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 23/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 24/72
3/31/23, 10:39 AM Random Forest python
/home/ubuntu/miniconda3/lib/python3.7/site-packages/sklearn/e
Tabla de nsemble/_forest.py:832: UserWarning: Some inputs do not have
contenidos OOB scores. This probably means too few trees were used to co
mpute any reliable oob estimates.
Introducción warn("Some inputs do not have OOB scores. "
/home/ubuntu/miniconda3/lib/python3.7/site-packages/sklearn/e
Random Forest
nsemble/_forest.py:832: UserWarning: Some inputs do not have
Métodos de ensem
OOB scores. This probably means too few trees were used to co
Bagging mpute any reliable oob estimates.
Entrenamiento de R warn("Some inputs do not have OOB scores. "
Predicción de Rand /home/ubuntu/miniconda3/lib/python3.7/site-packages/sklearn/e
Out-of-Bag Error nsemble/_forest.py:832: UserWarning: Some inputs do not have
Importancia de los OOB scores. This probably means too few trees were used to co
Ejemplo regresión mpute any reliable oob estimates.
Librerías warn("Some inputs do not have OOB scores. "
Datos
Valor óptimo de n_estimators: 56
Ajuste del modelo
Predicción y evalua
Optimización de hi
Número de árbo
Max features
Grid search
Grid Search bas
Grid Search bas
Importancia de pre
Importancia por
Importancia por
Ejemplo clasificación
Librerías
Datos
Ajuste del modelo y
Grid Search bas
Grid Search bas
Predicción y evalua
Predicción de prob
Importancia de pre
Importancia por
Importancia por
Extrapolación con mo
Variables dummy (on
Extremely randomize
Comparación Random
Bibliografía
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 25/72
3/31/23, 10:39 AM Random Forest python
contenidos
Introducción
Random Forest
Métodos de ensem
Bagging
Entrenamiento de R
Predicción de Rand
Out-of-Bag Error
Importancia de los
Ejemplo regresión
Librerías
Datos
Ajuste del modelo
Predicción y evalua
Optimización de hi
Número de árbo
Max features Ambas métricas indican que, a partir de entre 20 y 60 árboles, el error de
Grid search validación del modelo se estabiliza.
Grid Search bas
Grid Search bas
Importancia de pre
Importancia por
Importancia por Max features
Ejemplo clasificación
Librerías El valor de máx_features es uno de los hiperparámetros más importantes
Datos
de random forest, ya que es el que permite controlar cuánto se
Ajuste del modelo y
Grid Search bas
decorrelacionan los árboles entre sí.
Grid Search bas
Predicción y evalua
Predicción de prob
Importancia de pre
Importancia por
Importancia por
Extrapolación con mo
Variables dummy (on
Extremely randomize
Comparación Random
Bibliografía
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 27/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 28/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 29/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 30/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 31/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 32/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 33/72
3/31/23, 10:39 AM Random Forest python
# Resultados
# ========================================================
======================
resultados = pd.DataFrame(resultados)
resultados = pd.concat([resultados, resultados['params'].a
pply(pd.Series)], axis=1)
resultados = resultados.drop(columns = 'params')
resultados = resultados.sort_values('oob_r2', ascending=Fa
lse)
resultados.head(4)
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 34/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 35/72
3/31/23, 10:39 AM Random Forest python
----------------------------------------
Mejores hiperparámetros encontrados (cv)
----------------------------------------
{'max_depth': None, 'max_features': 5, 'n_estimators': 150} :
-3.322814334216982 neg_root_mean_squared_error
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 36/72
3/31/23, 10:39 AM Random Forest python
Tabla de
contenidos
Una vez identificados los mejores hiperparámetros, se reentrena el modelo
Introducción
Random Forest indicando los
valores óptimos en sus argumentos. Si en el
Métodos de ensem GridSearchCV() se indica refit=True , este reentrenamiento se hace
Bagging automáticamente y el modelo resultante se encuentra almacenado en
Entrenamiento de R
Predicción de Rand
.best_estimator_ .
Out-of-Bag Error
Importancia de los
Ejemplo regresión In [81]: # Error de test del modelo final
Librerías
# ========================================================
======================
Datos
modelo_final = grid.best_estimator_
Ajuste del modelo
predicciones = modelo.predict(X = X_test)
Predicción y evalua rmse = mean_squared_error(
Optimización de hi y_true = y_test,
Número de árbo y_pred = predicciones,
Max features squared = False
Grid search )
Grid Search bas print(f"El error (rmse) de test es: {rmse}")
Grid Search bas
El error (rmse) de test es: 3.7414885037872314
Importancia de pre
Importancia por
Importancia por
Ejemplo clasificación Tras optimizar los hiperparámetros, se consigue reducir el error rmse del
Librerías modelo de 4.35 a 3.74. Las predicciones del modelo final se alejan en
Datos promedio 3.74 unidades (3740 dólares) del valor real.
Ajuste del modelo y
Grid Search bas
Grid Search bas
Predicción y evalua
Predicción de prob
Importancia de pre
Importancia por Importancia de predictores
Importancia por
Extrapolación con mo
Variables dummy (on
Extremely randomize
Comparación Random Importancia por pureza de nodos
Bibliografía
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 37/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 38/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 39/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 40/72
3/31/23, 10:39 AM Random Forest python
Tabla de
Ambas estrategias identifican LSTAT y RM como los predictores más
contenidos
influyentes, acorde a los datos de entrenamiento.
Introducción
Random Forest
"
Métodos de ensem
Bagging
Entrenamiento de R
Predicción de Rand
Out-of-Bag Error
Importancia de los
Ejemplo regresión
Librerías
Datos
Ajuste del modelo
Predicción y evalua
Optimización de hi
Número de árbo
Max features
Grid search
Grid Search bas
Grid Search bas
Importancia de pre
Importancia por
Importancia por
Ejemplo clasificación
Librerías
Datos
Ejemplo clasificación
Ajuste del modelo y
Grid Search bas
Grid Search bas
Predicción y evalua
Predicción de prob Librerías
Importancia de pre
Importancia por
Importancia por
Extrapolación con mo Las librerías utilizadas en este documento son:
Variables dummy (on
Extremely randomize
Comparación Random
Bibliografía
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 41/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 42/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 43/72
3/31/23, 10:39 AM Random Forest python
======== ===============
Tabla de Carseats R Documentation
contenidos ======== ===============
Introducción Sales of Child Car Seats
------------------------
Random Forest
Métodos de ensem
Description
Bagging ~~~~~~~~~~~
Entrenamiento de R
Predicción de Rand A simulated data set containing sales of child car seats at 4
Out-of-Bag Error 00
Importancia de los different stores.
Ejemplo regresión
Librerías Usage
Datos ~~~~~
Ajuste del modelo
::
Predicción y evalua
Optimización de hi
Carseats
Número de árbo
Max features Format
Grid search ~~~~~~
Grid Search bas
Grid Search bas A data frame with 400 observations on the following 11 variab
Importancia de pre les.
Importancia por
Importancia por ``Sales``
Ejemplo clasificación Unit sales (in thousands) at each location
Librerías
``CompPrice``
Datos
Price charged by competitor at each location
Ajuste del modelo y
Grid Search bas ``Income``
Grid Search bas Community income level (in thousands of dollars)
Predicción y evalua
Predicción de prob ``Advertising``
Importancia de pre Local advertising budget for company at each location (in
Importancia por thousands
Importancia por of dollars)
Extrapolación con mo
``Population``
Variables dummy (on
Population size in region (in thousands)
Extremely randomize
Comparación Random ``Price``
Bibliografía Price company charges for car seats at each site
``ShelveLoc``
A factor with levels ``Bad``, ``Good`` and ``Medium`` indi
cating the
quality of the shelving location for the car seats at each
site
``Age``
Average age of the local population
``Education``
Education level at each location
``Urban``
A factor with levels ``No`` and ``Yes`` to indicate whethe
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 44/72
3/31/23, 10:39 AM Random Forest python
r the store
Tabla de is in an urban or rural location
contenidos
``US``
A factor with levels ``No`` and ``Yes`` to indicate whethe
Introducción r the store
Random Forest is in the US or not
Métodos de ensem
Bagging Source
Entrenamiento de R ~~~~~~
Predicción de Rand
Out-of-Bag Error Simulated data
Importancia de los
References
Ejemplo regresión
~~~~~~~~~~
Librerías
Datos James, G., Witten, D., Hastie, T., and Tibshirani, R. (2013)
Ajuste del modelo *An
Predicción y evalua Introduction to Statistical Learning with applications in R*,
Optimización de hi `www.StatLearning.com <www.StatLearning.com>`__, Springer-Ver
Número de árbo lag, New
Max features York
Grid search
Grid Search bas Examples
Grid Search bas
~~~~~~~~
Importancia de pre
::
Importancia por
Importancia por summary(Carseats)
Ejemplo clasificación lm.fit=lm(Sales~Advertising+Price,data=Carseats)
Librerías
Datos
Ajuste del modelo y
In [87]: datos.head(3)
Grid Search bas
Grid Search bas Out[87]:
Predicción y evalua Sales CompPrice Income Advertising Population Price ShelveLoc Age
Predicción de prob 0 9.50 138 73 11 276 120 Bad 42
Importancia de pre
1 11.22 111 48 16 260 83 Good 65
Importancia por
Importancia por 2 10.06 113 35 10 269 80 Medium 59
Extrapolación con mo
Variables dummy (on
Extremely randomize
Comparación Random
Como Sales es una variable continua y el objetivo del estudio es
Bibliografía
clasificar las tiendas según si venden mucho o poco, se crea una nueva
variable binaria (0, 1) llamada ventas_altas .
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 45/72
3/31/23, 10:39 AM Random Forest python
Tabla de
contenidos
Ajuste del modelo y optimización de
Introducción hiperparámetros
Random Forest
Métodos de ensem
Bagging
Entrenamiento de R Se ajusta un árbol de clasificación empleando como variable respuesta
Predicción de Rand ventas_altas y como predictores todas las variables disponibles. Se
Out-of-Bag Error
Importancia de los utilizan en
primer lugar los hiperparámetros max_depth=5 y
Ejemplo regresión criterion='gini' , el resto se dejan por defecto. Después, se aplica el
Librerías proceso de pruning y se comparan los resultados frente al modelo inicial.
Datos
Ajuste del modelo
A diferencia del ejemplo anterior, en estos datos hay variables categóricas
Predicción y evalua
Optimización de hi por lo que, antes de entrenar el modelo, es necesario aplicar one-hot-
Número de árbo encoding. Puede encontrarse una descripción más detallada de este
Max features
proceso en Machine learning con Python y Scikit-learn
Grid search
Grid Search bas
(https://www.cienciadedatos.net/documentos/py06_machine_learning_python
Grid Search bas
Importancia de pre
Importancia por
Importancia por
Ejemplo clasificación
Librerías
Datos
Ajuste del modelo y
Grid Search bas
Grid Search bas
Predicción y evalua
Predicción de prob
Importancia de pre
Importancia por
Importancia por
Extrapolación con mo
Variables dummy (on
Extremely randomize
Comparación Random
Bibliografía
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 46/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 47/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 48/72
3/31/23, 10:39 AM Random Forest python
Tabla de
contenidos
Si bien RandomForestClassifier tiene valores por defecto para sus
Introducción
Random Forest hiperparámetros, no se puede saber de antemano si estos son los más
Métodos de ensem adecuados, la forma de identificarlos es mediante el uso de estrategias de
Bagging validación, por ejemplo validación cruzada.
Entrenamiento de R
Predicción de Rand
Los modelos Random Forest tienen la ventaja de disponer del Out-of-Bag
Out-of-Bag Error
Importancia de los error, lo que permite obtener una estimación del error de test sin recurrir a
Ejemplo regresión la validación cruzada, que es computacionalmente costosa. En la
Librerías
implementación de RandomForestClassifier , la métrica devuelta como
Datos
Ajuste del modelo oob_score es el accuracy, si se desea otra, se tiene que recurrir al método
Predicción y evalua oob_decision_function_() para obtener las predicciones y con ellas
Optimización de hi
calcular la métrica de interés. Para una explicación más detallada
Número de árbo
Max features consultar: Grid search de modelos Random Forest con out-of-bag error y
Grid search early stopping (https://www.cienciadedatos.net/documentos/py36-grid-
Grid Search bas search-random-forest-out-of-bag-error-early-stopping.html). Cabe tener en
Grid Search bas
Importancia de pre
cuenta que, cuando se busca el valor óptimo de un hiperparámetro con dos
Importancia por métricas distintas, el resultado obtenido raramente es el mismo. Lo
Importancia por importante es que ambas métricas identifiquen las mismas regiones de
Ejemplo clasificación
interés.
Librerías
Datos
Ajuste del modelo y
Aunque el análisis individual de los hiperparámetros es útil para entender
Grid Search bas su impacto en el modelo e identificar rangos de interés, la búsqueda final
Grid Search bas no debe hacerse de forma secuencial, ya que cada hiperparámetro
Predicción y evalua
Predicción de prob
interacciona con los demás. Es preferible recurrir a grid search o random
Importancia de pre search para analizar varias combinaciones de hiperparámetros. Puede
Importancia por encontrarse más información sobre las estrategias de búsqueda en
Importancia por
Machine learning con Python y Scikit-learn
Extrapolación con mo
Variables dummy (on (https://www.cienciadedatos.net/documentos/py06_machine_learning_python
Extremely randomize
Comparación Random
Bibliografía
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 49/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 50/72
3/31/23, 10:39 AM Random Forest python
Out[91]:
oob_accuracy criterion max_depth max_features n_estimators
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 51/72
3/31/23, 10:39 AM Random Forest python
# Resultados
# ========================================================
======================
resultados = pd.DataFrame(resultados)
resultados = pd.concat([resultados, resultados['params'].a
pply(pd.Series)], axis=1)
resultados = resultados.drop(columns = 'params')
resultados = resultados.sort_values('oob_accuracy', ascend
ing=False)
resultados.head(4)
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 52/72
3/31/23, 10:39 AM Random Forest python
Out[92]:
oob_accuracy criterion max_depth max_features n_estimators
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 53/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 54/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 55/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 56/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 57/72
3/31/23, 10:39 AM Random Forest python
Tabla de
contenidos
Predicción de probabilidades
Introducción
Random Forest
Métodos de ensem
Bagging La mayoría de implementaciones de Random Forest, entre ellas la de
Entrenamiento de R scikit-learn, permiten predecir probabilidades cuando se trata de
Predicción de Rand problemas de clasificación. Es importante entender cómo se calculan estos
Out-of-Bag Error
Importancia de los
valores para interpretarlos y utilizarlos correctamente.
Ejemplo regresión
Librerías En el ejemplo anterior, al aplicar .predict() se devuelve 1 (ventas
Datos elevadas) o 0 (ventas bajas) para cada observación de test. Sin embargo,
Ajuste del modelo
no se dispone de ningún tipo de información sobre la seguridad con la que
Predicción y evalua
Optimización de hi el modelo realiza esta asignación. Con .predict_proba() , en lugar de
Número de árbo una clasificación, se obtiene la probabilidad con la que el modelo considera
Max features que cada observación puede pertenecer a cada una de las clases.
Grid search
Grid Search bas
Grid Search bas In [100]: # Predicción de probabilidades
Importancia de pre # ========================================================
Importancia por ======================
Importancia por predicciones = modelo_final.predict_proba(X = X_test_prep)
Ejemplo clasificación predicciones[:5, :]
Librerías
Out[100]: array([[0.76666667, 0.23333333],
Datos
[0.66 , 0.34 ],
Ajuste del modelo y
[0.89333333, 0.10666667],
Grid Search bas [0.73333333, 0.26666667],
Grid Search bas [0.72666667, 0.27333333]])
Predicción y evalua
Predicción de prob
Importancia de pre
El resultado de .predict_proba() es un array con una fila por
Importancia por
Importancia por observación y tantas columnas como clases tenga la variable respuesta. El
Extrapolación con mo valor de la primera columna se corresponde con la probabilidad, acorde al
Variables dummy (on
modelo, de que la observación pertenezca a la clase 0, y así
Extremely randomize
Comparación Random sucesivamente. El valor de probabilidad mostrado para cada predicción se
Bibliografía corresponde con la fracción de observaciones de cada clase en los nodos
terminales a los que ha llegado la observación predicha en el conjunto de
los árboles.
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 58/72
3/31/23, 10:39 AM Random Forest python
4 0.726667 0.273333 0 0
5 0.613333 0.386667 0 0
6 0.180000 0.820000 1 0
7 0.366667 0.633333 1 0
8 0.140000 0.860000 1 0
9 0.246667 0.753333 1 0
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 59/72
3/31/23, 10:39 AM Random Forest python
Tabla de
¿Hasta que punto se debe de confiar en estas probabilidades?
contenidos
Es muy importante tener en cuenta la diferencia entre la "visión" que tiene
Introducción
Random Forest el modelo del mundo y el mundo real. Todo lo que sabe un modelo sobre el
Métodos de ensem mundo real es lo que ha podido aprender de los datos de entrenamiento y,
Bagging por lo tanto, tiene una "visión" limitada. Por ejemplo, supóngase que, en los
Entrenamiento de R
Predicción de Rand
datos de entrenamiento, todas las tiendas que están en zona urbana
Out-of-Bag Error Urban='Yes' tienen ventas altas independientemente del valor que tomen
Importancia de los el resto de predictores. Cuando el modelo trate de predecir una nueva
Ejemplo regresión
Librerías
observación, si esta está en zona urbana, clasificará a la tienda como
Datos ventas elevadas con un 100% de seguridad. Sin embargo, esto no significa
Ajuste del modelo que sea inequivocamente cierto, podría haber tiendas en zonas úrbanas
Predicción y evalua
que no tienen ventas elevadas pero, al no estar presentes en los datos de
Optimización de hi
Número de árbo entrenamiento, el modelo no contempla esta posibilidad.
Max features
Grid search Teniendo en cuenta todo esto, hay que considerar las probabilidades
Grid Search bas generadas por el modelo como la seguridad que tiene este, desde su
Grid Search bas
visión limitada, al realizar las predicciones. Puede encontrase más
Importancia de pre
Importancia por información sobre cómo sacar máximo partido de las probabilidades
Importancia por predichas por un modelo en Calibrar modelos de machine learning
Ejemplo clasificación
(https://www.cienciadedatos.net/documentos/py11-calibrar-modelos-
Librerías
Datos machine-learning.html).
Ajuste del modelo y
Grid Search bas
Grid Search bas
Predicción y evalua
Predicción de prob Importancia de predictores
Importancia de pre
Importancia por
Importancia por
Extrapolación con mo
Variables dummy (on
Importancia por pureza de nodos
Extremely randomize
Comparación Random
Bibliografía
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 60/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 61/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 62/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 63/72
3/31/23, 10:39 AM Random Forest python
Tabla de
contenidos
Extrapolación con modelos
Introducción
Random Forest Random Forest
Métodos de ensem
Bagging
Entrenamiento de R
Predicción de Rand Una límitación importante de los árboles de regresióna, y por lo tanto de
Out-of-Bag Error
Random Forest es que no extrapolan fuera del rango de entrenamiento.
Importancia de los
Ejemplo regresión Cuando se aplica el modelo a una nueva observación, cuyo valor o valores
Librerías de los predictores son superiores o inferiores a los observados en el
Datos
entrenamiento, la predicción siempre es la media del nodo más cercano,
Ajuste del modelo
Predicción y evalua independientemente de cuanto se aleje el valor. Vease el siguiente ejemplo
Optimización de hi en el que se entrenan dos modelos, un modelo lineal y un arbol de
Número de árbo regresión, y luego se predicen valores de X fuera del rango de
Max features
Grid search
entrenamiento.
Grid Search bas
Grid Search bas
Importancia de pre In [106]: import matplotlib.pyplot as plt
import numpy as np
Importancia por
from sklearn.ensemble import RandomForestRegressor
Importancia por
from sklearn.linear_model import LinearRegression
Ejemplo clasificación
Librerías
Datos
Ajuste del modelo y
Grid Search bas
Grid Search bas
Predicción y evalua
Predicción de prob
Importancia de pre
Importancia por
Importancia por
Extrapolación con mo
Variables dummy (on
Extremely randomize
Comparación Random
Bibliografía
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 64/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 65/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 66/72
3/31/23, 10:39 AM Random Forest python
Tabla de
contenidos
Variables dummy (one-hot-
Introducción
Random Forest encoding) en modelos Random
Métodos de ensem
Bagging Forest
Entrenamiento de R
Predicción de Rand
Out-of-Bag Error
Importancia de los Los modelos basados en árboles de decisión, entre ellos Random Forest,
Ejemplo regresión
son capaces de utilizar predictores categóricos en su forma natural sin
Librerías
Datos necesidad de convertirlos en variables dummy mediante one-hot-encoding.
Ajuste del modelo Sin embargo, en la práctica, depende de la implementación que tenga la
Predicción y evalua librería o software utilizado. Esto tiene impacto directo en la estructura de
Optimización de hi
Número de árbo
los árboles generados y, en consecuencia, en los resultados predictivos del
Max features modelo y en la importancia calculada para los predictores.
Grid search
Grid Search bas El libro Feature Engineering and Selection A Practical Approach for
Grid Search bas
Predictive Models By Max Kuhn, Kjell Johnson
Importancia de pre
Importancia por (http://www.feat.engineering/categorical-trees.html), los autores realizan un
Importancia por experimento en el que se comparan modelos entrenados con y sin one-hot-
Ejemplo clasificación encoding en 5 sets de datos distintos, los resultados muestran que:
Librerías
Datos
No hay una diferencia clara en términos de capacidad predictiva de los
Ajuste del modelo y
Grid Search bas
modelos. Solo en el caso de stocastic gradient boosting se apecian
Grid Search bas ligeras diferencias en contra de aplicar one-hot-encoding.
Predicción y evalua
Predicción de prob El entrenamiento de los modelos tarda en promedio 2.5 veces más
Importancia de pre cuando se aplica one-hot-encoding. Esto es debido al aumento de
Importancia por
dimensionalidad al crear las nuevas variables dummy, obligando a que
Importancia por
Extrapolación con mo el algoritmo tenga que analizar muchos más puntos de división.
Variables dummy (on
Extremely randomize En base a los resultados obtenidos, los autores recomiendan no aplicar
Comparación Random one-hot-encoding. Solo si los resultados son buenos, probar entonces si se
Bibliografía
mejoran al crear las variables dummy.
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 68/72
3/31/23, 10:39 AM Random Forest python
Tabla de
contenidos
Comparación Random Forest y
Introducción
Random Forest Gradient Boosting Trees
Métodos de ensem
Bagging
Entrenamiento de R
Predicción de Rand Random Forest se compara con frecuencia con otro algoritmo basado en
Out-of-Bag Error
árboles, Gradient Boosting Trees. Ambos métodos son muy potentes y la
Importancia de los
Ejemplo regresión superioridad de uno u otro depende del problema al que se apliquen.
Librerías Algunos aspectos a tener en cuenta son:
Datos
Ajuste del modelo Gracias al out-of-bag error, el método de Random Forest no necesita
Predicción y evalua
recurrir a validación cruzada para la optimización de sus
Optimización de hi
Número de árbo hiperparámetros. Esto puede ser una ventaja muy importante cuando
Max features los requerimientos computacionales son limitantes. Esta característica
Grid search
también está presente en Stochastic Gradient Boosting pero no en
Grid Search bas
Grid Search bas AdaBoost y Gradient Boosting.
Importancia de pre
Importancia por
Random forest tiene menos hiperparámetros, lo que hace más sencillo
Importancia por su correcta implementación.
Ejemplo clasificación
Librerías Si existe una proporción alta de predictores irrelevantes, Random
Datos Forest puede verse perjudicado, sobre todo a medida que se reduce el
Ajuste del modelo y
número de predictores (m ) evaluados. Supóngase que, de 100
Grid Search bas
Grid Search bas predictores, 90 de ellos no aportan información (son ruidos). Si el
Predicción y evalua hiperparámetro m es igual a 3 (en cada división se evalúan 3
Predicción de prob
predictores aleatorios), es muy probable que los 3 predictores
Importancia de pre
Importancia por seleccionados sean de los que no aportan nada. Aun así, el algoritmo
Importancia por seleccionará el mejor de ellos, incorporándolo al modelo. Cuanto mayor
Extrapolación con mo sea el porcentaje de predictores no relevantes, mayor la frecuencia con
Variables dummy (on
la que esto ocurre, por lo que los árboles que forman el Random Forest
Extremely randomize
Comparación Random contendrán predictores irrelevantes. Como consecuencia, se reduce su
Bibliografía capacidad predictiva. En el caso de Gradient Boosting Trees, siempre
se evalúan todos los predictores, por lo que los no relevantes se
ignoran.
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 69/72
3/31/23, 10:39 AM Random Forest python
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 70/72
3/31/23, 10:39 AM Random Forest python
Tabla de
contenidos
Bibliografía
Introducción
Random Forest
Métodos de ensem
Bagging Introduction to Machine Learning with Python: A Guide for Data Scientists
Entrenamiento de R
Predicción de Rand libro
Out-of-Bag Error (https://www.amazon.es/gp/product/1449369413/ref=as_li_qf_asin_il_tl?
Importancia de los
ie=UTF8&tag=cienciadedato-
Ejemplo regresión
Librerías 21&creative=24630&linkCode=as2&creativeASIN=1449369413&linkId=e07f89
Datos
Ajuste del modelo An Introduction to Statistical Learning: with Applications in R (Springer Texts
Predicción y evalua in Statistics) libro
Optimización de hi
Número de árbo (https://www.amazon.es/gp/product/1461471370/ref=as_li_tl?
Max features ie=UTF8&camp=3638&creative=24630&creativeASIN=1461471370&linkCode
Grid search
21&linkId=64752a80078f4f017e81874b8cb355b7)
Grid Search bas
Grid Search bas
Applied Predictive Modeling by Max Kuhn and Kjell Johnson libro
Importancia de pre
Importancia por (https://www.amazon.es/gp/product/1461468485/ref=as_li_qf_asin_il_tl?
Importancia por ie=UTF8&tag=cienciadedato-
Ejemplo clasificación
Librerías
21&creative=24630&linkCode=as2&creativeASIN=1461468485&linkId=f014c4
Datos
Ajuste del modelo y The Elements of Statistical Learning by T.Hastie, R.Tibshirani, J.Friedman
Grid Search bas libro
Grid Search bas
(https://www.amazon.es/gp/product/B00M0R6ZJG/ref=as_li_qf_asin_il_tl?
Predicción y evalua
Predicción de prob ie=UTF8&tag=cienciadedato-
Importancia de pre 21&creative=24630&linkCode=as2&creativeASIN=B00M0R6ZJG&linkId=7d71
Importancia por
Importancia por
Bradley Efron and Trevor Hastie. 2016. Computer Age Statistical Inference:
Extrapolación con mo
Variables dummy (on Algorithms, Evidence, and Data Science (1st. ed.). Cambridge University
Extremely randomize Press, USA.
Comparación Random
Bibliografía Chen, Tianqi & Guestrin, Carlos. (2016). XGBoost: A Scalable Tree
Boosting System. 785-794. [DOI: 10.1145/2939672.2939785]
(http://dmlc.cs.washington.edu/data/pdf/XGBoostArxiv.pdf)
API design for machine learning software: experiences from the scikit-learn
project, Buitinck et al., 2013.
scikit-learn.org/stable/modules/tree (https://scikit-
learn.org/stable/modules/tree)
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 71/72
3/31/23, 10:39 AM Random Forest python
scikit-learn.org/stable/modules/ensemble (https://scikit-
Tabla de
learn.org/stable/modules/ensemble.html#forests-of-randomized-trees)
contenidos
Introducción
Random Forest
Métodos de ensem
Bagging ¿Cómo citar este documento?
Entrenamiento de R
Predicción de Rand
Random Forest con Python by Joaquín Amat Rodrigo, available under a
Out-of-Bag Error
Importancia de los Attribution 4.0 International (CC BY 4.0) at
Ejemplo regresión https://www.cienciadedatos.net/documentos/py08_random_forest_python.htm
Librerías
Datos
Ajuste del modelo
Predicción y evalua
Optimización de hi
¿Te ha gustado el artículo? Tu ayuda es importante
Número de árbo
Max features Mantener un sitio web tiene unos costes elevados, tu contribución me
Grid search ayudará a seguir generando contenido divulgativo gratuito. ¡Muchísimas
Grid Search bas
gracias! 😊
Grid Search bas
Importancia de pre
Importancia por
Importancia por
Ejemplo clasificación
Librerías
Datos
Ajuste del modelo y
Grid Search bas
Grid Search bas
Predicción y evalua
Predicción de prob
Importancia de pre
(http://creativecommons.org/licenses/by/4.0/)
Importancia por
Importancia por This work by Joaquín Amat Rodrigo is licensed under a Creative Commons
Extrapolación con mo Attribution 4.0 International License
Variables dummy (on
(http://creativecommons.org/licenses/by/4.0/).
Extremely randomize
Comparación Random
Bibliografía
https://www.cienciadedatos.net/documentos/py08_random_forest_python.html#:~:text=Un modelo Random Forest está formado por un conjunto (e… 72/72