Extra Trees

Contents

Extra Trees#

Extra Trees (Extremely Randomized Trees) はRandom Forestsの改良版みたいなもの。

Random Forestはランダムに選んだ特徴量を用いて、その中で最良の分割点を探索して決定木を構築する。

一方でExtra Treesはランダムに選んだ特徴量の、ランダムな分割点たちを候補点として、そのなかの最良分割点で分割するように決定木を構築する。

それによってよりランダムで独立した決定木たちを構築し、アンサンブル(平均 or 多数決)するときのバリアンスを低減させる

理論#

Geurts, P., Ernst, D., & Wehenkel, L. (2006). Extremely randomized trees. Machine learning, 63, 3-42.

実装#

sklearnに実装がある ExtraTreesClassifier — scikit-learn 1.6.1 documentation

from sklearn.ensemble import ExtraTreesClassifier
from sklearn.datasets import make_classification
X, y = make_classification(n_features=4, random_state=0)
clf = ExtraTreesClassifier(n_estimators=100, random_state=0)
clf.fit(X, y)
clf.predict([[0, 0, 0, 0]])
array([1])