首页 > 解决方案 > 关于通过将 random_state 值设置为整数来生成最佳决策树的困惑?

问题描述

从这里的讨论开始 ,对 scikit learn 的决策树中的 random_state 感到困惑

因为我将我的 random_state 设置为 1,所以我确实有一致的指标,因为我每次都生成相同的树。但是当random_state设置为default-->none时,那么每次生成的不同树有不同的性能指标,有的比其他的好,有的更差。那么我们如何获得最好的指标,或者换句话说,如何找出为随机状态设置的 int 值,这将为我提供具有最佳准确性和 kappa 统计数据的树。

标签: scikit-learnclassificationdecision-tree

解决方案


您不应该优化random_state. 通常,如果您希望其他人得出与您完全相同的数字(例如,复制数字等),您不希望将其分开。

让我们举一个例子来说明为什么你不应该这样做。做一个实验,在其中执行 K 折交叉验证。每个拆分都会导致不同的模型(示例中的树)。

如果我选择在此交叉验证中找到的最佳模型,我的结论将过于乐观。相反,我应该查看平均性能和波动。这些变化确实会告诉我为我的模型提供不同数据的影响是什么。它们还可以让我快速了解 2 个模型之间的性能差异是否显着:例如 2 个模型的平均性能差异为 0.01 和 std。开发。0.1 不应让您得出结论认为有一个模型比另一个更好。

关于该主题还有其他答案:https ://stats.stackexchange.com/a/264008/121348


推荐阅读