K 折验证
2024-08-30 13:05:06
为了在调节网络参数(比如训练的轮数)的同时对网络进行评估,你可以将数据划分为训练集和验证集。但由于数据点很少,验证集会非常小(比如大约100 个样本)。因此,验证分数可能会有很大波动,这取决于你所选择的验证集和训练集。也就是说,验证集的划分方式可能会造成验证分数上有很大的方差,这样就无法对模型进行可靠的评估。
在这种情况下,最佳做法是使用 K 折交叉验证。这种方法将可用数据划分为 K个分区(K 通常取 4 或 5),实例化 K 个相同的模型,将每个模型在 K-1 个分区上训练,并在剩下的一个分区上进行评估。模型的验证分数等于 K 个验证分数的平均值。
一个可能的程序示例:
k = 4 #划分成k块
num_validation_samples = len(data) // k
np.random.shuffle(data)
validation_scores = []
for fold in range(k):
validation_data = data[num_validation_samples * fold : num_validation_samples * (fold + 1)]
training_data = data[:num_validation_samples * fold] + data[num_validation_samples * (fold + 1):]
model = get_model()
model.train(training_data)
validation_score = model.evaluate(validation_data)
validation_scores.append(validation_score)
validation_score = np.average(validation_scores)
model = get_model()
model.train(data)
test_score = model.evaluate(test_data)
最新文章
- Python【2】-列表和元组
- ubuntu 14.4 中文语言包安装问题
- java中对象的初始化过程
- 记一次在Eclipse中用Axis生成webservice服务端的过程中出现的问题
- jquery中获取当前点击对象
- POJ3009 Curling 2.0(DFS)
- Android通过HTTP协议实现上传文件数据
- angularjs 选项卡tab切换(移动端用户订单状态)
- .Net 异步方法, await async 使用
- SpriteKit中的共享动作(Sharing Actions)
- 1.3 History of Android Plug-in Programing
- ELK原理与简介
- python 列表 元组 字典 集合
- 练习UML类图中的类的表示
- 25. Reverse Nodes in k-Group (JAVA)
- 根据指定条件使CheckBox 无法选中
- poj 2559(栈的应用)
- JS脚本计算从某日凌晨开始,经过了多长时间
- 堆排序,图解,C/C++实现
- IntellJ IDEA2017 springboot2.0.2中读取配置
热门文章
- python初识-环境搭建,变量,条件,循环语句
- AJAX入门介绍
- wdCP v3.3.8apache阿里云ssl证书实现智慧软文http转换https的详细操作教程
- 基于VMware Workstation下Windows server的搭建
- MySQL必知必会(正则表达式)
- [TimLinux] JavaScript 阻止父节点接收子节点事件的方法
- SpringBoot中JdbcTemplate
- 【Web技术】334- yarn、npm、cnpm 三者如何优雅的在一起使用 ?
- python学习-tuple
- 延迟队列DelayQueue take() 源码分析