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中的数据存储到系统本地的简单方法
Apr 11 Python
Windows系统下使用flup搭建Nginx和Python环境的方法
Dec 25 Python
总结python爬虫抓站的实用技巧
Aug 09 Python
Python使用pip安装pySerial串口通讯模块
Apr 20 Python
django与小程序实现登录验证功能的示例代码
Feb 19 Python
对python中不同模块(函数、类、变量)的调用详解
Jul 16 Python
python:按行读入,排序然后输出的方法
Jul 20 Python
对django后台admin下拉框进行过滤的实例
Jul 26 Python
python实现引用其他路径包里面的模块
Mar 09 Python
使用卷积神经网络(CNN)做人脸识别的示例代码
Mar 27 Python
Keras中的两种模型:Sequential和Model用法
Jun 27 Python
python os.rename实例用法详解
Dec 06 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数据缓存技术
2007/02/14 PHP
php猜单词游戏
2015/09/29 PHP
JavaScript高级程序设计 事件学习笔记
2011/09/10 Javascript
jQuery实现简易的天天爱消除小游戏
2015/10/16 Javascript
判断JS对象是否拥有某属性的方法推荐
2016/05/12 Javascript
在线引用最新jquery文件的实现方法
2016/08/26 Javascript
js读取json文件片段中的数据实例
2017/03/09 Javascript
node.js+jQuery实现用户登录注册AJAX交互
2017/04/28 jQuery
基于vue+ bootstrap实现图片上传图片展示功能
2017/05/17 Javascript
JavaScript偏函数与柯里化实例详解
2019/03/27 Javascript
jquery validate 实现动态增加/删除验证规则操作示例
2019/10/28 jQuery
JavaScript实现Excel表格效果
2020/02/07 Javascript
javascript设计模式 ? 代理模式原理与用法实例分析
2020/04/16 Javascript
[00:53]2015国际邀请赛 中国区预选赛一触即发
2015/05/14 DOTA
python 示例分享---逻辑推理编程解决八皇后
2014/07/20 Python
python中的lambda表达式用法详解
2016/06/22 Python
python 对类的成员函数开启线程的方法
2019/01/22 Python
基于Django统计博客文章阅读量
2019/10/29 Python
python 实现将小图片放到另一个较大的白色或黑色背景图片中
2019/12/12 Python
浅析python 定时拆分备份 nginx 日志的方法
2020/04/27 Python
Python闭包与装饰器原理及实例解析
2020/04/30 Python
Python基于pip实现离线打包过程详解
2020/05/15 Python
李维斯牛仔裤荷兰官方网站:Levi’s NL
2020/08/23 全球购物
医学生职业规划范文
2014/01/05 职场文书
黄河的主人教学反思
2014/02/07 职场文书
酒店值班经理的工作职责范本
2014/02/18 职场文书
人事专员的岗位职责
2014/03/01 职场文书
2014庆六一活动方案
2014/03/02 职场文书
领导接待方案
2014/03/13 职场文书
蓝颜请假条
2014/04/11 职场文书
阳光体育活动总结
2014/04/30 职场文书
幼儿园开学家长寄语(2015秋季)
2015/05/27 职场文书
golang中的struct操作
2021/11/11 Golang
基于Python编写简易版的天天跑酷游戏的示例代码
2022/03/23 Python
SQL Server Agent 服务无法启动
2022/04/20 SQL Server
Pygame游戏开发之太空射击实战敌人精灵篇
2022/08/05 Python