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的web框架编写MVC配置来使其运行的教程
Apr 30 Python
详解Python的Django框架中inclusion_tag的使用
Jul 21 Python
Java Web开发过程中登陆模块的验证码的实现方式总结
May 25 Python
python logging 日志轮转文件不删除问题的解决方法
Aug 02 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
Jan 20 Python
python lxml中etree的简单应用
May 10 Python
Python3 实现串口两进程同时读写
Jun 12 Python
如何用Python来搭建一个简单的推荐系统
Aug 07 Python
python 用pandas实现数据透视表功能
Dec 21 Python
PyCharm+Miniconda3安装配置教程详解
Feb 16 Python
python推导式的使用方法实例
Feb 28 Python
Django REST framework 限流功能的使用
Jun 24 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批量上传的实现代码
2013/06/09 PHP
PHP 函数call_user_func和call_user_func_array用法详解
2014/03/02 PHP
php类常量用法实例分析
2015/07/09 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
2019/02/16 PHP
jQuery.buildFragment使用方法及思路分析
2013/01/07 Javascript
jquery在Chrome下获取图片的长宽问题解决
2013/03/20 Javascript
fixedBox固定div漂浮代码支持ie6以上大部分主流浏览器
2014/06/26 Javascript
jQuery将多条数据插入模态框的示例代码
2014/09/25 Javascript
Javascript学习笔记之函数篇(六) : 作用域与命名空间
2014/11/23 Javascript
js动态切换图片的方法
2015/01/20 Javascript
浅谈toLowerCase和toLocaleLowerCase的区别
2016/08/15 Javascript
对称加密与非对称加密优缺点详解
2017/02/06 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
2017/02/21 Javascript
javascript 使用正则test( )第一次是 true,第二次是false
2017/02/22 Javascript
微信小程序 共用变量值的实现
2017/07/12 Javascript
windows下更新npm和node的方法
2017/11/30 Javascript
使用npm安装最新版本nodejs
2018/01/18 NodeJs
vue-lazyload使用总结(推荐)
2018/11/01 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
vue实现侧边栏导航效果
2019/10/21 Javascript
python 调用HBase的简单实例
2016/12/18 Python
Python实现的弹球小游戏示例
2017/08/01 Python
Python中的函数式编程:不可变的数据结构
2018/10/08 Python
python 使用值来排序一个字典的方法
2018/11/16 Python
python3+PyQt5 创建多线程网络应用-TCP客户端和TCP服务器实例
2019/06/17 Python
Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)
2019/07/16 Python
Python中print函数简单使用总结
2019/08/05 Python
python根据文本生成词云图代码实例
2019/11/15 Python
python3获取控制台输入的数据的具体实例
2020/08/16 Python
Python配置pip国内镜像源的实现
2020/08/20 Python
King Apparel官网:英国街头服饰品牌
2019/09/05 全球购物
一家专门经营包包的英国网站:MyBag
2019/09/08 全球购物
学习演讲稿范文
2014/05/10 职场文书
小学毕业典礼演讲稿
2014/09/09 职场文书
投资公司董事长岗位职责
2015/04/16 职场文书
2015年度团总支工作总结
2015/04/23 职场文书