深度学习入门笔记5 Facebook营销组合分类预测

简介: 深度学习入门笔记5 Facebook营销组合分类预测

Facebook营销组合分类预测

背景信息

在Facebook注册用户超过20亿人,每天会产生超过百亿条的消息、近10亿张新图片,借助大数据技术,Facebook可以跟踪用户网络行为、进行面部识别和标注、分析用户喜好等等,从而向广告客户的市场营销人员展示受众对于品牌、事件、活动和主题的反应。Facebook实际上已经成为一家大数据驱动的广告公司。为了展示其收集和挖掘大数据的能力,Facebook找伦敦创意机构Human After All设计了一副【市场洞察扑克牌】,每张牌都图文并茂地提供了一条关于用户的数据洞察信息,例如:

  • 41%的英国人在11月就开始圣诞节采购
  • 已婚人士比单身更喜欢讨论食物(31% vs 24%)
  • 63%谈论奢侈品话题的用户年龄在18-34岁之间
  • 61%的英国Facebook用户提前一周就开始为情人节做准备
  • 刚刚有宝宝的父母们花在手机上的时间是没有宝宝的用户的 1.6 倍
  • 母亲节那天,关于母亲节的讨论多达 9430 万次

任务说明

假设你是Facebook的大数据科学家,你的职责是为某个目标客户群,提供一组【市场洞察扑克牌】组合,为其提供市场营销策略指导,在帮助客户成功的同时也为Facebook获得广告收入。

基础规则是:你只能给客户5张牌。客户基于这5条不同的市场洞察信息制定市场营销策略,因此5张牌的不同组合方案,会产生截然不同的经济效果,也为Facebook带来不一样的收入。

52张牌对应52条市场洞察信息,会产生过百万的组合方式,你需要通过大数据技术,找出不同组合方案所对应的效果,并分出“市场洞察信息组合优化等级”,Facebook广告销售人员就可以根据这个优化等级表开展销售工作。

经Facebook允许,你做了一次小规模内测,通过内测你收到了25000条的反馈数据,根据客户反馈回来的收益,你对每条数据进行了0~9的组合优化等级标注。

接下去,你需要设计算法,根据上述 25000条内测数据及其优化等级标注,找出内在规律,为剩余100万条随机组合方案进行优化等级标注。

数据集描述

训练数据集包括11个字段,字段的含义如下所示,牌面花色用C,D,H,S表示,分表代表梅花、方块、红桃和黑桃,牌面大小用1-10以及J、Q、K来表示。需要注意,字段11是每条数据的优化等级标注。

程序实现

import numpy as np
import pandas as pd
from sklearn.preprocessing import  LabelEncoder
from sklearn.preprocessing import OneHotEncoder
import tensorflow as tf
from sklearn.model_selection import train_test_split
def load_data(path):
    """数据加载方法。
    根据指定文件的路劲进行数据的加载。
    进行数据清洗及必要的转换
    将非数值类型转换成数值类型(one-hot编码)
    Parameters
    -------
    """
    data = pd.read_csv(path,header=None)
    # data.head()
#     data.info()
    # 查看重复值有几个
    # np.sum(data.duplicated())
    # data[data.duplicated()]
    data.drop_duplicates(inplace=True)
    # data[data.duplicated()]
#     display(data.head(10))
#     将数据集分为特征与标签
    X, y = data.iloc[:,:-1],data.iloc[:,-1]
    display(X.head(10))
#     进行标签编码
    le = LabelEncoder()
#     针对每一个操作
# 进行排序之后再编码 保证每一个字符在不同的列编码一致
# 原本的数据没有大小之分 使用标签编码之后有大小之分  权重影响不一致 
    X = X.apply(lambda item: le.fit_transform(item))
#     display(X.head(10))
#     当数据没有大小之分 映射到多维空间 one-hot 编码 彼此距离相等
# 默认返回的是稀疏矩阵的类型 可以调用toarray转换为ndarray数组
    onh = OneHotEncoder()
#     display(onh.fit_transform(X).toarray())
#     
    X = pd.DataFrame(onh.fit_transform(X).toarray())
#     display(X.head())
#     目前列标签是数值类型的 对我们后面的应用TensorFlow会出现问题 支持python中合法的标识符
#     的形式  我们对列表签进行转换 转换成合法的标识符的形式  
    X.columns = X.columns.map(lambda name: f"c{name}")
#     display(X.head())
    return X, y
X ,y = load_data('data.csv')
y.value_counts()
X ,y = load_data('data.csv')
# 查看具体数据 发现数据不均衡
y.value_counts()
# 用深度神经网络来解决 DNN                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
def train_input_fn(features, labels):
    """用来训练的函数 在分类器中会调用该函数 
    Parameters
    -----
    features : 类数组对象  形状(样本数量,样本标签)
        用来训练的样本特征
    labels : 样本数据的标签 形状(样本数量)
        样本对应的标签
    Returns 
    ----
    data : tf.Data.DataSet
        用于训练的数据集
    """
#     创建数据集
    dataset = tf.data.Dataset.from_tensor_slices( (dict(features), labels))
#     对数据集进行洗牌 并且指定重复的次数 再指定每个批次传递的样本数量
    dataset = dataset.shuffle(10000, seed=0).repeat(10).batch(50)
    return dataset
# 评估预测函数
def eval_input_fn(features, labels= None):
    """评估或者预测的函数
    评估有label 预测没有
    """
#     features 要求是字典类型
    features = dict(features)
    if labels is None:
        inputs = features
    else:
        inputs = (features, labels)
    dataset = tf.data.Dataset.from_tensor_slices(inputs)
#     进行评估或者测试 无需打乱样本的顺序 与重复样本数量
    dataset = dataset.batch(100)
    return dataset
