gpt4 book ai didi

machine-learning - 为 sklearn 算法选择 random_state

转载 作者:行者123 更新时间:2023-11-30 08:22:51 26 4
gpt4 key购买 nike

据我所知,random_state 用于各种 sklearn 算法中,以打破具有相同度量值的不同预测变量(树)之间的联系(例如在 GradientBoosting 中)。但文档没有对此进行澄清或详细说明。喜欢

1) 这些种子还用在什么地方来生成随机数?对于 RandomForestClassifier 来说,随机数可用于查找一组随机特征来构建预测器。使用子采样的算法可以使用随机数来获得不同的子样本。相同的种子 (random_state) 可以/是否在多个随机数生成中发挥作用?

我主要关心的是

2) 这个 random_state 变量的影响有多大。 ?该值能否对预测(分类或回归)产生很大影响?如果是,我应该更关心什么样的数据集?还是更注重稳定性而不是结果质量?

3)如果它可以产生很大的影响,那么如何最好地选择 random_state?如果没有直觉,很难进行网格搜索。特别是如果数据集使得一个 CV 可能需要一个小时。

4) 如果动机只是为了在重复运行中获得稳定的模型结果/评估和交叉验证分数,那么如果我之前设置 random.seed(X) 是否会产生相同的效果我使用任何算法(并将 random_state 用作 None)。

5) 假设我在 GradientBoosted 分类器上使用 random_state 值,并且我通过交叉验证来发现模型的优点(每次都在验证集上评分)。一旦满意,我将在整个训练集上训练我的模型,然后将其应用到测试集上。现在,在交叉验证中,完整的训练集比较小的训练集拥有更多的实例。因此,与 cv 循环中发生的情况相比,random_state 值现在可以导致完全不同的行为(特征和单个预测变量的选择)。类似地,诸如最小样本叶等之类的东西也可能导致较差的模型,因为设置是关于 CV 中的实例数量,而实际实例数量更多。这是正确的理解吗?有什么方法可以防止这种情况发生?

最佳答案

是的,随机种子的选择会影响您的预测结果,正如您在第四个问题中指出的那样,这种影响实际上是不可预测的。

防止偶然发生好或坏的预测的常见方法是训练多个模型(基于不同的随机状态)并以有意义的方式对它们的预测进行平均。同样,您可以将交叉验证视为一种通过对多个训练/测试数据分割的性能进行平均来估计模型“真实”性能的方法。

关于machine-learning - 为 sklearn 算法选择 random_state,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26097921/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com