python - Python 中的 GridsearchCV
问题描述
我有一个概念性问题,希望有人能澄清一下。假设CV=10
在GridSearchCV中运行时,模型在 9 个分区上进行训练并在剩余的 1 个分区中进行测试。
问题是这里更相关的是什么?来自 9 个分区的平均 AUC 结果或测试分区的平均 AUC。如果这 2 个(9 对 1 分区)上的 AUC 相距很远,假设相距超过 20% 会怎样。这对经过训练的模型的功效有何影响?关于 AUC 可以走多远的任何经验法则?通常报告的模型性能度量是什么,9 个分区 AUC(训练)或测试分区?
谢谢!
解决方案
我假设它是机器学习模型(例如神经网络)
当在 gridsearchCV 中运行假设 CVfold =10 时,模型在 9 个分区上进行训练并在剩余的 1 个分区中进行测试。
avg auc 结果来自 9 个分区或 avg
通常,他的模型在由 9 个任意分区组成的 1 个分区(训练集)上进行训练。因此,没有 9 个分区的平均 AUC 这样的东西,只有一个火车 AUC。如果您确定在 1 个分区上进行训练、计算指标、在第 2 个分区上进行训练、计算指标等等,直到您从 9 个分区获得指标结果并对其进行平均,则此话不成立。
关键问题:
问题是这里更相关的是什么?
取决于你要回答的问题是什么。测试分区的结果应该会告诉您或多或少的性能,除非您将模型发布给全世界(对看不见的数据进行预测)。但是,当您使用 CV 时很容易引入某种数据泄漏,数据泄漏会降低结果的可信度。
训练和测试之间的比较应该告诉您是过度拟合模型还是应该使模型更拟合。我不知道差异有多大(建议进一步阅读关于过度拟合)的经验法则,但我从未见过有人接受 20% 的差异。
推荐阅读
- database - 谁能帮助如何为默认的颤振计数器应用程序实现 Sqflite?
- google-analytics - 目标中缺少一步
- javascript - 如何将单元格范围内的值更改为谷歌 AppScript 中的数据数组?
- flutter - 每次用户使用来自 firebase 的动态链接的应用程序安装我的应用程序时,我如何检测和奖励?
- reactjs - 开玩笑需要'@material-ui/icons'给出未定义
- git - Git 通过文件扩展名在本地忽略文件
- laravel - 新服务器上的 Laravel 邮件配置错误
- apache-kafka - 每日备份 kafka avro 模式
- python - Pandas 为列表元素返回具有重复数据范围的 df
- python - 从 Python 中的 multiprocessing.pool.ThreadPool 获取线程索引