keras中模型训练class_weight,sample_weight区别说明


Posted in Python onMay 23, 2020

keras 中fit(self, x=None, y=None, batch_size=None, epochs=1, verbose=1, callbacks=None, validation_split=0.0,

validation_data=None, shuffle=True, class_weight=None, sample_weight=None, initial_epoch=0,

steps_per_epoch=None, validation_steps=None)

官方文档中:

class_weight:字典,将不同的类别映射为不同的权值,该参数用来在训练过程中调整损失函数(只能用于训练)。该参数在处理非平衡的训练数据(某些类的训练样本数很少)时,可以使得损失函数对样本数不足的数据更加关注。

sample_weight:权值的numpy array,用于在训练时调整损失函数(仅用于训练)。可以传递一个1D的与样本等长的向量用于对样本进行1对1的加权,或者在面对时序数据时,传递一个的形式为(samples,sequence_length)的矩阵来为每个时间步上的样本赋不同的权。这种情况下请确定在编译模型时添加了sample_weight_mode='temporal'。

class_weight---主要针对的上数据不均衡问题,比如:异常检测的二项分类问题,异常数据仅占1%,正常数据占99%; 此时就要设置不同类对loss的影响。

sample_weigh---主要解决的是样本质量不同的问题,比如前1000个样本的可信度,那么它的权重就要高,后1000个样本可能有错、不可信,那么权重就要调低。

补充知识:Keras 中数据不均衡时,metrics,class_weight的设置方法

当数据处理不均衡时,比如处理癌症训练问题,有病样本很少,参考:

http://www.deepideas.net/unbalanced-classes-machine-learning/

主要从两个方面着手:

一、loss函数的权重问题

训练时,设置的权重:

class_weight={
  1: n_non_cancer_samples / n_cancer_samples * t
}

二、编译时设置模型的metrics

def sensitivity(y_true, y_pred):
  true_positives = K.sum(K.round(K.clip(y_true * y_pred, 0, 1)))
  possible_positives = K.sum(K.round(K.clip(y_true, 0, 1)))
  return true_positives / (possible_positives + K.epsilon())

def specificity(y_true, y_pred):
  true_negatives = K.sum(K.round(K.clip((1-y_true) * (1-y_pred), 0, 1)))
  possible_negatives = K.sum(K.round(K.clip(1-y_true, 0, 1)))
  return true_negatives / (possible_negatives + K.epsilon())
model.compile(
  loss='binary_crossentropy',
  optimizer=RMSprop(0.001),
  metrics=[sensitivity, specificity]
)

以上这篇keras中模型训练class_weight,sample_weight区别说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python random模块(获取随机数)常用方法和使用例子
May 13 Python
python读取TXT到数组及列表去重后按原来顺序排序的方法
Jun 26 Python
在Python中Dataframe通过print输出多行时显示省略号的实例
Dec 22 Python
详解python实现小波变换的一个简单例子
Jul 18 Python
python内存监控工具memory_profiler和guppy的用法详解
Jul 29 Python
利用 Flask 动态展示 Pyecharts 图表数据方法小结
Sep 04 Python
python3.6、opencv安装环境搭建过程(图文教程)
Nov 05 Python
python环境下安装opencv库的方法
Mar 05 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
Mar 11 Python
python中有函数重载吗
May 28 Python
详解python程序中的多任务
Sep 16 Python
python利用xlsxwriter模块 操作 Excel
Oct 14 Python
浅谈keras中的Merge层(实现层的相加、相减、相乘实例)
May 23 #Python
Keras实现将两个模型连接到一起
May 23 #Python
keras 获取某层输出 获取复用层的多次输出实例
May 23 #Python
给keras层命名,并提取中间层输出值,保存到文档的实例
May 23 #Python
keras小技巧——获取某一个网络层的输出方式
May 23 #Python
keras自定义回调函数查看训练的loss和accuracy方式
May 23 #Python
Keras设定GPU使用内存大小方式(Tensorflow backend)
May 22 #Python
You might like
php 随机记录mysql rand()造成CPU 100%的解决办法
2010/05/18 PHP
PHP将整个网站生成HTML纯静态网页的方法总结
2012/02/05 PHP
保存到桌面、设为桌面且带图标的PHP代码
2013/11/19 PHP
php用户注册时常用的检验函数实例总结
2014/12/22 PHP
Zend Framework教程之Zend_Registry对象用法分析
2016/03/22 PHP
Yii2使用$this->context获取当前的Module、Controller(控制器)、Action等
2017/03/29 PHP
JavaScript asp.net 获取当前超链接中的文本
2009/04/14 Javascript
避免 showModalDialog 弹出新窗体的原因分析
2010/05/31 Javascript
js两行代码按指定格式输出日期时间
2011/10/21 Javascript
js 关于=+与+=日期函数使用说明(赋值运算符)
2011/11/15 Javascript
jQuery点击后一组图片左右滑动的实现代码
2012/08/16 Javascript
js从10种颜色中随机取色实现每次取出不同的颜色
2013/10/23 Javascript
JS实现超简单的鼠标拖动效果
2015/11/02 Javascript
javascript动态添加checkbox复选框的方法
2015/12/23 Javascript
限制复选框最多选择项的实现代码
2016/05/30 Javascript
微信小程序 详解Page中data数据操作和函数调用
2017/01/12 Javascript
谈谈React中的Render Props模式
2018/12/06 Javascript
[35:43]2018DOTA2亚洲邀请赛 4.1 小组赛B组 paiN vs Effect
2018/04/03 DOTA
windows下python模拟鼠标点击和键盘输示例
2014/02/28 Python
Python写的Tkinter程序屏幕居中方法
2015/03/10 Python
Django框架中数据的连锁查询和限制返回数据的方法
2015/07/17 Python
Python实现读取机器硬件信息的方法示例
2018/06/09 Python
使用Numpy读取CSV文件,并进行行列删除的操作方法
2018/07/04 Python
python pcm音频添加头转成Wav格式文件的方法
2019/01/09 Python
使用python实现unix2dos和dos2unix命令的例子
2019/08/13 Python
在Sublime Editor中配置Python环境的详细教程
2020/05/03 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
2020/05/10 Python
英国家喻户晓的高街品牌:River Island
2017/11/28 全球购物
马来西亚户外装备商店:PTT Outdoor
2019/07/13 全球购物
大学生涯自我鉴定
2014/01/16 职场文书
父亲追悼会答谢词
2014/01/17 职场文书
死亡证明书样本说明
2014/10/18 职场文书
群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
Python中基础数据类型 set集合知识点总结
2021/08/02 Python
vue3引入highlight.js进行代码高亮的方法实例
2022/04/08 Vue.js
python运算符之与用户交互
2022/04/13 Python