随机森林和Extra-Trees

随机森林中,决策树在节点划分上,在随机的特征子集上寻找最优划分特征。

from sklearn.ensemble import RandomForestClassifier
rfc = RandomForestClassifier(n_estimators=500, random_state=666, oob_score=True, n_jobs=-1)#有500个子决策树模型
rfc.fit(X, y)
rfc.oob_score_

rfc = RandomForestClassifier(n_estimators=500, max_leaf_nodes=16,  random_state=666, oob_score=True, n_jobs=-1)#有500个子决策树模型

Extremely random trees: Extra-Trees - 极其随机森林

决策树在节点划分上,使用随机的特征和随机的阀值.

提供了额外的随机性, 抑制了过拟合,不会被一些特别的点带偏(因为每一棵树都是极其随机的),但是增加了bias(偏差),减少了方差。

from sklearn.ensemble import ExtraTreesClassifier
etc = ExtraTreesClassifier(n_estimators=500, random_state=666, oob_score=True, bootstrap=True)
etc.fit(X, y)
etc.oob_score_

同样也有对应的Regressor:

from sklearn.ensemble import BaggingRegressor
from sklearn.ensemble import RandomForesetRegressor
from sklearn.ensemble import ExtraTreesRegressor