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中的hashlib和base64加密模块使用实例
Sep 02 Python
Python中logging模块的用法实例
Sep 29 Python
pymongo实现多结果进行多列排序的方法
May 16 Python
深入学习python的yield和generator
Mar 10 Python
python如何使用unittest测试接口
Apr 04 Python
对pandas中两种数据类型Series和DataFrame的区别详解
Nov 12 Python
python 随机生成10位数密码的实现代码
Jun 27 Python
在Pytorch中使用样本权重(sample_weight)的正确方法
Aug 17 Python
python实现简易学生信息管理系统
Apr 05 Python
Python 给下载文件显示进度条和下载时间的实现
Apr 02 Python
Python字符串及文本模式方法详解
Sep 10 Python
python调用win32接口进行截图的示例
Nov 11 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中定义数组常量(array常量)的方法
2014/11/17 PHP
PHP下载远程文件到本地存储的方法
2015/03/24 PHP
jQuery获取json后使用zy_tmpl生成下拉菜单
2015/03/27 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
2019/01/16 PHP
js form action动态修改方法
2008/11/04 Javascript
Javascript typeof 用法
2008/12/28 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
2013/05/17 Javascript
JS实现FLASH幻灯片图片切换效果的方法
2015/03/04 Javascript
jquery.validate 自定义验证方法及validate相关参数
2016/01/18 Javascript
jquery获取table指定行和列的数据方法(当前选中行、列)
2016/11/07 Javascript
JavaScript中校验银行卡号的实现代码
2016/12/19 Javascript
详解js前端代码异常监控
2017/01/11 Javascript
javascript笔记之匿名函数和闭包
2017/02/06 Javascript
微信小程序实现手指触摸画板
2018/07/09 Javascript
用Cordova打包Vue项目的方法步骤
2019/02/02 Javascript
微信小程序的tab选项卡的实现效果
2019/05/15 Javascript
Vue.js+cube-ui(Scroll组件)实现类似头条效果的横向滚动导航条
2019/06/24 Javascript
微信小程序 调用微信授权窗口相关问题解决
2019/07/25 Javascript
Vue学习之组件用法实例详解
2020/01/06 Javascript
vue+Element中table表格实现可编辑(select下拉框)
2020/05/21 Javascript
Python算法应用实战之队列详解
2017/02/04 Python
Python动态声明变量赋值代码实例
2019/12/30 Python
Django之form组件自动校验数据实现
2020/01/14 Python
Python sklearn库实现PCA教程(以鸢尾花分类为例)
2020/02/24 Python
Python StringIO及BytesIO包使用方法解析
2020/06/15 Python
草莓巧克力:Shari’s Berries
2017/02/07 全球购物
英国电视和家用电器购物网站:rlrdistribution.co.uk
2018/11/20 全球购物
AJax面试题
2014/11/25 面试题
夜大毕业生自我鉴定
2013/10/31 职场文书
经理秘书找工作求职信
2013/12/19 职场文书
高二物理教学反思
2014/02/08 职场文书
合作经营协议书
2014/04/17 职场文书
校长创先争优承诺书
2014/08/30 职场文书
营业员岗位职责范本
2015/04/14 职场文书
离职证明范本
2015/06/12 职场文书
PyTorch 如何设置随机数种子使结果可复现
2021/05/12 Python