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 获取et和excel的版本号
Apr 09 Python
python使用any判断一个对象是否为空的方法
Nov 19 Python
python中requests小技巧
May 10 Python
Python定义一个跨越多行的字符串的多种方法小结
Jul 19 Python
利用Python如何批量修改数据库执行Sql文件
Jul 29 Python
Python for循环与range函数的使用详解
Mar 23 Python
python代码打印100-999之间的回文数示例
Nov 24 Python
Python 实现使用空值进行赋值 None
Mar 12 Python
如何基于Python Matplotlib实现网格动画
Jul 20 Python
Anaconda+spyder+pycharm的pytorch配置详解(GPU)
Oct 18 Python
python 利用matplotlib在3D空间绘制二次抛物面的案例
Feb 06 Python
Python中快速掌握Data Frame的常用操作
Mar 31 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反射类ReflectionClass用法分析
2016/05/12 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
求得div 下 img的src地址的js代码
2007/02/28 Javascript
比Jquery的document.ready更快的方法
2010/04/28 Javascript
imgAreaSelect 中文文档帮助说明
2011/10/08 Javascript
Javascript selection的兼容性写法介绍
2013/12/20 Javascript
javascript随机之洗牌算法深入分析
2014/06/07 Javascript
JavaScript时间转换处理函数
2015/04/14 Javascript
JQuery+CSS实现图片上放置按钮的方法
2015/05/29 Javascript
JQuery菜单效果的两个实例讲解(3)
2015/09/17 Javascript
js判断手机号运营商的方法
2015/10/23 Javascript
js读取并解析JSON类型数据的方法
2015/11/14 Javascript
实例详解jQuery Mockjax 插件模拟 Ajax 请求
2016/01/12 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
详解如何使用webpack+es6开发angular1.x
2017/08/16 Javascript
vue-cli项目中怎么使用mock数据
2017/09/27 Javascript
vue使用axios时关于this的指向问题详解
2017/12/22 Javascript
Vue开发Html5微信公众号的步骤
2019/04/11 Javascript
vue 解决遍历对象显示的顺序不对问题
2019/11/07 Javascript
在vue中使用echars实现上浮与下钻效果
2019/11/08 Javascript
python实现360皮肤按钮控件示例
2014/02/21 Python
使用Python生成随机密码的示例分享
2016/02/18 Python
Python科学计算包numpy用法实例详解
2018/02/08 Python
Python实现字符串的逆序 C++字符串逆序算法
2020/05/28 Python
浅析Python3中的对象垃圾收集机制
2019/06/06 Python
Python实现最大子序和的方法示例
2019/07/05 Python
python实现登录密码重置简易操作代码
2019/08/14 Python
Python 动态导入对象,importlib.import_module()的使用方法
2019/08/28 Python
解决Python pip 自动更新升级失败的问题
2020/02/21 Python
html5跨域通讯之postMessage的用法总结
2013/11/07 HTML / CSS
应聘自荐信
2013/12/14 职场文书
学校党风廉政建设调研报告
2015/01/01 职场文书
董事会决议范本
2015/07/01 职场文书
2016秋季小学开学寄语
2015/12/03 职场文书
大学生自我鉴定怎么写
2019/05/07 职场文书
写一个Python脚本自动爬取Bilibili小视频
2021/04/24 Python