当前位置: 首页 > news >正文

网站当前位置怎么做/做网站seo推广公司

网站当前位置怎么做,做网站seo推广公司,二本网络工程就业前景,东莞网站关键词优化效果文章目录一、导包二、读取数据三、获取分类特征和数值特征四、数据处理五、使用具名元组为特征做标记六、构建模型6.1 构建输入层6.2 将类别特征进行embedding6.3 将所有的sparse特征embedding进行拼接6.4 构建残差块6.5 构建输出层6.6 构建模型七、训练模型7.1 构建模型7.2 编…

文章目录

  • 一、导包
  • 二、读取数据
  • 三、获取分类特征和数值特征
  • 四、数据处理
  • 五、使用具名元组为特征做标记
  • 六、构建模型
    • 6.1 构建输入层
    • 6.2 将类别特征进行embedding
    • 6.3 将所有的sparse特征embedding进行拼接
    • 6.4 构建残差块
    • 6.5 构建输出层
    • 6.6 构建模型
  • 七、训练模型
    • 7.1 构建模型
    • 7.2 编译模型
    • 7.3 准备输入数据
    • 7.4 模型训练

一、导包

from collections import namedtuple # 使用具名元组import tensorflow as tf
from tensorflow import keras
from tensorflow.keras.layers import *
from tensorflow.keras.models import *from tqdm import tqdmfrom sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler,LabelEncoderimport pandas as pd
import numpy as np

二、读取数据

"""读取数据"""
data = pd.read_csv('./data/criteo_sample.txt')

image-20211118143911317

三、获取分类特征和数值特征

"""获取分类特征和数值特征"""
columns = data.columns.values
dense_features = [feat for feat in columns if 'I' in feat]
sparse_features = [feat for feat in columns if 'C' in feat]

四、数据处理

"""数据处理"""
def data_process(data, dense_features, sparse_features):# 将数值特征的空值位置填补为0data[dense_features] = data[dense_features].fillna(0.0)# 调整分布for f in dense_features:data[f] = data[f].apply(lambda x: np.log(x+1) if x > -1 else -1)# 将分类特征进行编码,由于原数据中的类别都是字符串,所以要使用LabelEncoder编码成数值data[sparse_features]=data[sparse_features].fillna("0") # 将类别特征进行填补,使用字符串for f in sparse_features:le = LabelEncoder()data[f]=le.fit_transform(data[f])return data[dense_features + sparse_features]
train_data = data_process(data, dense_features, sparse_features)
train_data['label'] = data['label']
train_data # (200,40)

image-20211118144021941

五、使用具名元组为特征做标记

"""使用具名元组为特征做标记"""
SparseFeat = namedtuple('SparseFeat', ['name', 'vocabulary_size', 'embedding_dim'])
DenseFeat = namedtuple('DenseFeat', ['name', 'dimension'])dnn_features_columns = [SparseFeat(name=feat, vocabulary_size=data[feat].nunique(), embedding_dim = 4) for feat in sparse_features] + [DenseFeat(name=feat, dimension=1) for feat in dense_features]
dnn_features_columns

image-20211118144058418

六、构建模型

6.1 构建输入层

"""构建输入层"""
def build_input_layers(dnn_features_columns):dense_input_dict, sparse_input_dict = {}, {}for f in dnn_features_columns:if isinstance(f, SparseFeat):sparse_input_dict[f.name] = Input(shape=(1, ), name=f.name)elif isinstance(f, DenseFeat):dense_input_dict[f.name] = Input(shape=(f.dimension, ), name=f.name)return dense_input_dict, sparse_input_dict

6.2 将类别特征进行embedding

"""将类别特征进行embedding"""
def build_embedding_layers(dnn_features_columns, input_layers_dict, is_linear):embedding_layer_dict = {}# 将sparse特征筛选出来sparse_feature_columns = list(filter(lambda x: isinstance(x,SparseFeat), dnn_features_columns)) if dnn_features_columns else []# 如果是用于线性部分的embedding层,其维度为1,否则维度就是自己定义的embedding维度if is_linear:for f in sparse_feature_columns:embedding_layer_dict[f.name] = Embedding(f.vocabulary_size + 1, 1, name='1d_emb_' + f.name)else:for f in sparse_feature_columns:embedding_layer_dict[f.name] = Embedding(f.vocabulary_size + 1, f.embedding_dim, name='kd_emb_' + f.name)return embedding_layer_dict

6.3 将所有的sparse特征embedding进行拼接

"""将所有的sparse特征embedding进行拼接"""
def concat_embedding_list(dnn_features_columns, input_layer_dict, embedding_layer_dict, flatten=False):# 筛选sparse特征sparse_feature_columns = list(filter(lambda x: isinstance(x, SparseFeat), dnn_features_columns))embedding_list = []for f in sparse_feature_columns:_input = input_layer_dict[f.name]_embed = embedding_layer_dict[f.name]embed = _embed(_input)if flatten:embed = Flatten()(embed)embedding_list.append(embed)return embedding_list

