Extra Trees (Extremely Randomized Trees) はRandom Forestsの改良版みたいなもの。
Random Forestはランダムに選んだ特徴量を用いて、その中で最良の分割点を探索して決定木を構築する。
一方でExtra Treesはランダムに選んだ特徴量の、ランダムな分割点たちを候補点として、そのなかの最良分割点で分割するように決定木を構築する。
それによってよりランダムで独立した決定木たちを構築し、アンサンブル(平均 or 多数決)するときのバリアンスを低減させる
理論¶
実装¶
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])- Geurts, P., Ernst, D., & Wehenkel, L. (2006). Extremely randomized trees. Machine Learning, 63(1), 3–42. 10.1007/s10994-006-6226-1