Forêt aléatoire vs régression

21

J'ai exécuté un modèle de régression OLS sur un ensemble de données avec 5 variables indépendantes. Les variables indépendantes et les variables dépendantes sont à la fois continues et liées linéairement. Le carré R est d'environ 99,3%. Mais quand j'exécute la même chose en utilisant une forêt aléatoire dans R, mon résultat est '% Var expliqué: 88.42'. Pourquoi le résultat aléatoire de la forêt serait-il si inférieur à la régression? Mon hypothèse était que la forêt aléatoire serait au moins aussi bonne que la régression OLS.

user28906
la source
4
Si votre objectif est de prédire, un carré R plus élevé peut être dû à un sur-ajustement. Essayez de comparer les prédictions RN avec les prédictions de régression en utilisant la validation croisée.
Manoel Galdino

Réponses:

27

Je ne sais pas exactement ce que vous avez fait, donc votre code source m'aiderait à deviner moins.

De nombreuses forêts aléatoires sont essentiellement des fenêtres dans lesquelles la moyenne est supposée représenter le système. C'est un arbre CAR sur-glorifié.

Disons que vous avez un arbre CAR à deux feuilles. Vos données seront divisées en deux piles. La sortie (constante) de chaque pile sera sa moyenne.

Maintenant, faisons-le 1000 fois avec des sous-ensembles aléatoires de données. Vous aurez toujours des régions discontinues avec des sorties qui sont des moyennes. Le gagnant d'un RF est le résultat le plus fréquent. Cela ne fait que "brouiller" la frontière entre les catégories.

Exemple de sortie linéaire par morceaux de l'arbre CART:

Disons, par exemple, que notre fonction est y = 0,5 * x + 2. Une intrigue qui ressemble à ceci: Figure 1

Si nous devions modéliser cela en utilisant un seul arbre de classification avec seulement deux feuilles, nous trouverions d'abord le point de la meilleure division, divisé à ce point, puis approximer la sortie de la fonction à chaque feuille en tant que sortie moyenne sur la feuille.

complot avec CART trivial

Si nous devions recommencer avec plus de feuilles sur l'arbre CART, nous pourrions obtenir ce qui suit: entrez la description de l'image ici

Pourquoi les forêts centrafricaines?

Vous pouvez voir que, dans la limite des feuilles infinies, l'arbre CART serait un approximateur acceptable.

Le problème est que le monde réel est bruyant. Nous aimons penser en termes de moyens, mais le monde aime à la fois la tendance centrale (moyenne) et la tendance à la variation (dev standard). Il y a du bruit.

La même chose qui donne à un arbre CAR sa grande force, sa capacité à gérer la discontinuité, le rend vulnérable à la modélisation du bruit comme s'il s'agissait d'un signal.

Leo Breimann a donc fait une proposition simple mais puissante: utiliser les méthodes Ensemble pour rendre les arbres de classification et de régression robustes. Il prend des sous-ensembles aléatoires (un cousin du rééchantillonnage bootstrap) et les utilise pour former une forêt d'arbres centrafricains. Lorsque vous posez une question sur la forêt, toute la forêt parle et la réponse la plus courante est prise en sortie. Si vous avez affaire à des données numériques, il peut être utile de regarder l'attente en tant que sortie.

Donc, pour la deuxième parcelle, pensez à modéliser à l'aide d'une forêt aléatoire. Chaque arbre aura un sous-ensemble aléatoire des données. Cela signifie que l'emplacement du "meilleur" point de partage variera d'arbre en arbre. Si vous deviez faire un tracé de la sortie de la forêt aléatoire, à l'approche de la discontinuité, les premières branches indiqueront un saut, puis plusieurs. La valeur moyenne dans cette région traversera un chemin sigmoïde lisse. Bootstrapping est convolutant avec un gaussien, et le flou gaussien sur cette fonction de pas devient un sigmoïde.

Bottom lines:

Vous avez besoin de beaucoup de branches par arbre pour obtenir une bonne approximation d'une fonction très linéaire.

Il existe de nombreux "cadrans" que vous pouvez modifier pour avoir un impact sur la réponse, et il est peu probable que vous les ayez tous définis sur les valeurs appropriées.

Les références:

EngrStudent - Réintégrer Monica
la source
La régression RANDOM de la forêt n'est-elle pas effectuée avec des fonctions constantes par morceaux, ce qui est évidemment un mauvais ajustement aux données linéairement liées?
seanv507
Je pense que nous disons la même chose. Quelle constante est celle utilisée? droite.
EngrStudent
Si je pensais que nous disions la même chose, je l'aurais mis en commentaire. Je ne comprends pas votre réponse. Ma réponse explique que les données OP sont linéaires et si mal ajustées par une fonction constante par morceaux.
seanv507
@ seanv507 L'avantage de la RF est que les multiples arbres, adaptés à des sous-ensembles aléatoires de données perturbées, font la moyenne des discontinuités. Le résultat est une meilleure approximation de la ligne lisse sous-jacente que ce que produirait un seul arbre.
Hong Ooi
Il s'agit essentiellement d'un rééchantillonnage bootstrap sur un arbre de régression. L'une des choses que je n'aime pas à propos du bootstrap est que la distribution uniforme compte comme un préalable informatif. Le cas idéal n'est-il pas un préalable non informatif?
EngrStudent
7

