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实现的解析crontab配置文件代码
Jun 30 Python
尝试使用Python多线程抓取代理服务器IP地址的示例
Nov 09 Python
利用Python获取赶集网招聘信息前篇
Apr 18 Python
python实现画圆功能
Jan 25 Python
Python django使用多进程连接mysql错误的解决方法
Oct 08 Python
Pycharm无法显示动态图片的解决方法
Oct 28 Python
python实现简单名片管理系统
Nov 30 Python
python爬虫之遍历单个域名
Nov 20 Python
将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例
Jan 04 Python
flask 实现上传图片并缩放作为头像的例子
Jan 09 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
Mar 04 Python
如何基于pandas读取csv后合并两个股票
Sep 25 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 GeoIP的使用教程
2011/03/09 PHP
php实现设计模式中的单例模式详解
2014/10/11 PHP
php获取、检查类名、函数名、方法名的函数方法
2015/06/25 PHP
在PHP语言中使用JSON和将json还原成数组的方法
2016/07/19 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
2017/02/15 PHP
[推荐]javascript 面向对象技术基础教程
2009/03/03 Javascript
Jquery EasyUI中弹出确认对话框以及加载效果示例代码
2014/02/13 Javascript
angularjs实现与服务器交互分享
2014/06/24 Javascript
nodejs命令行参数处理模块commander使用实例
2014/09/17 NodeJs
JavaScript获取网页中第一个图片id的方法
2015/04/03 Javascript
jquery实现触发时更新下拉列表内容的方法
2015/12/02 Javascript
利用原生js和jQuery实现单选框的勾选和取消操作的方法
2016/09/04 Javascript
微信小程序 开发之顶部导航栏实例代码
2017/02/23 Javascript
JS基于对象的链表实现与使用方法示例
2019/01/31 Javascript
Vue的v-model的几种修饰符.lazy,.number和.trim的用法说明
2020/08/05 Javascript
jquery插件实现轮播图效果
2020/10/19 jQuery
[01:33]真香警告!DOTA2勇士令状不朽珍藏Ⅱ饰品欣赏
2018/06/26 DOTA
Python实现的各种常见分布算法示例
2018/12/13 Python
Python进阶之自定义对象实现切片功能
2019/01/07 Python
numpy和pandas中数组的合并、拉直和重塑实例
2019/06/28 Python
Python叠加两幅栅格图像的实现方法
2019/07/05 Python
python 对象真假值的实例(哪些视为False)
2020/12/11 Python
Pytorch如何切换 cpu和gpu的使用详解
2021/03/01 Python
CSS3轻松实现清新 Loading 效果的简单实例
2016/06/06 HTML / CSS
美国最大点评网站:Yelp
2018/02/14 全球购物
时尚圣经:The Fashion Bible
2019/03/03 全球购物
苏格兰在线威士忌商店:The Whisky Barrel
2019/05/07 全球购物
2019年.net常见面试问题
2012/02/12 面试题
行政助理岗位职责
2013/11/10 职场文书
期末学生评语大全
2014/04/24 职场文书
机电专业求职信
2014/06/14 职场文书
国庆节活动总结
2014/08/26 职场文书
党员批评与自我批评材料
2014/10/14 职场文书
党员群众路线教育实践活动学习笔记
2014/11/05 职场文书
质量保证书格式模板
2015/02/27 职场文书
2015年司法局工作总结
2015/05/22 职场文书