Interpretación de la estimación de error fuera de bolsa para RandomForestRegressor

9

Estoy usando el regresor RandomForest en mis datos y pude ver que la puntuación de Oob se obtuvo en 0.83. No estoy seguro de cómo resultó ser así. Quiero decir que mis objetivos son valores altos en el rango de 10 ^ 7. Entonces, si es MSE, entonces debería haber sido mucho más alto. No entiendo lo que significa 0.83 aquí.

Estoy usando el RandomForestRegressor de python del kit de herramientas sklearn.

hago

model = RandomForestRegressor (max_depth = 7, n_estimators = 100, oob_score = True, n_jobs = -1) model.fit (trainX, trainY)

Luego veo model.oob_score_ y obtengo valores como 0.83809026152005295

usuario34790
fuente
@Momo. Estoy usando el sklearn.ensemble de RandomForestRegressor de python. Solo uso el modelo como
user34790

Respuestas:

6

Para comparar los valores objetivo de verdad real (es decir, correctos / reales) con los valores objetivo estimados (es decir, pronosticados) por el bosque aleatorio, scikit-learn no usa el MSE sino (a diferencia de, por ejemplo, MATLAB o ( Breiman 1996b ) ), como puede ver en el código de forest.py :R2

self.oob_score_ = 0.0
for k in xrange(self.n_outputs_):
    self.oob_score_ += r2_score(y[:, k], predictions[:, k])
self.oob_score_ /= self.n_outputs_

r2_score()calcula el coeficiente de determinación aka. R2 , cuyo mejor puntaje posible es 1.0, y los valores más bajos son peores.

FYI:

Franck Dernoncourt
fuente