X, y = load_data('data.csv')
train_X, test_X, train_y, test_y = train_test_split(X, y, test_size=0.25, random_state=0)
# 定义一个列表 保存分类器需要的特征列
my_feature_column = []
for key in train_X.keys():
#     使用列表加入特征列
#  optimizer 优化器   hidden_units隐藏层 
    my_feature_column.append(tf.feature_column.numeric_column(key=key))
# classfier = tf.estimator.DNNClassifier(feature_columns=my_feature_column,n_classes=10,
#                           hidden_units=[512,512], optimizer='SGD')  
classfier = tf.estimator.DNNClassifier(feature_columns=my_feature_column,n_classes=10,
                          hidden_units=[512,512], optimizer=tf.train.AdadeltaOptimizer())  
classfier.train(input_fn=lambda : train_input_fn(train_X, train_y))
classfier.evaluate(input_fn=lambda : eval_input_fn(test_X,test_y))
# classfier.predict(input_fn=lambda : eval_input_fn(test_X))


相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
3月前
|
机器学习/深度学习 人工智能 PyTorch
PyTorch深度学习 ? 带你从入门到精通!!!
🌟 蒋星熠Jaxonic,深度学习探索者。三年深耕PyTorch,从基础到部署,分享模型构建、GPU加速、TorchScript优化及PyTorch 2.0新特性,助力AI开发者高效进阶。
PyTorch深度学习 ? 带你从入门到精通!!!
|
机器学习/深度学习 编解码 人工智能
人脸表情[七种表情]数据集(15500张图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
本数据集包含15,500张已划分、已标注的人脸表情图像,覆盖惊讶、恐惧、厌恶、高兴、悲伤、愤怒和中性七类表情,适用于YOLO系列等深度学习模型的分类与检测任务。数据集结构清晰,分为训练集与测试集,支持多种标注格式转换,适用于人机交互、心理健康、驾驶监测等多个领域。
|
3月前
|
机器学习/深度学习 人工智能 文字识别
中药材图像识别数据集(100类,9200张)|适用于YOLO系列深度学习分类检测任务
本数据集包含9200张中药材图像,覆盖100种常见品类,已标注并划分为训练集与验证集,支持YOLO等深度学习模型。适用于中药分类、目标检测、AI辅助识别及教学应用,助力中医药智能化发展。
|
5月前
|
机器学习/深度学习 人工智能 监控
河道塑料瓶识别标准数据集 | 科研与项目必备(图片已划分、已标注)| 适用于YOLO系列深度学习分类检测任务【数据集分享】
随着城市化进程加快和塑料制品使用量增加,河道中的塑料垃圾问题日益严重。塑料瓶作为河道漂浮垃圾的主要类型,不仅破坏水体景观,还威胁水生生态系统的健康。传统的人工巡查方式效率低、成本高,难以满足实时监控与治理的需求。
|
5月前
|
机器学习/深度学习 传感器 人工智能
火灾火焰识别数据集(2200张图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
在人工智能和计算机视觉的快速发展中,火灾检测与火焰识别逐渐成为智慧城市、公共安全和智能监控的重要研究方向。一个高质量的数据集往往是推动相关研究的核心基础。本文将详细介绍一个火灾火焰识别数据集,该数据集共包含 2200 张图片,并已按照 训练集(train)、验证集(val)、测试集(test) 划分,同时配有对应的标注文件,方便研究者快速上手模型训练与评估。
火灾火焰识别数据集(2200张图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
|
5月前
|
机器学习/深度学习 人工智能 自动驾驶
7种交通场景数据集(千张图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
在智能交通与自动驾驶技术快速发展的今天,如何高效、准确地感知道路环境已经成为研究与应用的核心问题。车辆、行人和交通信号灯作为城市交通系统的关键元素,对道路安全与交通效率具有直接影响。然而,真实道路场景往往伴随 复杂光照、遮挡、多目标混杂以及交通信号状态多样化 等挑战,使得视觉识别与检测任务难度显著增加。
|
5月前
|
机器学习/深度学习 人工智能 监控
坐姿标准好坏姿态数据集(图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
坐姿标准好坏姿态数据集的发布,填补了计算机视觉领域在“细分健康行为识别”上的空白。它不仅具有研究价值,更在实际应用层面具备广阔前景。从青少年的健康教育,到办公室的智能提醒,再到驾驶员的安全监控和康复训练,本数据集都能发挥巨大的作用。
坐姿标准好坏姿态数据集(图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
|
5月前
|
机器学习/深度学习 编解码 人工智能
102类农业害虫数据集(20000张图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
在现代农业发展中,病虫害监测与防治 始终是保障粮食安全和提高农作物产量的关键环节。传统的害虫识别主要依赖人工观察与统计,不仅效率低下,而且容易受到主观经验、环境条件等因素的影响,导致识别准确率不足。
|
4月前
|
机器学习/深度学习 数据采集 编解码
基于深度学习分类的时相关MIMO信道的递归CSI量化(Matlab代码实现)
基于深度学习分类的时相关MIMO信道的递归CSI量化(Matlab代码实现)
232 1
|
5月前
|
机器学习/深度学习 自动驾驶 算法
道路表面缺陷数据集(裂缝/井盖/坑洼)(6000张图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
随着城市化与交通运输业的快速发展,道路基础设施的健康状况直接关系到出行安全与城市运行效率。长期高强度的使用、气候变化以及施工质量差异,都会导致道路表面出现裂缝、坑洼、井盖下沉及修补不良等缺陷。这些问题不仅影响驾驶舒适度,还可能引发交通事故,增加道路养护成本。
道路表面缺陷数据集(裂缝/井盖/坑洼)(6000张图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】