最近在学习机器学习,学习到了随机森林算法,想做一个demo,阅读了python的sk-learn包中随机森林的代码实现,做了一些笔记。
sk-learn中的随机森林是基于RandomForestClassifier类实现的,它的原型是
class RandomForestClassifier(ForestClassifier)
继承了一个抽象类ForestClassifier,也就是分类树
RandomForestClassifier有若干个参数,下面我们一个个来看
n_estimators 随机森林中树的个数 默认为10
criterion 每一次分裂的标准,有两个可选项,默认的基尼系数("gini")和熵(“entropy”)
max_features 每一次生成树时使用的特征数量,默认为“auto”。若为int则为对应的数量;若为float则对应n_estimators*max_features,即此时max_features对应的一个百分比;若为“auto”或“sqrt”,max_features=sqrt(总的特征数);若为“log2”,则为log2(总的特征数);若为None,则为总的特征数。
max_depth决策树的最大深度,默认为None
min_samples_split每次分裂节点是最小的分裂个数,即最小被分裂为几个,默认为2
min_samples_leaf若某一次分裂时一个叶子节点上的样本数小于这个值,则会被剪枝,默认为1
max_leaf_nodes最大的叶子节点的个数,默认为None,如果不为None,max_depth参数将被忽略
min_weight_fraction_leaf
The minimum weighted fracti