6.2 API : RandomForestClassifier与RandomForestRegressor


RandomForestClassifier
RandomForestRegressor

RandomForestClassifier

from sklearn.ensemble import RandomForestClassifier
RandomForestClassifier(n_estimators=100, *, 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, ccp_alpha=0.0, max_samples=None)

描述

随机森林分类器。
随机森林—用数据集子集拟合了许多决策树分类器,并使用平均数来提高预测准确性和控制过拟合。
如果bootstrap = True(默认值),则使用max_samples参数控制子样本大小,否则将使用整个数据集来构建每棵树。

参数

n_estimators : integer, optional (default=10) 整数,可选择(默认值为10)。
随机森林中决策树分类器的数目

criterion : {“gini”, “entropy”}, default=”gini”
衡量分裂质量的性能(函数)。 受支持的标准是基尼不纯度的"gini",和信息增益的"entropy"(熵)。
注意:这个参数是特定树的。
首先Gini不纯度和Gini系数(coefficient)没有关系。Gini impurity衡量的是从一个集合中随机选择一个元素,基于该集合中标签的概率分布为元素分配标签的错误率。对于任何一个标签下的元素,其被分类正确的条件概率可以理解为在选择元素时选中该标签的概率与在分类时选中该标签的概率。基于上述描述,Gini impurity的计算就非常简单了,即1减去所有分类正确的概率,得到的就是分类不正确的概率。

max_depth : int, default=None
(决策)树的最大深度。如果值为None,那么会扩展节点,直到所有的叶子是纯净的(叶节点的所有数据类别都相同),或者直到所有叶子包含少于min_sample_split的样本。

min_samples_split : int or float, default=2
分割内部节点所需要的最小样本数量:
1. 如果为int,那么考虑min_samples_split作为最小的数字。
2. 如果为float,那么min_samples_split是一个百分比,并且把ceil(min_samples_split*n_samples)是每一个分割最小的样本数量

min_samples_leaf : int or float, default=1
需要在叶子结点上的最小样本数量:
1. 如果为int,那么考虑min_samples_leaf作为最小的数字。
2. 如果为float,那么min_samples_leaf为一个百分比,并把ceil(min_samples_leaf*n_samples)是每一个节点的最小样本数量

min_weight_fraction_leaf : float, default=0.0
一个叶子节点所需要的权重总和(所有的输入样本)的最小加权分数。当sample_weight没有提供时,样本具有相同的权重

max_features : {“auto”, “sqrt”, “log2”}, int or float, default=”auto”
寻找最佳分割时需要考虑的特征数目:
1.如果是int,就要考虑每一次分割处的max_feature特征
2.如果是float,那么max_features就是一个百分比,那么(max_feature*n_features)特征整数值是在每个分割处考虑的。
3.如果是auto,那么max_features=sqrt(n_features),即n_features的平方根值。
4.如果是log2,那么max_features=log2(n_features)
5.如果是None,那么max_features=n_features
注意:寻找分割点不会停止,直到找到最少一个有效的节点划分区,即使它需要有效检查超过max_features的特征。

max_leaf_nodes : int, default=None
以最优的方法使用max_leaf_nodes来生长树。最好的节点被定义为不纯度上的相对减少。如果为None,那么不限制叶子节点的数量。

min_impurity_decrease : float, default=0.0
如果节点的分裂导致的不纯度的下降程度大于或者等于这个节点的值,那么这个节点将会被分裂。
不纯度加权减少方程式如下:
N_t / N * (impurity - N_t_R / N_t * right_impurity- N_t_L / N_t * left_impurity)
N是样本总的数量,N_t是当前节点处的样本数量,N_t_L是左孩子节点样本的数量,还有N_t_R是右孩子节点的样本数量。
N,N_t,N_t_R和N_t_L全部是指加权总和,如果sample_weight通过的话。

bootstrap : bool, default=True
建立决策树时,是否使用有放回抽样。

oob_score : bool, default=False
是否使用袋外样本来估计泛化精度

n_jobs : int, default=None
用于拟合和预测的并行运行的工作(作业)数量。如果值为-1,那么工作数量被设置为核的数量。

random_state : int, RandomState instance or None, default=None
random_state是随机数生成器使用的种子; 如果是RandomState实例,random_state就是随机数生成器; 如果为None,则随机数生成器是np.random使用的RandomState实例。

