python - 训练/测试、准确率和 f1 分数的 OOB 分数
问题描述
我对此真的很陌生,而且相当困惑。我正在用随机森林(分类)训练我的模型,并试图完全掌握以下概念。
据我了解:您使用训练/测试拆分或交叉验证或 oob (bootstrapping methods) 拆分模型。然后准确度分数或 f1 分数表示您的模型在测试集上的表现(准确度对于平衡类更好,f1 对于不平衡类更好)。
但是,OOB 分数代表了您的验证集有多好,那么模型对您的数据的训练有多好?
我在这里误解了什么吗?
我对准确度/ f1 分数和 OOB 分数之间的差异感到很困惑。
任何输入将不胜感激
解决方案
这些是您正在查看的 2 个不同方面:
指标,这些是您用来评估模型在一组数据上的性能的数学公式,因此您将为其提供基本事实(真实标签)和预测标签,并计算指标分数,这些指标包括:
- 准确性
- 精确
- 记起
- F1
- MSE
- 等等
方差减少,这些是您用来减少模型方差的方法,即:防止模型过度拟合数据,这些方法包括:
- 使用 2 个不同的集合(即训练/测试拆分)
- 交叉验证(如K-fold交叉验证、LOOCV等)
- Out of Bag,这个特别用于随机森林算法,以引导用于集成(森林)中每个学习器的数据。
- 等等
因此,基本上,您使用一种方法来尝试减少模型的方差,从而改进指标。
至于您的具体问题:OOB 得分对准确度得分是多少?OOB 算法创建用于训练的数据子集,然后根据这些子集的预测标签使用度量来计算分数。
推荐阅读
- mysql - Laravel 迁移无法创建关系
- regex - 正则表达式:如果特殊字符替换第一个和最后一个
- c++ - 我无法理解使用 Microsoft SEAL 创建的更好的 GaloisKey?
- ruby-on-rails - 尝试使用 react 设置 ruby on rails 应用程序时纱线出现问题
- php - 如何在目录中获取最新的 N 个文件而不获取我不需要的所有其他文件?
- java - 在优先级队列中无法识别覆盖的 compareTo()
- java - 获取 hibernate.UnknownEntityTypeException:无法在应用程序启动时找到持久性
- javascript - react-native 与 createSwitchNavigator 和 createMaterialTopTabNavigator 内存泄漏
- c# - IdentityServer4 .net core 3.1 找不到名为“ConfigurationDbContext”的 DbContext
- nginx - Nginx - 目录的别名,但为 / 返回 403