深度学习_模型调用预测

概要

应用场景:用户流失
本文将介绍模型调用预测的步骤,这里深度学习模型使用的是自定义的deepfm

代码

导包

import pandas as pd
import numpy as np

import matplotlib.pyplot as plt
import seaborn as sns
from collections import defaultdict  
from scipy import stats
from scipy import signal
from tqdm import tqdm
from sklearn.model_selection import train_test_split
from sklearn.metrics import confusion_matrix, f1_score
from scipy.spatial.distance import cosine

import lightgbm as lgb

from sklearn.preprocessing import LabelEncoder, MinMaxScaler, StandardScaler
from tensorflow.keras.layers import *
import tensorflow.keras.backend as K
import tensorflow as tf
from tensorflow.keras.models import Model

import os,gc,re,warnings,sys,math
warnings.filterwarnings("ignore")

pd.set_option("display.max_rows", None)
pd.set_option("display.max_columns", None)

读取数据

data = pd.read_csv('df_04m.csv')

区分稀疏及类别变量

sparse_cols = ['shop_id','sex']
dense_cols  = [c for c in data.columns if c not in sparse_cols + ['customer_id', 'flag', 'duartion_is_lm']]

dense特征处理

def process_dense_feats(data, cols):
    d = data.copy()
    for f in cols:
        d[f] = d[f].fillna(0)
        ss=StandardScaler()
        d[f] = ss.fit_transform(d[[f]])
    return d

data = process_dense_feats(data, dense_cols)

sparse稀疏特征处理

def process_sparse_feats(data, cols):
    d = data.copy()
    for f in cols:
        d[f] = d[f].fillna('-1').astype(str)
        label_encoder = LabelEncoder()
        d[f] = label_encoder.fit_transform(d[f])
    return d

data = process_sparse_feats(data, sparse_cols)

切分训练及测试集

y = data['flag']
X = data.drop(['customer_id', 'flag', 'duartion_is_lm'], axis = 1)

数据处理成模型样式

X_sparse_x = [X[f].values for f in sparse_cols]
X_dense_x = [X[f].values for f in dense_cols]
y_label = [y.values]
X_sparse_x

模型读取

loaded_model = tf.keras.models.load_model('deepfm_model.h5')

模型预测

deepfm_prob = loaded_model.predict(X_sparse_x+X_dense_x, batch_size=4096*4, verbose=1)
deepfm_prob.shape
deepfm_prob
df_submit          = pd.DataFrame()
df_submit          = data
df_submit['prob']  = deepfm_prob
df_submit.head(3)
df_submit.shape
df_submit['y_pre'] = ''
df_submit['y_pre'].loc[(df_submit['prob']>=0.5)] = 1
df_submit['y_pre'].loc[(df_submit['prob']<0.5)]  = 0
df_submit.head(3)
df_submit = df_submit.reset_index()
df_submit.head(1)
df_submit = df_submit.drop('index', axis = 1)
df_submit.head(1)
df_submit.groupby(['flag', 'y_pre'])['customer_id'].count()

根据上述结果打印召回及精准

precision = 
recall  = 

参考资料:自己琢磨将资料整合

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
深度学习模型预测代码可以使用Python及相关的库来实现。在深度学习模型预测中,常用的库包括keras、scikit-learn、pandas和tensorflow。这些库提供了丰富的功能和工具,可以帮助我们构建和训练深度神经网络模型。 在使用深度学习模型进行预测之前,我们需要先准备好数据集,并对数据进行预处理。然后,我们可以使用keras库来构建深度神经网络模型。根据不同的任务和数据类型,可以选择不同的模型结构,如LSTM、GRU、CNN、LSTM-CNN、BiLSTM、Self-Attention、LSTM-Attention、Transformer等。 在构建模型后,我们可以使用优化算法来更新模型的参数值,以使任务的指标表现变好。常用的优化算法包括梯度下降法和随机梯度下降法。通过迭代训练模型,我们可以得到一个“好”的模型。 最后,我们可以使用训练好的模型对新的数据进行预测。通过调用模型预测函数,我们可以得到预测结果。 具体的深度学习模型预测代码可以根据具体的任务和数据集进行编写。可以参考相关的教程和文档,以及使用示例代码来帮助实现深度学习模型预测功能。 #### 引用[.reference_title] - *1* *3* [一文深度学习建模预测全流程(Python)](https://blog.csdn.net/qq_40877422/article/details/121301741)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [【深度学习时间序列预测案例】零基础入门经典深度学习时间序列预测项目实战(附代码+数据集+原理介绍)](https://blog.csdn.net/m0_47256162/article/details/128585814)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值