verbose : int, default=0
控制决策树建立过程的冗余度

warm_start : bool, default=False
当被设置为True时,重新使用之前呼叫的解决方案,用来给全体拟合和添加更多的估计器,反之,仅仅只是为了拟合一个全新的森林。

class_weight : {“balanced”, “balanced_subsample”}, dict or list of dicts, default=None
“balanced_subsample” 或者None,(默认值为None),与格式{class_label: weight}相关联的类的可选的权值。如果没有给值,所有的类都应该有一个权值。对于多输出问题,一个字典序列可以按照y的列的顺序被提供。

请注意,对于多输出(包括多标签),其权值应该被定义为它自己字典的每一列的每一个类。例如,对于四类多标签分类,权值应该如[{0: 1, 1: 1}, {0: 1, 1: 5}, {0: 1, 1: 1}, {0: 1, 1: 1}] 这样,而不是[{1:1}, {2:5}, {3:1}, {4:1}].这样。
"balanced"模式使用y的值来自动的调整权值,与输入数据中类别频率成反比,如:
n_samples / (n_classes * np.bincount(y))
"balanced_subsample"模式和"balanced"相同,除了权值是基于每棵成长树有放回抽样计算的。
对于多输出,y的每列权值将相乘。
请注意,如果指定了sample_weight,这些权值将会和sample_weight相乘(通过拟合方法传递)

ccp_alpha : non-negative float, default=0.0
用于最小成本复杂性修剪的复杂性参数,将选择成本复杂度最大且小于ccp_alpha的子树。
默认情况下,不执行修剪。

max_samples : int or float, default=None
如果bootstrap为真,则从X中抽取样本数来训练每个基估计量。
如果为None(默认值),则绘制X.shape[0]样本。
如果是int,则绘制max_samples样本。
如果是浮动,那么绘制max_samples * X.shape[0]样本。因此,max_samples应该在(0,1)区间内

属性

base_estimator_ : DecisionTreeClassifier
基本分类器

estimators_ : list of DecisionTreeClassifier
拟合的子估计器的集合

classes_ : ndarray of shape (n_classes,) or a list of such arrays
类别标签(单一输出问题),或者类别标签的数组序列(多输出问题)

n_classes_ : int or list
类别的数量(单输出问题),或者一个序列,包含每一个输出的类别数量(多输出问题)

n_features_ : int
执行拟合时的特征数量

n_outputs_ : int
执行拟合时的输出数量

feature_importances : ndarray of shape (n_features,)
特征重要性(越大特征越重要)

oob_score_ : float
袋外数据集的评分

oob_decision_function_ : ndarray of shape (n_samples, n_classes)
仅当oob_score为True时,此属性才存在,袋外数据评估的特征重要性

方法

apply(X) : 将决策树应用于X,返回叶子索引
decision_path(X) : 返回森林中的决策路径
fit(X, y[, sample_weight]):从训练集(X, y)中构建一个森林
get_params([deep]):获得这个估计器的参数
predict(X):预测类x
predict_log_proba(X):预测X的类对数概率
predict_proba(X): 预测X的类概率
score(X, y[, sample_weight]):返回给定测试数据和标签的平均精确度
set_params(**params) : 设置估计器参数

RandomForestRegressor

from sklearn.ensemble import RandomForestRegressor

RandomForestRegressor(n_estimators=100, *, 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, ccp_alpha=0.0, max_samples=None)

描述

随机森林回归器
随机森林—用数据集子集拟合了许多决策树分类器,并使用平均数来提高预测准确性和控制过拟合。
如果bootstrap = True(默认值),则使用max_samples参数控制子样本大小,否则将使用整个数据集来构建每棵树

参数

criterion : {“mse”, “mae”}, default=”mse”
默认值为 ‘mse’—均方误差,是衡量回归效果的指标。可选的还有‘mae’ —平均绝对误差

剩下的参数与分类器中属性一致

属性

oob_prediction_ : ndarray of shape (n_samples,)
使用训练集的实际估计值计算预测,仅当oob_score为True时,此属性才存在

剩下的属性与分类器中属性一致
在这里插入图片描述
方法
与上面叙述一致
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46649052/article/details/112971517