sklearn.ensemble.RandomForestClassifier

class 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 : 整数,可选(默认= 10)

森林里的树木数量。

在版本0.20中更改:默认值n_estimators将从版本0.20中的10更改为版本0.22中的100。

criterion : string,optional(default =“gini”)

衡量分裂质量的功能。支持的标准是基尼杂质的“gini”和信息增益的“熵”。注意:此参数是特定于树的。

max_depth : 整数或无,可选(默认=无)

树的最大深度。如果为None,则扩展节点直到所有叶子都是纯的或直到所有叶子包含少于min_samples_split样本。

min_samples_split : int,float,optional(default = 2)

拆分内部节点所需的最小样本数:

  • 如果是int,则考虑min_samples_split为最小数量。
  • 如果是浮点数,那么它min_samples_split是一个分数, 是每个分割的最小样本数。ceil(min_samples_split * n_samples)

更改版本0.18:添加了分数的浮点值。

min_samples_leaf : int,float,optional(default = 1)

叶节点所需的最小样本数。只有min_samples_leaf在每个左右分支中留下至少训练样本时,才会考虑任何深度的分裂点。这可能具有平滑模型的效果,尤其是在回归中。

  • 如果是int,则考虑min_samples_leaf为最小数量。
  • 如果是float,那么它min_samples_leaf是一个分数, 是每个节点的最小样本数。ceil(min_samples_leaf * n_samples)

更改版本0.18:添加了分数的浮点值。

min_weight_fraction_leaf : float,optional(默认= 0。)

需要在叶节点处的权重总和(所有输入样本的总和)的最小加权分数。当未提供sample_weight时,样本具有相同的权重。

max_features : int,float,string或None,optional(default =“auto”)

寻找最佳分割时要考虑的功能数量:

  • 如果是int,则考虑max_features每次拆分时的功能。
  • 如果是浮点数,那么它max_features是一个分数,并且 每次拆分时都会考虑特征。int(max_features * n_features)
  • 如果是“自动”,那么max_features=sqrt(n_features)
  • 如果是“sqrt”,那么max_features=sqrt(n_features)(与“auto”相同)。
  • 如果是“log2”,那么max_features=log2(n_features)
  • 如果没有,那么max_features=n_features

注意:在找到节点样本的至少一个有效分区之前,搜索分割不会停止,即使它需要有效地检查多个max_features功能。

max_leaf_nodes : int或None,可选(默认=无)

max_leaf_nodes以最好的方式种植树木。最佳节点定义为杂质的相对减少。如果为None则无限数量的叶节点。

min_impurity_decrease : float,optional(默认= 0。)

如果该分裂导致杂质的减少大于或等于该值,则将分裂节点。

加权杂质减少方程式如下:

N_t  /  N  *  (杂质 -  N_t_R  /  N_t  *  right_impurity 
                    -  N_t_L  /  N_t  *  left_impurity )

N样本总数在哪里,N_t是当前节点N_t_L的样本数,左子项中N_t_R的样本数,以及右子项中的样本数。

NN_tN_t_R并且N_t_L都指的是加权和,如果sample_weight获得通过。

版本0.19中的新功能。

min_impurity_split : float,(默认值= 1e-7)

树木生长早期停止的门槛。如果节点的杂质高于阈值,节点将分裂,否则它是叶子。

从版本0.19min_impurity_split开始不推荐使用已被弃用,支持 min_impurity_decrease0.19。默认值 min_impurity_split将在0.23中从1e-7变为0,并且将在0.25中删除。请min_impurity_decrease改用。

bootstrap : boolean,optional(default = True)

是否在构建树时使用bootstrap样本。如果为False,则使用整个数据集构建每个树。

oob_score : bool(默认= False)

是否使用袋外样品来估计泛化精度。

n_jobs : int或None,可选(默认=无)

就业人数在两个并行运行fitpredict。 None除非在joblib.parallel_backend上下文中,否则表示1 。 -1表示使用所有处理器。有关 详细信息,请参阅词汇表

random_state : int,RandomState实例或None,可选(默认=无)

如果是int,则random_state是随机数生成器使用的种子; 如果是RandomState实例,则random_state是随机数生成器; 如果为None,则随机数生成器是由其使用的RandomState实例np.random

verbose : int,optional(默认值= 0)

在拟合和预测时控制详细程度。

warm_start : bool,optional(默认= False)

设置True为时,重用上一个调用的解决方案以适应并向整体添加更多估算器,否则,只需适合整个新林。请参阅词汇表

class_weight : dict,dicts 列表,“balanced”,“balanced_subsample”或None,可选(默认=无)

与表单中的类相关联的权重。如果没有给出,所有课程都应该有一个重量。对于多输出问题,可以按与y列相同的顺序提供dicts列表。{class_label: weight}

请注意,对于多输出(包括多标记),应为其自己的dict中的每个列的每个类定义权重。例如,对于四类多标签分类权重应为[{0:1,1:1},{0:1,1:5},{0:1,1:1},{0:1,1: 1}]而不是[{1:1},{2:5},{3:1},{4:1}]。

“平衡”模式使用y的值自动调整与输入数据中的类频率成反比的权重 n_samples / (n_classes * np.bincount(y))

“balanced_subsample”模式与“balanced”相同,只是基于每个生长的树的bootstrap样本计算权重。

