它是袋装决策树的扩展。对于单个分类器,将训练数据集的样本替换后获取,但是以减少它们之间的相关性的方式构造树。同样,可以考虑使用特征的随机子集来选择每个分割点,而不是贪婪地选择构造每个树时的最佳分割点。
在以下Python配方中,我们将通过在Pima Indians糖尿病数据集上使用sklearn的RandomForestClassifier类来构建袋装随机森林集成模型。
首先,导入所需的软件包,如下所示:
from pandas import read_csv from sklearn.model_selection import KFold from sklearn.model_selection import cross_val_score from sklearn.ensemble import RandomForestClassifier
现在,我们需要像之前的Example一样加载Pima糖尿病数据集-
path=r"C:\pima-indians-diabetes.csv" headernames=[preg, plas, pres, skin, test, mass, pedi, age, class] data=read_csv(path, names=headernames) array=data.values X=array[:,0:8] Y=array[:,8]
接下来,输入用于十折交叉验证的输入,如下所示:
seed=7 kfold=KFold(n_splits=10, random_state=seed)
我们需要提供要建造的树木数量。在这里,我们正在构建150棵树木,这些树木的分裂点是从5个特征中选择的-
num_trees=150 max_features=5
接下来,在以下脚本的帮助下构建模型-
model=RandomForestClassifier(n_estimators=num_trees, max_features=max_features)
计算并打印输出如下-
results=cross_val_score(model, X, Y, cv=kfold) print(results.mean())
输出
0.7629357484620642
上面的输出显示,我们的袋装随机森林分类器模型的准确性约为76%。