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写的一个简单DNS服务器实例
Jun 04 Python
python通过线程实现定时器timer的方法
Mar 16 Python
简单谈谈Python中的反转字符串问题
Oct 24 Python
Python实现基本数据结构中栈的操作示例
Dec 04 Python
numpy.linspace 生成等差数组的方法
Jul 02 Python
详解python中的数据类型和控制流
Aug 08 Python
python的scipy实现插值的示例代码
Nov 12 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
Feb 15 Python
Django获取model中的字段名和字段的verbose_name方式
May 19 Python
python利用递归方法实现求集合的幂集
Sep 07 Python
解决Python 写文件报错TypeError的问题
Oct 23 Python
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
Jun 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 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
2008/11/14 PHP
php adodb分页实现代码
2009/03/19 PHP
一段利用WSH获取登录时间的jscript代码
2008/05/11 Javascript
理解JAVASCRIPT中hasOwnProperty()的作用
2013/06/05 Javascript
toggle一个div显示或隐藏且可扩展成自定义下拉框
2013/09/12 Javascript
js实现点击按钮后给Div图层设置随机背景颜色的方法
2015/05/06 Javascript
Jquery插件之Fancybox丰富的弹出层效果附源码下载
2015/12/02 Javascript
将form表单通过ajax实现无刷新提交的简单实例
2016/10/12 Javascript
Highcharts+NodeJS搭建数据可视化平台示例
2017/01/01 NodeJs
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
2018/05/16 Javascript
python 算法 排序实现快速排序
2012/06/05 Python
python脚本实现统计日志文件中的ip访问次数代码分享
2014/08/06 Python
Python魔术方法详解
2015/02/14 Python
用Python进行TCP网络编程的教程
2015/04/29 Python
Python对象转JSON字符串的方法
2016/04/27 Python
深入浅出分析Python装饰器用法
2017/07/28 Python
一份python入门应该看的学习资料
2018/04/11 Python
Python安装lz4-0.10.1遇到的坑
2018/05/20 Python
Python如何实现转换URL详解
2019/07/02 Python
Python 使用type来定义类的实现
2019/11/19 Python
python自动分箱,计算woe,iv的实例代码
2019/11/22 Python
使用layui框架实现点击左侧导航切换右侧内容且右侧选项卡跟随变化的效果
2020/11/10 HTML / CSS
波兰在线体育用品商店:Hop-Sport.pl
2019/07/23 全球购物
List、Map、Set三个接口,存取元素时,各有什么特点?
2015/09/27 面试题
高中生自我评价个人范文
2013/11/09 职场文书
大三学生入党思想汇报
2014/01/02 职场文书
综合实践教学反思
2014/01/31 职场文书
本科毕业生自荐信
2014/06/02 职场文书
建筑安全标语
2014/06/07 职场文书
活动总结范文
2014/08/30 职场文书
党员教师个人对照检查材料范文
2014/09/25 职场文书
2015年世界水日活动总结
2015/02/09 职场文书
2015年校务公开工作总结
2015/05/26 职场文书
婚礼家长致辞
2015/07/27 职场文书
windows server 2016 域环境搭建的方法步骤(图文)
2022/06/25 Servers