Apliquemos este algoritmo al dataset Iris. Comencemos leyendo los datos y dividiéndolos en bloques de entrenamiento y validación:
y = iris.species
Ahora importemos la clase RandomForestClassifier, instanciemos el algoritmo y entrenemos el modelo:
model.fit(X_train.values, y_train)
Podemos visualizar el porcentaje de muestras bien clasificadas con el método .score():
Comprobamos que se trata de un porcentaje superior al obtenido por un único árbol de decisión.
Por defecto, la clase RandomForestClassifier entrena 100 árboles, cosa que podemos comprobar en la configuración del modelo (clave n_estimators):
'ccp_alpha': 0.0,
'class_weight': None,
'criterion': 'gini',
'max_depth': None,
'max_features': 'sqrt',
'max_leaf_nodes': None,
'max_samples': None,
'min_impurity_decrease': 0.0,
'min_samples_leaf': 1,
'min_samples_split': 2,
'min_weight_fraction_leaf': 0.0,
'n_estimators': 100,
'n_jobs': None,
'oob_score': False,
'random_state': None,
'verbose': 0,
'warm_start': False}
Por supuesto, esto en configurable dando al parámetro n_estimators el valor deseado.