Je fais mes devoirs sur les arbres de décision, et l'une des questions auxquelles je dois répondre est "Pourquoi les estimateurs sont-ils construits à partir d'arbres biaisés, et comment l'ensachage aide-t-il à réduire leur variance?".
Maintenant, je sais que les modèles surajustés ont tendance à avoir un biais vraiment faible, car ils essaient de s'adapter à tous les points de données. Et, j'avais un script en Python qui adaptait un arbre à un ensemble de données (avec une seule fonctionnalité. C'était juste une sinusoïde, avec quelques points d'arrêt, image ci-dessous). Alors, je me suis demandé "eh bien, si je sur-ajuste vraiment les données, puis-je ramener le biais à zéro?". Et, il s'est avéré que, même avec une profondeur de 10000, il y a encore des points par lesquels la courbe ne passe pas.
J'ai essayé de chercher pourquoi, mais je n'ai pas vraiment pu trouver d'explication. Je suppose qu'il peut y avoir des arbres qui traverseraient parfaitement tous les points, et que ceux que j'ai obtenus n'étaient que de la «malchance». Ou que peut-être un ensemble de données différent aurait pu me donner un résultat non biaisé (peut-être une sinusoïde parfaite?). Ou même cela, peut-être que les coupes faites au début ont empêché de nouvelles coupes de séparer complètement tous les points.
Donc, en tenant compte de cet ensemble de données (car il pourrait être différent pour d'autres), ma question est: est-il possible d'ajuster un arbre au point où le biais va à zéro, ou y aura-t-il toujours un biais, même si vraiment petit? Et s'il y a toujours au moins un certain biais, pourquoi cela se produit-il?
PS Je ne sais pas si cela pourrait être utile, mais je le DecisionTreeRegressor
de sklearn
pour adapter le modèle aux données.