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 相关文章推荐
python实现可将字符转换成大写的tcp服务器实例
Apr 29 Python
Python实现提取谷歌音乐搜索结果的方法
Jul 10 Python
Python可变参数用法实例分析
Apr 02 Python
python3实现全角和半角字符转换的方法示例
Sep 21 Python
恢复百度云盘本地误删的文件脚本(简单方法)
Oct 21 Python
pip安装Python库时遇到的问题及解决方法
Nov 23 Python
python实现简易内存监控
Jun 21 Python
Django中的文件的上传的几种方式
Jul 23 Python
python tkinter组件使用详解
Sep 16 Python
在django中form的label和verbose name的区别说明
May 20 Python
python输入中文的实例方法
Sep 14 Python
学生如何注册Pycharm专业版以及pycharm的安装
Sep 24 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函数常用用法小结
2010/02/08 PHP
php中使用Akismet防止垃圾评论的代码
2011/06/10 PHP
PHP中date()日期函数有关参数整理
2011/07/19 PHP
php合并js请求的例子
2013/11/01 PHP
ThinkPHP的URL重写问题
2014/06/22 PHP
基于JQuery的列表拖动排序实现代码
2013/10/01 Javascript
JavaScript将Web页面内容导出到Word及Excel的方法
2015/02/13 Javascript
javascript实现简单的省市区三级联动
2015/05/14 Javascript
JavaScript中的对象和原型(一)
2016/08/12 Javascript
Web打印解决方案之普通报表打印功能
2016/08/29 Javascript
AngularJs directive详解及示例代码
2016/09/01 Javascript
vue组件实例解析
2017/01/10 Javascript
微信小程序实战之轮播图(3)
2017/04/17 Javascript
JavaScript使用ZeroClipboard操作剪切板
2017/05/10 Javascript
IE8中jQuery.load()加载页面不显示的原因
2018/11/15 jQuery
详解超简单的react服务器渲染(ssr)入坑指南
2019/02/28 Javascript
vue中使用mxgraph的方法实例代码详解
2019/05/17 Javascript
了解JavaScript中的选择器
2019/05/24 Javascript
vue elementUI 表单校验功能之数组多层嵌套
2019/06/04 Javascript
微信小程序本地存储实现每日签到、连续签到功能
2019/10/09 Javascript
[03:01]完美世界DOTA2联赛PWL S2 集锦第二期
2020/12/03 DOTA
windows系统下Python环境的搭建(Aptana Studio)
2017/03/06 Python
python笔记之mean()函数实现求取均值的功能代码
2019/07/05 Python
利用python中的matplotlib打印混淆矩阵实例
2020/06/16 Python
TripAdvisor土耳其网站:全球知名旅行社区,真实旅客评论
2017/04/17 全球购物
Nili Lotan官网:Nili Lotan同名品牌
2018/01/07 全球购物
YOOX台湾:意大利奢侈品电商
2018/10/13 全球购物
雷曼兄弟的五金店:Lehman’s Hardware Store
2019/04/10 全球购物
餐饮管理自我介绍信
2014/01/15 职场文书
爱之链教学反思
2014/04/30 职场文书
连锁超市项目计划书
2014/09/15 职场文书
党校党性分析材料
2014/12/19 职场文书
JS ES6异步解决方案
2021/04/29 Javascript
简述Java中throw-throws异常抛出
2021/08/07 Java/Android
Grafana可视化监控系统结合SpringBoot使用
2022/04/19 Redis
Smart 2 车辆代号 HC11 全新谍照曝光
2022/04/21 数码科技