我需要为一个练习创建一个随机森林分类器,练习中明确指出参数设置,我引用我的语言中的描述:
袋内样本百分比:25% 50% 85%
单个节点的维度数量:10%,50%,80%
我使用scikit-learn来实现这个分类器,但我不知道如何设置袋内样本百分比和节点维度数量的参数。
回答:
你可以使用max_features
参数来定义维度数量。比如这样:
rf = RandomForestClassifier(max_features=.1)
遗憾的是,RandomForestClassifier
目前还不支持子采样(即袋内样本百分比)。然而,这个功能已经在scikit-learn的当前开发分支中被添加,未来将会可用。
目前一个好的解决方法是使用BaggingClassifier
:它有一个max_samples
参数用于子采样,并且可以使用DecisionTreeClassifier
作为基础estimator来变成RandomForestClassifier
。
base = DecisionTreeClassifier(max_features=.1) rf = BaggingClassifier(base_estimator=base, max_samples=.25)
请注意,BaggingClassifier
也有一个max_features
参数,但它的作用方式与随机森林不同。