对于多输出,y的每列的权重将相乘。

请注意,如果指定了sample_weight,这些权重将与sample_weight(通过fit方法传递)相乘。

sklearn.ensemble.RandomForestRegressor

随机森林回归

控制树的大小(例如max_depthmin_samples_leaf等)的参数的默认值导致完全生长和未修剪的树,这些树在某些数据集上可能非常大。为减少内存消耗,应通过设置这些参数值来控制树的复杂性和大小。

每次拆分时,这些功能总是随机置换。因此,即使使用相同的训练数据,最佳发现的分裂也可以变化,max_features=n_features并且bootstrap=False如果对于在搜索最佳分割期间列举的几个分裂,标准的改进是相同的。为了在拟合期间获得确定性行为,random_state必须进行修复。

class 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 )

n_estimators : 整数,可选(默认= 10)

森林里的树木数量。

在版本0.20中更改:默认值n_estimators将从版本0.20中的10更改为版本0.22中的100。

criterion : string,optional(default =“mse”)

衡量分裂质量的功能。支持的标准是均方误差的“mse”,等于作为特征选择标准的方差减少,以及平均绝对误差的“mae”。

版本0.18中的新功能:平均绝对误差(MAE)标准。

max_depth : 整数或无,可选(默认=无)

树的最大深度。如果为None,则扩展节点直到所有叶子都是纯的或直到所有叶子包含少于min_samples_split样本。

min_samples_split : int,float,optional(default = 2)

拆分内部节点所需的最小样本数:

  • 如果是int,则考虑min_samples_split为最小数量。
  • 如果是浮点数,那么它min_samples_split是一个分数, 是每个分割的最小样本数。ceil(min_samples_split * n_samples)

更改版本0.18:添加了分数的浮点值。

min_samples_leaf : int,float,optional(default = 1)

叶节点所需的最小样本数。只有min_samples_leaf在每个左右分支中留下至少训练样本时,才会考虑任何深度的分裂点。这可能具有平滑模型的效果,尤其是在回归中。

  • 如果是int,则考虑min_samples_leaf为最小数量。
  • 如果是float,那么它min_samples_leaf是一个分数, 是每个节点的最小样本数。ceil(min_samples_leaf * n_samples)

更改版本0.18:添加了分数的浮点值。

min_weight_fraction_leaf : float,optional(默认= 0。)

需要在叶节点处的权重总和(所有输入样本的总和)的最小加权分数。当未提供sample_weight时,样本具有相同的权重。

max_features : int,float,string或None,optional(default =“auto”)

寻找最佳分割时要考虑的功能数量:

  • 如果是int,则考虑max_features每次拆分时的功能。
  • 如果是浮点数,那么它max_features是一个分数,并且 每次拆分时都会考虑特征。int(max_features * n_features)
  • 如果是“自动”,那么max_features=n_features
  • 如果是“sqrt”,那么max_features=sqrt(n_features)
  • 如果是“log2”,那么max_features=log2(n_features)
  • 如果没有,那么max_features=n_features

注意:在找到节点样本的至少一个有效分区之前,搜索分割不会停止,即使它需要有效地检查多个max_features功能。

max_leaf_nodes : int或None,可选(默认=无)

max_leaf_nodes以最好的方式种植树木。最佳节点定义为杂质的相对减少。如果为None则无限数量的叶节点。

min_impurity_decrease : float,optional(默认= 0。)

如果该分裂导致杂质的减少大于或等于该值,则将分裂节点。

加权杂质减少方程式如下:

N_t  /  N  *  (杂质 -  N_t_R  /  N_t  *  right_impurity 
                    -  N_t_L  /  N_t  *  left_impurity )

N样本总数在哪里,N_t是当前节点N_t_L的样本数,左子项中N_t_R的样本数,以及右子项中的样本数。

NN_tN_t_R并且N_t_L都指的是加权和,如果sample_weight获得通过。

版本0.19中的新功能。

min_impurity_split : float,(默认值= 1e-7)

树木生长早期停止的门槛。如果节点的杂质高于阈值,节点将分裂,否则它是叶子。

从版本0.19min_impurity_split开始不推荐使用已被弃用,支持 min_impurity_decrease0.19。默认值 min_impurity_split将在0.23中从1e-7变为0,并且将在0.25中删除。请min_impurity_decrease改用。

bootstrap : boolean,optional(default = True)

是否在构建树时使用bootstrap样本。如果为False,则使用整个数据集构建每个树。

oob_score : bool,optional(默认值= False)

是否使用袋外样本来估计看不见数据的R ^ 2。

n_jobs : int或None,可选(默认=无)

就业人数在两个并行运行fitpredict。 None`除非在joblib.parallel_backend上下文中,否则表示1 。 -1表示使用所有处理器。有关 详细信息,请参阅词汇表

random_state : int,RandomState实例或None,可选(默认=无)

如果是int,则random_state是随机数生成器使用的种子; 如果是RandomState实例,则random_state是随机数生成器; 如果为None,则随机数生成器是由其使用的RandomState实例np.random

verbose : int,optional(默认值= 0)

在拟合和预测时控制详细程度。

warm_start : bool,optional(默认= False)

设置True为时,重用上一个调用的解决方案以适应并向整体添加更多估算器,否则,只需适合整个新林。请参阅词汇表