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制作websocket服务器实例分享
Nov 20 Python
python如何获取服务器硬件信息
May 11 Python
Python基础学习之常见的内建函数整理
Sep 06 Python
Python实现PS滤镜的万花筒效果示例
Jan 23 Python
Python中的defaultdict与__missing__()使用介绍
Feb 03 Python
解决pycharm无法调用pip安装的包问题
May 18 Python
Python正则表达式实现简易计算器功能示例
May 07 Python
简单了解python代码优化小技巧
Jul 08 Python
详谈tensorflow gfile文件的用法
Feb 05 Python
如何使用Python抓取网页tag操作
Feb 14 Python
Django用户认证系统如何实现自定义
Nov 12 Python
python数据可视化JupyterLab实用扩展程序Mito
Nov 20 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中的MVC模式运用技巧
2007/05/03 PHP
php 无极分类(递归)实现代码
2010/01/05 PHP
php自定义函数call_user_func和call_user_func_array详解
2011/07/14 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
2018/03/02 PHP
PHP实现数组根据某个单元字段排序操作示例
2018/08/01 PHP
统计PHP目录中的文件数方法
2019/03/05 PHP
php写入文件不覆盖的实例讲解
2019/09/17 PHP
经验几则 推荐
2006/09/05 Javascript
jquery jqPlot API 中文使用教程(非常强大的图表工具)
2011/08/15 Javascript
javascript基础之查找元素的详细介绍(访问节点)
2013/07/05 Javascript
js 限制input只能输入数字、字母和汉字等等
2013/12/18 Javascript
JS创建自定义表格具体实现
2014/02/11 Javascript
JavaScript 实现打印,打印预览,打印设置
2014/12/30 Javascript
JavaScript实现16进制颜色值转RGB的方法
2015/02/09 Javascript
JavaScript设计模式初探
2016/01/07 Javascript
jquery.serialize() 函数语法及简单实例
2016/07/08 Javascript
详解Angular.js指令中scope类型的几种特殊情况
2017/02/21 Javascript
vue-router动态设置页面title的实例讲解
2018/08/30 Javascript
分享5个小技巧让你写出更好的 JavaScript 条件语句
2018/10/20 Javascript
vue中使用 pako.js 解密 gzip加密字符串的方法
2019/06/10 Javascript
layui实现form表单同时提交数据和文件的代码
2019/10/25 Javascript
在项目vue中使用echarts的操作步骤
2020/09/07 Javascript
[01:00:14]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第二场 2月28日
2021/03/11 DOTA
Python编写电话薄实现增删改查功能
2016/05/07 Python
Django实现WebSSH操作物理机或虚拟机的方法
2019/11/06 Python
selenium 多窗口切换的实现(windows)
2020/01/18 Python
美国眼镜网站:EyeBuyDirect
2017/04/13 全球购物
BIBLOO波兰:捷克的一家在线服装店
2018/03/09 全球购物
荷兰睡眠专家:Beter Bed
2020/11/23 全球购物
自主招生自荐信格式
2013/12/03 职场文书
翻译学院毕业生自荐书
2014/02/02 职场文书
鸿星尔克广告词
2014/03/21 职场文书
公司授权委托书范文
2014/09/21 职场文书
2015年人事工作总结范文
2015/04/09 职场文书
最美劳动诗,致敬所有的劳动者!
2019/07/12 职场文书
Win11运行cmd提示“请求的操作需要提升”的两种解决方法
2022/07/07 数码科技