Distribution normale et forêt aléatoire
J'ai une grande table dans le dataframe (600k lignes) qui a la colonne y (la variable que je veux prédire) et 4 autres autres colonnes qui sont le X. J'ai exécuté le régresseur RF et j'ai obtenu un noyau de 0,87 lorsque je l'exécute sur le former et tester.
Cependant, lorsque j'ai essayé de prédire un autre ensemble de données (qui est très similaire, avec 1 million de lignes), j'ai obtenu un score de 0,65. J'ai donc supposé que c'était un surajustement. quand j'ai essayé de comprendre pourquoi cela se produisait, je suis retourné à la distribution de la colonne y, qui ressemble à ceci:
ma question est, est-ce que c'est parce que mes données n'ont pas une distribution normale (ou très asymétrique ...) ma préformance de modèle est mauvaise? Toutes les variables doivent-elles avoir une distribution normale? Comment le score de la regrssion aléatoire de la forêt est-il calculé? La valeur d'id est de 0,25 et de prédire est de 0,26. Est-ce que cela compte comme une prédiction correcte?
Réponses
Si vous utilisez des algorithmes basés sur des arbres comme des forêts aléatoires, la distribution des données ne devrait pas être un problème. Les algorithmes linéaires sont plus dépendants de la distribution de vos variables. Pour vérifier si vous surfit pouvez essayer de prédire vos données d'entraînement et de comparer le résultat avec les données de test. Le score dépend de votre métrique d'évaluation. Si vous utilisez, scikit-learnvous obtenez R ^ 2 comme métrique.
Le coefficient R ^ 2 est défini comme (1 - u / v), où u est la somme résiduelle des carrés ((y_true - y_pred) ** 2) .sum () et v est la somme totale des carrés ((y_true - y_true.mean ()) ** 2) .sum ().