Extra Trees#
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])