随机森林中的各个参数(参数详细阐释)

我们先看看随机森林里有哪些参数

n_estimators: Any = 100

criterion:Any = "gini"

max_depth: Any = None,

min_samples_split: Any = 2

min_samples_leaf: Any =1

min_weight_fraction_leaf: Any = 0

max_features: Any ="sqrt"

max_leaf_nodes: Any = None,

min_impurity_decrease: Any = 0.0

bootstrap:Any = True,

oob_score: Any = False

random_state: Any = None

verbose: Any =0

warm_start:Any = False

class_weight: Any = None

这些是RandomForestClassifier中的参数

①n_estimators: Any = 100,森林中树的数量,这个值越大越稳定,默认为100。

②criterion:Any = "gini",默认是基尼系数,gini指的是表示样本被分错的概率,gini参数越小,表示集合越集中,这里还可以是entropy,也就是信息熵,信息熵表示与相关性程度,熵越高,偏离的就越多,也就是离散程度大,相关性差,相反,熵越低,也就与越其接近,相关性搞,我们这里选用的是基尼系数。

③max_depth: Any = None,决定了最大深度,指的是树的层数,默认值是None,所以我们看最后的代码将max_depth的值修改了以后,所生成的图像的层数是不一样的。

④min_samples_split: Any = 2,内部节点再划分所需最小样本数,可选参数,默认是2,这个值限制了子树继续划分的条件,他表示的是最小的样本数,如果样本数小于min_samples_split,则会停止划分;如果这个参数我们输入的是一个浮点数的话,采取向上取整的原则。理论上这个值一般不用变动,只有当样本特别大的时候,建议向上调整这个值。(感觉和max_depth差不多,都是用来划分树的长度啥的)。

⑤min_samples_leaf: Any =1,这个参数与上面的参数很相似,上面的那个参数是针对于节点而言的,而这个是针对于节点后的子节点,停止划分的规则应该是一样的。

⑥min_weight_fraction_leaf: Any = 0,叶子节点最小的样本权重和,参数默认是0。如果小于这个值,则会和兄弟节点一起被剪枝。因此,一般当有很大偏差时,会引入这个参数,减小偏差。(防止有大的偏差用的)。

⑦max_features: Any ="sqrt",子集特征的个数,这个值越小,森林里的树就越不一样,默认是用sqrt来取值,auto,log2均可取值,sqrt和auto是取其开方数,而log2是取对数。

⑧max_leaf_nodes: Any = None,最大叶子节点数,参数默认是None。通过限制最大叶子节点数,可以防止过拟合。如果加了限制,算法会建立在最大叶子节点数内最优的决策树。特征少,不用管,特征多,用这个,通过交叉验证得到(我也不知道交叉验证是啥,可能是一种高深的计算吧)。

⑨min_impurity_decrease: Any = 0.0,节点划分最小不纯度,参数默认是1e-7。这个值限制了决策树的增长,如果某节点的不纯度(基尼系数,信息熵)小于这个值,则该节点不再生成子节点,即为叶子节点。(应该可以理解为criterion的下限)。

⑩bootstrap:Any = True,如果bootstrap=True,则使用替换方法绘制样本,也就是替换着抽取样本,而如果bookstrap=False,则不替换抽取样本,这个默认为True(我认为非必要就不要改这个值,这就是一种抽取样本的方式)。

⑪oob_score: Any = False,判断是否使用误差,这个值默认是False,(可能当误差比较大的时候,这个值就要编程True,一般应该是用不到的)。

⑫random_state: Any = None,默认值是None,若是使用None则是使用随机数生成器,但一般是建议设置一个整数进去(没有设置随机数,则随机出来的数随时间而变化,而设置了随机数,随机出来的数不随时间的变化而变化)。

⑬verbose: Any =0,用于判断是否生成日志信息,默认为0,也就是不生成日志信息。

⑭warm_start:Any = False,这个参数是判断是否基于上一次的结果进行运算,默认为False(当想不断提高精度的时候应该会用到这个值)。

⑮class_weight: Any = None,类别权重,参数默认是None,也可以字典、字典列表、balanced。主要是为了防止训练集某些类别的样本过多,导致训练的决策树过于偏向这些类别。类别的权重可以通过{class_label:weight}这样的格式给出,这里可以自己指定各个样本的权重,或者用balanced,使用balanced算法会自己计算权重,样本量少的类别所对应的样本权重会高。当然,如果样本类别分布没有明显的偏倚,直接不用管这个参数。(样本过多才用,过少直接不管)。

这便是随机森林内的参数,希望大家可以收获满满,早日学会随机森林算法!!!

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
随机森林是一种集成学习算法,它由多个决策树组成。每个决策树都是独立训练的,然后通过投票或平均的方式来进行预测。下面是随机森林算法常用的参数及其详解: 1. n_estimators:决策树的数量。增加这个参数可以提高模型的性能,但会增加计算时间和内存消耗。 2. criterion:衡量分裂质量的指标。常用的指标有"gini"和"entropy"。默认值为"gini",表示使用基尼系数来进行分裂。 3. max_depth:决策树的最大深度。限制树的深度可以防止过拟合。如果不设置该参数,则树会生长到所有叶子节点都是纯净的或者包含的样本数小于min_samples_split。 4. min_samples_split:分裂一个内部节点所需的最小样本数。如果某个内部节点的样本数小于该值,则不会再继续分裂。 5. min_samples_leaf:叶子节点上所需的最小样本数。如果某个叶子节点的样本数小于该值,则会和兄弟节点一起被剪枝。 6. max_features:寻找最佳分割时考虑的特征数量。可以是一个固定的整数值,也可以是一个浮点数(比如0.5)表示特征数量的百分比。 7. bootstrap:是否使用自助采样法。如果设置为True,则每个决策树的训练集都是通过有放回地从原始训练集采样得到的。 8. oob_score:是否使用袋外样本来评估模型的性能。袋外样本是指在自助采样过程没有被采样到的样本。 9. random_state:随机种子。设置该参数可以保证每次运行时得到相同的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

什么不到的小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值