Je remarque que c'est une vieille question, mais je pense que plus devrait être ajouté. Comme @Manoel Galdino l'a dit dans les commentaires, vous êtes généralement intéressé par les prédictions sur les données invisibles. Mais cette question concerne les performances des données d'entraînement et la question est de savoir pourquoi la forêt aléatoire fonctionne mal sur les données d'entraînement . La réponse met en évidence un problème intéressant avec les classificateurs en sac qui m'a souvent causé des problèmes: la régression vers la moyenne.

Le problème est que les classificateurs ensachés comme la forêt aléatoire, qui sont créés en prenant des échantillons d'amorçage de votre ensemble de données, ont tendance à mal fonctionner dans les extrêmes. Parce qu'il n'y a pas beaucoup de données dans les extrêmes, elles ont tendance à être lissées.

Plus en détail, rappelons qu'une forêt aléatoire pour la régression fait la moyenne des prédictions d'un grand nombre de classificateurs. Si vous avez un seul point qui est loin des autres, de nombreux classificateurs ne le verront pas, et ceux-ci feront essentiellement une prédiction hors échantillon, ce qui pourrait ne pas être très bon. En fait, ces prévisions hors échantillon auront tendance à tirer la prédiction pour le point de données vers la moyenne globale.

Si vous utilisez un seul arbre de décision, vous n'aurez pas le même problème avec les valeurs extrêmes, mais la régression ajustée ne sera pas non plus très linéaire.

Voici une illustration dans R. Certaines données sont générées dans lesquelles yest une combinaison parfaite de liner de cinq xvariables. Ensuite, les prédictions sont faites avec un modèle linéaire et une forêt aléatoire. Ensuite, les valeurs de ysur les données d'entraînement sont tracées par rapport aux prédictions. Vous pouvez clairement voir que la forêt aléatoire se porte mal dans les extrêmes car les points de données avec des valeurs très grandes ou très petites de ysont rares.

Vous verrez le même modèle pour les prédictions sur les données invisibles lorsque des forêts aléatoires sont utilisées pour la régression. Je ne sais pas comment l'éviter. La randomForestfonction dans R a une option de correction de biais brut corr.biasqui utilise une régression linéaire sur le biais, mais cela ne fonctionne pas vraiment.

Les suggestions sont les bienvenues!

beta <- runif(5)
x <- matrix(rnorm(500), nc=5)
y <- drop(x %*% beta)
dat <- data.frame(y=y, x1=x[,1], x2=x[,2], x3=x[,3], x4=x[,4], x5=x[,5])
model1 <- lm(y~., data=dat)
model2 <- randomForest(y ~., data=dat)
pred1 <- predict(model1 ,dat)
pred2 <- predict(model2 ,dat)
plot(y, pred1)
points(y, pred2, col="blue")

entrez la description de l'image ici

Flet
la source
Je suis d'accord avec votre observation, mais je suis devenu un fan de la régression RF vers la moyenne dans les zones avec peu de points de données. Eh bien, si l'on était très sûr de trouver une belle structure linéaire globale jusqu'à la limite de l'ensemble d'apprentissage uniquement pris en charge par quelques points de données, alors faites une correction linéaire et demandez à RF de prendre en charge les résidus.
Soren Havelund Welling,
2
Merci pour le commentaire! J'ai eu une expérience désagréable dans laquelle il donnait des prédictions qui étaient très mauvaises et qui me faisaient mal paraître. Mais il n'y a peut-être aucun moyen d'obtenir des prévisions plus précises pour les points limites sans augmenter la variance.
Flounderer
Un commentaire supplémentaire des années plus tard, j'ai remarqué que les RF ont tendance à mal fonctionner partout où il y a un léger écart dans les données. Bien sûr, il y a souvent moins de données aux extrémités d'un ensemble de données, mais de temps en temps, vous pourriez vous retrouver avec un écart au centre. La RF peut faire un vrai gâchis d'un ensemble de données avec des lacunes.
SeldomSeenSlim
2

La forêt aléatoire essaie de trouver des localités parmi de nombreuses fonctionnalités et de nombreux points de données. Il divise les entités et les donne à différents arbres, comme vous avez un petit nombre d'entités, le résultat global n'est pas aussi bon que la régression logistique. La forêt aléatoire peut gérer des variables numériques et catégorielles mais n'est pas bonne pour gérer les valeurs manquantes.

Abbas Shojaee
la source
0

Je pense que Random Forest (RF) est un bon outil lorsque la forme fonctionnelle de la relation entre Xs et y est compliquée (à cause des relations non linéaires et de l'effet d'interaction). RF classe les X en fonction du meilleur point de coupure (en termes d'ESS minimale) et n'applique pas les informations du chercheur sur la forme fonctionnelle de la relation. En revanche, la régression OLS utilise ces informations. Dans votre exemple, vous savez quel est exactement le type de relation entre Xs et y et utilisez toutes ces informations dans votre modèle de régression, mais RF n'utilise pas ces informations.

J Faradmal
la source
-2

Pour les bases, la régression fonctionne bien sur les variables continues et la forêt aléatoire sur les variables discrètes.

Vous devez fournir plus de détails sur le problème et sur la nature des variables afin d'être plus précis ...

Subspacien
la source
Toutes les variables rendements journaliers des actions (séries temporelles financières) ...
user28906
3
"La régression fonctionne bien sur les variables continues et la forêt aléatoire sur les variables discrètes.": Ce n'est pas vrai en général. Il existe des distinctions dans l'inférence et la prédiction, et même avec la prédiction, il y a des cas où la régression serait préférée à la RF.
AdamO