技术编程机器学习之Hyperparameter Tuning
机器学习时模型训练非常简单 , 将数据分成训练集(training set)和测试集(testing set) , 用training set训练模型 , 然后将模型应用到testing set上评估模型的好坏 。
怎么优化模型 , 使得模型更加稳定有效呢?
方法是超参数优化(Hyperparameter tuning) 。 比如我们有3个hyperparameter , 每个Hyperparameter可以设置3个数值 , 这样我们就可以得到3X3X3=27个组合 , 然后用相同的训练集分别训练27个模型 , 将这27个模型分别应用在testing set上 , 就可以比较出那组Hyperparameter组合比较好 。
但是 , 当我们把模型应用到真实场景的时候 , 往往会发现模型效果比在testing set上差很多 。 为什么会出现这样的问题呢?原因是我们调整参数的时候都是用的一套testing set , 所以我们选择的参数只是适应这个特殊的数据集 。 这时候validation set就该上场了!
这次数据就不能只分为训练集和测试集了 , 而是在训练集和测试集之外再分出验证集(validation set) 。 在Hyperparameter tuning时将训练的模型应用到validation set上挑选出最好的Hyperparameter 组合 , 然后将最好组合的模型应用到testing set上 , 得到模型的最终效果 。
这时候另外一个问题出现了 , 由于我们这次将模型应用在一个固定validation set上 , 而validation set 有可能太大或者太小 , 这次得到的模型很有可能不是模型的最优解 , 怎么办呢?我们可以用k fold cross validation来解决这个问题 。 如下图 , 首先将数据分为训练集和测试集 , 训练集再分为k份(例子中是5份) , 模型训练的时候用其中的k-1份作为训练集 , 用剩下的一份数据作为验证集 , 这样训练k个模型 , 将k次建模结果的平均数作为这个Hyperparameter组合的最终结果 , 这样得到模型的最优解 。
本文插图
【技术编程机器学习之Hyperparameter Tuning】
推荐阅读
- 前瞻网|华大推15分钟新冠快速检测盒,前瞻医疗器械产业全球周报第47期:苹果被起诉窃取血氧监测专利技术
- 极酷数码客|价格很有优势,雷军刚发布行业领先技术!小米新机紧接被曝光
- 麦田军事观察|印度抨击法国公司拒绝转让核心技术啥意义?不知花钱买不来现代化
- 沈潮汐|扬言基建技术超越中国,2天后愣住了,印度3天时间搭好一座桥
- 量子科技,爆发!有项关键技术中国已领先世界
- 狼|日本居民区摆出红眼机器“魔鬼狼”,为防熊出没
- 葡萄|到底要不要去葡萄皮?果酒机器:酿葡萄酒
- 歼-20|又一国看上国产战机,关键部位采用歼-20技术,一口气要采购40架
- 一品汽车|“备胎上位”道阻且长,氢燃料电池技术储备不足
- 追梦格林|追梦格林谈球场心态:心态就是一项技术,我给不了杜兰特我的心态