ML:翻译 - sklearn - 集成学习 之 随机森林

随机森林(Forests of Randomized Tree)分类器官方文件翻译 & Var V.S. Bias数学推导

目录

一、集成学习 (Ensemble methods)的定义和分类

二、随机森林random forest  的定义和分类

三、sklearn.ensemble.RandomForest_()参数


一、集成学习 (Ensemble methods)的定义和分类


各个代表算法的详解,请点击链接:官方文档地址

  • 含义:在指定了算法模型的基础上,相对于单个学习器,为了进一步提高算法模型的泛化能力/鲁棒性,集成多个“基学习器”、再综合它们的结果的方法,我们称之为集成学习。
  • 分类:

集成学习分为2种体系:

  • 使用“平均”思想的算法:其核心标准是先建立多个相互独立的“基学习器”,然后将各个结果“平均”。一般而言,集ping成jun之后的结果比任意一个“基学习器”的结果更好,因为集ping成jun的方法可以降低Variance。                                                         

             · 代表算法有:Bagging MethodsForests of randomized trees,等。                                                                               

             · 最大优点:可以方便的进行并行训练。  

  • 对应的使用“boosting/阶梯”思想的算法:每一个“基学习器”的结果,都是下一个“基学习器”的基础(因此不能进行并行运算)。所有“基学习器”的目标功能一致,就是降低集成学习器的bias。                                                                                             

           · 代表算法有:AdaBoostingGradient Tree Boosting,等。

二、随机森林random forest  的定义和分类


含义:“随机森林”喻指集成学习器,森林中的一棵树树喻指一个“基学习器”,是bagging算法 的调整版。通过在原始数据集里采用有放回的随机抽样方法,从总样本集中得到n个子样本集,但是决策树在判断分割点的时候,有可能选用的属性个数小于子样本集的,再在此基础上,分别训练出n个CART“基学习器”,应用时分别从n个“基学习器”得到n个结果: 

  • 如果是classification,采用“投票”法选取得票最多的类作为集成学习器的结果;       
  •  如果是regression,采用“平均”方法获得均值作为集成学习器的结果。

分类:在scikit-learn中,RandomForest的分类是sklearn.ensemble.RandomForestClassifier,回归是sklearn.ensemble.RrandomForestRegressor

对Bagging Methods算法在如下方面进行了改进:

  • 使用CART决策树作为基学习器,形成森林;
  • 从样本中使用BootStrap方法抽取n个子样本集;
  • 从所有属性中随机选取K个属性,选择最佳分割属性作为分割点建立CART决策树;

三、sklearn.ensemble.RandomForest_()参数


1. sklearn.ensemble.RandomForest链接:官方文档

sklearn.ensemble.RandomForestClassifier(
n_estimators=’warn’, 
criterion=’gini’, 
max_depth=None, 
min_samples_split=2, 
min_samples_leaf=1, 
min_weight_fraction_leaf=0.0, 
max_features=’auto’, 
max_leaf_nodes=None, 
min_impurity_decrease=0.0, 
min_impurity_split=None, 
bootstrap=True, 
oob_score=False, 
n_jobs=None, 
random_state=None, 
verbose=0, 
warm_start=False, 
class_weight=None)
  • n_estimators:interger型参数,可选(默认值为10)。用来设定树/“基学习器”的个数。                 

                PS:版本0..20里n_extimator默认值是10,版本0.22默认值为100.

  • criterion:string型参数,可选(默认值为“gini”)。用来设定比选取分枝字段的方法,有“gini”和“entropy”两种分枝标准。

  • max_depth:integer型,可选(默认值为“None”)。用来设定决策树的层数。如果是“None”,决策树的层数会一直拓深下去,直到所有的叶的纯度为100%(纯度概包含在于gini/entropy概念上),或者所有叶子里的样本数小于提前设定的min_samples_split。

  • min_samples_split:或 int型,或 float型,可选(默认值为2)。用来设定分割内部结点的最小样本数量:如果是int型,那么将min_smaples_split作为最小值;如果是float,那么min_samples_split是一个分数,ceil(min_samples_split*n_samples)是每次分割的最小样本数。

  • min_samples_leaf:或int型,或float型,可选(默认值为1)。用来设定叶节点上最小的样本数。无论分割节点在哪个层次,只有当左右分支中留有不低于min_samples_leaf数量的训练样本时,才会被考虑。尤其在回归的时候,它或许能有平滑模型的效果。如果是int型,那么min_samples_leaf作为最小值;如果是float型,那么min-samples_leaf是一个分数,ceil(min_smaples_leaf * n_samples)是每次分割的最小数。

  • min_weight_fraction_leaf:float型,可选(默认值为0)。用来设定叶节点上所需的(所有输入样本)总权重的最小加权分数。当没有提供sample_weight是,样品的权重相等。

  • max_features:或int型,或float型,或string型,或None,可选(默认值为“auto”)。用来设定在寻找最佳分割点时的feature数。

如果是int型,那么每个分割点处用数max_features;

如果是float型,max_reatures是一个分数,那么数int(max_features * n_features)是每次分割的数;

如果是“auto”/“sqrt”,那么数max_features=sqrt(n_featrues)

如果是“log2”,那么数max_features=log2(n_features)

如果是“None”,那么数max_features=n_features.

  • max_leaf_nodes:或int型,可选(默认值是“None”)。用来设定在生长决策树时LeafNodes的参数。最好的节点被定义为不纯度的降低。如果是“None”,那么LeafNodes的数目没有限制。

……未完。

2. sklearn.ensemble.RandomForestRegressor链接:官方文档

sklearn.ensemble.RandomForestRegressor(
n_estimators=’warn’, 
criterion=’mse’, 
max_depth=None, 
min_samples_split=2, 
min_samples_leaf=1, 
min_weight_fraction_leaf=0.0, 
max_features=’auto’, 
max_leaf_nodes=None, 
min_impurity_decrease=0.0, 
min_impurity_split=None, 
bootstrap=True, 
oob_score=False, 
n_jobs=None, 
random_state=None, 
verbose=0, 
warm_start=False)

Refressor与Classifier相比,参数部分一致,除了这4处:

  • criterion:string型,可选(默认值是“msc”)。同样用来设定比选取分枝字段的方法,有“mse”和“mae”两种标准。“mse”适用平均方差(mean squared error),“mae”适用平均标准差(eman absolute error)。
  • max_features:(只有“auto”时,max_features计算式不同)。如果为“auto”,那么max_featrues = n_features。
  • obb_score:bool型,可选(默认值为“False”)。用来设定是否使用bag之外的样本来预测未知数据的R^2.
  • 最后一行后边,没有class_weight参数项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值