一.描述
- 随机森林就是将多棵决策树集成在一起的算法,它的基本单元是决策树,而它本质上属于机器学习的一大分支——集成学习方法
- 随机森林包含的每棵决策树都是一个分类模型,对于一个输入样本,每个分类模型都会产生一个分类结果,类似投票表决。随机森林继承了所有的“投票”分类结果,并将“投票”次数最多的类别指定为最终的输出类别。
- 随机森林每棵决策树的训练样本都是随机的,决策树中训练集的特征列也是随机选择确定的。正是因为这两个随机性的存在,使得随机森林不容易陷入过拟合,并且具有很好的抗噪能力
二.实例
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score
from sklearn.datasets import load_breast_cancer
# 加载威斯康星州乳腺癌数据集
ds = load_breast_cancer()
# 实例化决策树分类模型
dtc = DecisionTreeClassifier()
# 实例化随机森林分类模型
rfc = RandomForestClassifier()
# 交叉验证
dtc_scroe = cross_val_score(dtc, ds.data, ds.target, cv=10)
# 决策树分类模型交叉验证10次的平均精度
dtc_scroe.mean()
# 交叉验证
rfc_scroe = cross_val_score(rfc, ds.data, ds.target, cv=10)
# 随机森林模型交叉验证10次的平均精度
rfc_scroe.mean()
三.注意事项
在当前所有算法中,随机森林分类模型具有很高的准确率,能够处理很高维度(特征很多)的数据,并且不用做特征选择(因为特征子集是随机选择的)。随机森林分类模型包含的各个决策树之间是相互独立的,可以通过并行训练提升训练速度。不过,随机森林分类模型也不是完美无缺的,它的参数调优相对复杂,在某些噪声较大的分类或回归问题上会出现过拟合