数据分析师养成之路之keras篇,添加auc,costtime

每个epoch显示结果中添加auc,costtime
以下代码,显示结果中添加了auc,acc,costtime,当然这几个参数也可以写在callbacks中

for epoch in range(10):
    starttime=time.time()
    #注意,这里也可以是fit_generate,不过要保证epochs=1
    model.fit(train_data,train_label,epochs=1, batch_size=32)
    #注意这里,若是生成器,建议单独写一个方法,对于test_generate里的全部数据取出,
    #放入列表中,转变格式,np.array(..).squeeze()等操作之后继续执行如下操作即可
    y_pre=model.predict(test_data)
    auc=metrics.roc_auc_score(test_label.flatten(),y_pre.flatten())
    predict=np.argmax(y_pre,axis=1)
    test_pre=np.argmax(test_label,axis=1)
    acc=metrics.accuracy_score(test_pre,predict)
    costtime=time.time()-starttime
    print('auc:{auc},acc:{acc},costtime:{costtime}'.format(auc=auc,acc=acc,costtime=costtime))

写在callbacks中

#这里若是生成器,on_x_begin用next(generate)值,之后操作类似
class RocAucMetricCallback(keras.callbacks.Callback):
    def __init__(self,validation_data):
        self.x_val,self.y_val=validation_data
    def on_epoch_begin(self,epoch,logs={}):
        #添加roc_auc_val属性
        starttime=time.time()
        if not ('roc_auc_val' in self.params['metrics']):
            self.params['metrics'].append('roc_auc_val')
        if not ('costtime' in self.params['metrics']):
            self.params['metrics'].append('costtime')
        return starttime
    def on_epoch_end(self,epoch,logs={}):
        starttime=self.on_epoch_begin(epoch)
        nowtime=time.time()

        costtime=nowtime-starttime
        #costtime=time.time()
        #print(costtime)
        y_pre=model.predict(self.x_val)
        logs['roc_auc_val']=float('-inf')
        if(self.validation_data):
            logs['roc_auc_val']=roc_auc_score(self.y_val.flatten(),y_pre.flatten())
            logs['costtime']=costtime
        print('auc:{auc},costtime:{costtime}'.format(auc=logs.get('roc_auc_val'),costtime=logs.get('costtime')))

my=RocAucMetricCallback(validation_data=(test_data,test_label)) 


model.fit(train_data,train_label,epochs=20, batch_size=32,validation_data=(test_data,test_label),callbacks=[my])
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Keras是一个开源的深度学习框架,可以用于数据分析。数据分析是将大量的数据进行整理、处理和分析以提取有用信息的过程。在使用Keras进行数据分析时,通常需要以下步骤: 1. 数据准备:首先,需要收集和整理需要分析的数据。数据可以来自各种渠道,比如数据库、API、文件等。对于Keras来说,数据通常是二维数组形式,其中每一行代表一个样本,每一列代表一个特征。 2. 数据预处理:数据预处理是数据分析的重要一步。包括数据清洗、特征选择和数据转换等。对于Keras,可以使用各种预处理方法,如缺失值处理、标准化、归一化和特征工程等,以保证数据质量和准确性。 3. 建模和训练:在Keras中,可以使用各种机器学习和深度学习模型进行数据分析。Keras提供了简单易用的API,可以快速构建神经网络模型。然后,使用训练数据来拟合模型,并通过迭代优化算法来更新参数,以获得更准确的预测结果。 4. 模型评估和优化:在训练完成后,需要对模型进行评估和优化。使用测试数据来评估模型的性能指标,如准确率、精确率、召回率和F1-score等。如果需要改进模型性能,可以尝试调整模型参数、增加更多的数据等来优化。 5. 结果展示和解释:最后,将分析结果进行可视化展示,并对结果进行解释。使用图表、表格等方式将数据分析的结论呈现出来,方便相关人员理解和应用。 总之,Keras是一个功能强大的深度学习框架,可以用于数据分析。通过准备数据、预处理数据、建模和训练、模型评估和优化以及结果展示和解释等步骤,可以利用Keras对大量的数据进行分析,从中提取有用的信息和洞察。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值