keras用auc做metrics以及早停实例


Posted in Python onJuly 02, 2020

我就废话不多说了,大家还是直接看代码吧~

import tensorflow as tf
from sklearn.metrics import roc_auc_score

def auroc(y_true, y_pred):
 return tf.py_func(roc_auc_score, (y_true, y_pred), tf.double)
# Build Model...

model.compile(loss='categorical_crossentropy', optimizer='adam',metrics=['accuracy', auroc])

完整例子:

def auc(y_true, y_pred):
 auc = tf.metrics.auc(y_true, y_pred)[1]
 K.get_session().run(tf.local_variables_initializer())
 return auc

def create_model_nn(in_dim,layer_size=200):
 model = Sequential()
 model.add(Dense(layer_size,input_dim=in_dim, kernel_initializer='normal'))
 model.add(BatchNormalization())
 model.add(Activation('relu'))
 model.add(Dropout(0.3))
 for i in range(2):
  model.add(Dense(layer_size))
  model.add(BatchNormalization())
  model.add(Activation('relu'))
  model.add(Dropout(0.3))
 model.add(Dense(1, activation='sigmoid'))
 adam = optimizers.Adam(lr=0.01)
 model.compile(optimizer=adam,loss='binary_crossentropy',metrics = [auc]) 
 return model
####cv train
folds = StratifiedKFold(n_splits=5, shuffle=False, random_state=15)
oof = np.zeros(len(df_train))
predictions = np.zeros(len(df_test))
for fold_, (trn_idx, val_idx) in enumerate(folds.split(df_train.values, target2.values)):
 print("fold n°{}".format(fold_))
 X_train = df_train.iloc[trn_idx][features]
 y_train = target2.iloc[trn_idx]
 X_valid = df_train.iloc[val_idx][features]
 y_valid = target2.iloc[val_idx]
 model_nn = create_model_nn(X_train.shape[1])
 callback = EarlyStopping(monitor="val_auc", patience=50, verbose=0, mode='max')
 history = model_nn.fit(X_train, y_train, validation_data = (X_valid ,y_valid),epochs=1000,batch_size=64,verbose=0,callbacks=[callback])
 print('\n Validation Max score : {}'.format(np.max(history.history['val_auc'])))
 predictions += model_nn.predict(df_test[features]).ravel()/folds.n_splits

补充知识:Keras可使用的评价函数

1:binary_accuracy(对二分类问题,计算在所有预测值上的平均正确率)

binary_accuracy(y_true, y_pred)

2:categorical_accuracy(对多分类问题,计算在所有预测值上的平均正确率)

categorical_accuracy(y_true, y_pred)

3:sparse_categorical_accuracy(与categorical_accuracy相同,在对稀疏的目标值预测时有用 )

sparse_categorical_accuracy(y_true, y_pred)

4:top_k_categorical_accuracy(计算top-k正确率,当预测值的前k个值中存在目标类别即认为预测正确 )

top_k_categorical_accuracy(y_true, y_pred, k=5)

5:sparse_top_k_categorical_accuracy(与top_k_categorical_accracy作用相同,但适用于稀疏情况)

sparse_top_k_categorical_accuracy(y_true, y_pred, k=5)

以上这篇keras用auc做metrics以及早停实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
17个Python小技巧分享
Jan 23 Python
Python实现去除代码前行号的方法
Mar 10 Python
Python3实现从文件中读取指定行的方法
May 22 Python
Python的Django框架可适配的各种数据库介绍
Jul 15 Python
Windows 7下Python Web环境搭建图文教程
Mar 20 Python
Python IDLE清空窗口的实例
Jun 25 Python
flask入门之文件上传与邮件发送示例
Jul 18 Python
Python QQBot库的QQ聊天机器人
Jun 19 Python
基于python求两个列表的并集.交集.差集
Feb 10 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
Feb 15 Python
python爬取新闻门户网站的示例
Apr 25 Python
Python批量将csv文件转化成xml文件的实例
May 10 Python
keras 简单 lstm实例(基于one-hot编码)
Jul 02 #Python
Python装饰器结合递归原理解析
Jul 02 #Python
Python OpenCV读取中文路径图像的方法
Jul 02 #Python
keras.utils.to_categorical和one hot格式解析
Jul 02 #Python
python 使用多线程创建一个Buffer缓存器的实现思路
Jul 02 #Python
浅谈keras中的keras.utils.to_categorical用法
Jul 02 #Python
Python使用OpenPyXL处理Excel表格
Jul 02 #Python
You might like
php过滤html中的其他网站链接的方法(域名白名单功能)
2014/04/24 PHP
php实现向javascript传递数组的方法
2015/07/27 PHP
用PHP去掉文件头的Unicode签名(BOM)方法
2017/06/22 PHP
laravel批量生成假数据的方法
2019/10/09 PHP
一段多浏览器的"复制到剪贴板"javascript代码
2007/03/27 Javascript
JavaScript开发时的五个注意事项
2007/12/08 Javascript
dojo随手记 gird组件引用
2011/02/24 Javascript
自己写的兼容ie和ff的在线文本编辑器类似ewebeditor
2012/12/12 Javascript
用js设置下拉框为只读的小技巧
2014/04/10 Javascript
多个checkbox被选中时如何判断是否有自己想要的
2014/09/22 Javascript
node.js 使用ejs模板引擎时后缀换成.html
2015/04/22 Javascript
JavaScript实现列表分页功能特效
2015/05/15 Javascript
jQuery Validate初步体验(二)
2015/12/12 Javascript
jQuery动画显示和隐藏效果实例演示(附demo源码下载)
2015/12/31 Javascript
详解AngularJS中的filter过滤器用法
2016/01/04 Javascript
【JS+CSS3】实现带预览图幻灯片效果的示例代码
2016/03/17 Javascript
Bootstrap源码学习笔记之bootstrap进度条
2016/12/24 Javascript
使用jsonp实现跨域获取数据实例讲解
2016/12/25 Javascript
JS对象是否拥有某属性如何判断
2017/02/03 Javascript
JS实现的判断方法、变量是否存在功能示例
2020/03/28 Javascript
解决React在安装antd之后出现的Can't resolve './locale'问题(推荐)
2020/05/03 Javascript
nuxt.js服务端渲染中axios和proxy代理的配置操作
2020/11/06 Javascript
Python随机读取文件实现实例
2017/05/25 Python
Django 导出 Excel 代码的实例详解
2017/08/11 Python
python实现求解列表中元素的排列和组合问题
2018/03/15 Python
对Python 获取类的成员变量及临时变量的方法详解
2019/01/22 Python
python的pygal模块绘制反正切函数图像方法
2019/07/16 Python
Django ORM 常用字段与不常用字段汇总
2019/08/09 Python
彻底搞懂python 迭代器和生成器
2020/09/07 Python
三星新西兰官网:Samsung新西兰
2019/03/05 全球购物
小学运动会广播稿200字(十二篇)
2014/01/14 职场文书
运动会通讯稿50字
2014/01/30 职场文书
社团文化节策划书
2014/02/01 职场文书
中餐厅经理岗位职责
2014/04/11 职场文书
中职生自荐信范文
2014/06/15 职场文书
幼师自荐信范文(2016推荐篇)
2016/01/28 职场文书