随机森林就是由多个决策树组成的集成学习方法,每个决策树都进行独立训练,训练数据都是从原始数据中进行有放回的(Out-of-Bag)随机抽样而来,这样可以使得每个决策树的训练数据不完全相同,从而增加了模型的多样性。
代码示例:
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
X, y = datasets.make_moons(n_samples=500, noise=0.3, random_state=42)
from sklearn.ensemble import RandomForestClassifier
rf_clf = RandomForestClassifier(n_estimators=500,oob_score=True, random_state=666, n_jobs=-1) #n_estimators决策树数量,
#oob_score=True表示用放回取样的方式随机抽样, n_jobs=-1并行训练
rf_clf.fit(X, y)
rf_clf.oob_score_
极端随机森林。极端随机森林在构建每个决策树的过程中,对于每个分裂节点的特征和分割点的选择都是随机的,而不是像传统随机森林一样选择最优的特征和分割点。它提供了额外的随机性,提高了训练速度,并且抑制过拟合,但一定程度上增大了偏差(bias)。
代码示例:
from sklearn.ensemble import ExtraTreesClassifier
et_clf = ExtraTreesClassifier(n_estimators=500, bootstrap=True, oob_score=True, random_state=666, n_jobs=-1)
#默认下bootstrap=False,但由于我们选择放回取样,所以将其改成True
et_clf.fit(X, y)
rf_clf.oob_score_
from sklearn.ensemble import BaggingRegressor
from sklearn.ensemble import RandomForestRegressor
from sklearn.ensemble import ExtraTreesRegressor