灵光一闪,突然明白K折验证。
时间:2022-07-25
本文章向大家介绍灵光一闪,突然明白K折验证。,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在机器学习和深度学习中,过拟合是一个很可怕的东西。为了验证模型的精度和有效性,避免过拟合就很重要很重要。通常的做法是对数据随机打乱,一部分用于训练和测试,一部分留做验证。
num_validation_samples = 10000
np.random.shuffle(data)
validation_data = data[:num_validation_samples]
data = data[num_validation_samples:]
training_data = data[:]
model = get_model()
model.train(training_data)
validation_score = model.evaluate(validation_data)
# 现在你可以调节模型、重新训练、评估,然后再次调节……
model = get_model()
model.train(np.concatenate([training_data,
validation_data]))
test_score = model.evaluate(test_data)
但是,万一你的数据很少呢?就容易出现验证的结果缺乏统计学依据,也就是大家会觉得你的结果不可信。好比一个人吃了一样东西,拉肚子了,但不能就说这东西有问题,也可能是昨天晚上你着凉了,或者你过敏了;但是如果1000个人吃这个东西都拉肚子了,基本可以确认这东西有问题。这就是统计学的依据。
所以,K折验证就出现了:
简单用图就是这么个意思。相当于数据量很少,但是你把数据分成3份,其中验证数据就在这3份中轮流坐庄。
k = 4
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)
我是彻底理解了。
- 反馈型神经网络
- (Head First 设计模式)学习笔记(1)
- [c#]Webservice中如何实现方法重载(overload)以及如何传送不能序列化的对象作参数
- Web.Config文件配置小记
- [原创]web application中使用Profile应该注意的问题
- MRTG FOR WINDOWS 安装指南
- 几种常见复合sql查询语句的linq写法[继续补充中]
- [原创]在msmq3.0中使用http协议发送消息
- 微信小程序开发探索之路
- 前端周记 2017 年终总结
- asp.net mvc中的路径选择
- MVC中实现加载更多
- 在ASP.NET MVC 中获取当前URL、controller、action
- [转自Scott]ASP.NET MVC框架(第四部分): 处理表单编辑和提交场景
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Go by Example 中文版: 读文件
- Apache Shiro权限框架理论介绍
- 【技术创作101训练营】Linux服务器的晴雨表—top命令
- 微服务之间的通信的方式
- Python从入门到熟练(7):函数
- Django调用百度地图api在地图上批量增加标记点
- Spring Cloud Config - 统一配置中心
- 从头分析一则traceId穿透问题(附解决方案)
- openldap的介绍与安装
- docker搭建环境如何配置端口
- Go语言入门(二)-流程控制
- 【Java8新特性】02 函数式接口和Lambda表达式实战练习:环绕执行模式使行为参数化
- Go语言入门(三)数组和切片
- 一天一大 leet(回文数)难度:简单 DAY-10
- 如何使用docker搭建PHP环境