Interpretacja oszacowania błędu poza torbą dla RandomForestRegressor

9

Korzystam z regresora RandomForest na moich danych i mogłem zobaczyć, że wynik OOB wynosił 0,83. Nie jestem pewien, jak to się stało. Mam na myśli, że moje cele mają wysokie wartości w zakresie 10 ^ 7. Więc jeśli to MSE, to powinno być znacznie wyższe. Nie rozumiem, co oznacza tutaj 0,83.

Korzystam z RandomForestRegressor Pythona z zestawu narzędzi sklearn.

ja robię

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

Następnie widzę model.oob_score_ i otrzymuję wartości takie jak 0.83809026152005295

użytkownik34790
źródło
@Momo. Korzystam z RandomForestRegressor Python sklearn.ensemble. Po prostu używam modelu typu
użytkownik34790,

Odpowiedzi:

6

Aby porównać prawdziwe wartości docelowe (tj. Prawidłowe / rzeczywiste) wartości docelowe z oszacowanymi (tj. Przewidywanymi) wartościami docelowymi przez losowy las, scikit-learn nie używa MSE, ale R2)(w przeciwieństwie do np. MATLAB lub ( Breiman 1996b )), jak widać w kodzie forest.py :

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()oblicza współczynnik determinacji aka. R2 , którego najlepszy możliwy wynik to 1,0, a niższe wartości są gorsze.

FYI:

Franck Dernoncourt
źródło