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异常处理总结
Aug 15 Python
Python计算回文数的方法
Mar 11 Python
深入讲解Python编程中的字符串
Oct 14 Python
python简单图片操作:打开\显示\保存图像方法介绍
Nov 23 Python
Python加载带有注释的Json文件实例
May 23 Python
Python2和Python3的共存和切换使用
Apr 12 Python
python3.6、opencv安装环境搭建过程(图文教程)
Nov 05 Python
python3实现弹弹球小游戏
Nov 25 Python
python如何把字符串类型list转换成list
Feb 18 Python
如何在keras中添加自己的优化器(如adam等)
Jun 19 Python
Python实现壁纸下载与轮换
Oct 19 Python
Python tkinter之ComboBox(下拉框)的使用简介
Feb 05 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
全国FM电台频率大全 - 15 山东省
2020/03/11 无线电
PHP获取文件的MD5值并判断是否被修改的例子
2014/06/19 PHP
php curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法
2015/11/30 PHP
详解PHP执行定时任务的实现思路
2015/12/21 PHP
在laravel框架中实现封装公共方法全局调用
2019/10/14 PHP
Laravel 5.5 异常处理 & 错误日志的解决
2019/10/17 PHP
PHP dirname功能及原理实例解析
2020/10/28 PHP
JS控制文本框textarea输入字数限制的方法
2013/06/17 Javascript
清除div下面的所有标签的方法
2014/02/17 Javascript
jQuery+jRange实现滑动选取数值范围特效
2015/03/14 Javascript
JavaScript中join()方法的使用简介
2015/06/09 Javascript
深入理解$.each和$(selector).each
2016/05/15 Javascript
node.js cookie-parser之parser.js
2016/06/06 Javascript
jQuery 3 中的新增功能汇总介绍
2016/06/12 Javascript
Bootstrap精简教程中秋大放送
2016/09/15 Javascript
JavaScript中String对象的方法介绍
2017/01/04 Javascript
Vue实例简单方法介绍
2017/01/20 Javascript
Bootstrap面板(Panels)的简单实现代码
2017/03/17 Javascript
使用vue.js编写蓝色拼图小游戏
2017/03/17 Javascript
基于Vue的文字跑马灯组件(npm 组件包)
2017/05/24 Javascript
BootstrapTable加载按钮功能实例代码详解
2017/09/22 Javascript
vue-cli脚手架config目录下index.js配置文件的方法
2018/03/13 Javascript
Vue中的混入的使用(vue mixins)
2018/06/01 Javascript
解决angular双向绑定无效果,ng-model不能正常显示的问题
2018/10/02 Javascript
JavaScript实现的级联算法示例【省市二级联动功能】
2018/12/25 Javascript
PHPStorm中如何对nodejs项目进行单元测试详解
2019/02/28 NodeJs
Python动态赋值的陷阱知识点总结
2019/03/17 Python
pandas 数据结构之Series的使用方法
2019/06/21 Python
Django中多种重定向方法使用详解
2019/07/17 Python
Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法
2019/09/24 Python
使用 Python 清理收藏夹里已失效的网站
2019/12/03 Python
html5应用缓存_动力节点Java学院整理
2017/07/13 HTML / CSS
交警正风肃纪剖析材料
2014/10/29 职场文书
店面出租协议书范本
2014/11/28 职场文书
python文本处理的方案(结巴分词并去除符号)
2021/05/26 Python
Python如何用re模块实现简易tokenizer
2022/05/02 Python