6.4 构建残差块

"""构建残差块"""
class ResidualBlock(Layer):def __init__(self, units):super(ResidualBlock, self).__init__()self.units = unitsdef build(self, input_shape):out_dim = input_shape[-1]self.dnn1 = Dense(self.units, activation='relu')self.dnn2 = Dense(out_dim, activation='relu')def call(self, inputs):x = inputsx = self.dnn1(x)x = self.dnn2(x)x = Activation('relu')(x + inputs)return x

6.5 构建输出层

"""构建输出层"""
def get_dnn_logits(dnn_inputs, block_nums=3):dnn_out = dnn_inputsfor i in range(block_nums):dnn_out = ResidualBlock(64)(dnn_out)dnn_logits = Dense(1, activation='sigmoid')(dnn_out)return dnn_logits

6.6 构建模型

"""构建模型"""
def DeepCrossing(dnn_features_columns):# 1.构建输入层dense_input_dic, sparse_input_dic = build_input_layers(dnn_features_columns)input_layers = list(dense_input_dic.values()) + list(sparse_input_dic.values())# 2.将类别特征进行embeddingembedding_layer_dict = build_embedding_layers(dnn_features_columns, sparse_input_dic, is_linear=False)# 3.将数值型特征拼接在一起dense_dnn_list = list(dense_input_dic.values())dense_dnn_inputs = Concatenate(axis=1)(dense_dnn_list)# 4.将类别Embedding向量进行Flattensparse_dnn_list = concat_embedding_list(dnn_features_columns, sparse_input_dic, embedding_layer_dict, flatten=True)sparse_dnn_inputs = Concatenate(axis=1)(sparse_dnn_list)# 6.将数值特征和类别特征进行拼接dnn_inputs = Concatenate(axis=1)([dense_dnn_inputs, sparse_dnn_inputs])# 7.将所有特征输入到残差模块中output_layer = get_dnn_logits(dnn_inputs, block_nums=3)# 8.构建模型model = Model(input_layers, output_layer)return model

七、训练模型

7.1 构建模型

history = DeepCrossing(dnn_features_columns)
history.summary()

image-20211118144356507

7.2 编译模型

history.compile(optimizer='adam',loss='binary_crossentropy',metrics=['binary_crossentropy', tf.keras.metrics.AUC(name='auc')])

7.3 准备输入数据

train_model_input = {name: data[name] for name in dense_features + sparse_features}

7.4 模型训练

history.fit(train_model_input,train_data['label'].values,batch_size=64,epochs=5,validation_split=0.2)

image-20211118144507387

http://www.lbrq.cn/news/1043407.html

相关文章:

  • 网站显示系统建设中/seo自然搜索优化排名
  • sketch代替ps做网站/开封网站seo
  • 揭阳模板网站建站/如何注册属于自己的网站
  • 微信小程序制作宣传图册/简述seo的概念
  • 展示型网站制作公司/排名优化哪家专业
  • 用bootstrap3做的网站/龙岗网络公司
  • wordpress 整合php/临安网站seo
  • 网站制作机构/排名软件
  • 乌鲁木齐在线/搜索引擎优化的基本手段
  • wordpress站点前台请求数过多/互联网营销公司
  • 给企业做网站如何定价/江西网络推广seo
  • 自适应产品网站模板/网站建设明细报价表
  • 湖北专业网站建设维修电话/百度大全免费下载
  • 做网站不难吧/东莞市优速网络科技有限公司
  • 杭州网站建设前三/网站维护合同
  • 品牌营销策略有哪些/外贸网站优化
  • 系部网站开发项目的目的/猪八戒网接单平台
  • wordpress站点安装/怎么拿到百度推广的代理
  • 博罗做网站技术/百度上做推广怎么收费
  • 网站软文设计/社区推广
  • 用帝国做的网站/360优化大师旧版本
  • 做新浪微博网站需要/抖音关键词搜索排名
  • 广州汽车网站建设/做百度推广的网络公司
  • 浙江建设职业技术学院oa网站/培训心得体会范文500字
  • 深圳设计装修公司/网站seo排名优化
  • 用http做网站隐藏端口/seo是什么工作
  • 中英文网站如何建设/厦门人才网招聘
  • 长安网站建设网络推广/大型网站建设
  • 宁波网站公司/辽宁seo推广
  • 福田官网网站/百度seo关键词排名
  • 闸机控制系统从设计到实现全解析:第 5 篇:RabbitMQ 消息队列与闸机通信设计
  • OV5640 相机开发流程
  • scala 样例类
  • 7、西门子PLC基础术语:数据单位、存储区域、寻址方式、字节序
  • SpringSecurity过滤器链全解析
  • 深入理解 Gin 框架的路由机制:从基础使用到核心原理