5

如何用 Python 和决策树预测广告点击行为?(云环境视频教程)

 3 years ago
source link: https://zhuanlan.zhihu.com/p/431553909
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

如何用 Python 和决策树预测广告点击行为?(云环境视频教程)

南开大学 情报学博士

本文用一个完整的样例,给你介绍机器学习决策树分类的全过程。

v2-529752fa131cef0225019c985bc70501_720w.jpg

Photo by Jaelynn Castillo on Unsplash

这周,我给新设立的「大数据管理与应用」专业一年级本科生授课。这是一门 5 名老师共同讲授的数据科学导论课程。我这一部分,讲了机器学习

v2-6ded0b2adca2c25afe20ec687778fbb2_720w.jpg

为了让同学们更好地理解机器学习的方法步骤,我用了一个分类应用的实际例子,让大家现场分组上机实践。

实践的环境,是百度飞桨 AI Studio 。翟羽佳老师率先使用后,推荐给了大伙儿。对于经典机器学习问题,这个免费云环境够用了,而且能保证所有学生的环境完全一致。这样避免了不同操作系统、不同平台安装软件包时候可能出现的千奇百怪问题,而且和样例对比运行结果,也更加方便。

为了演示操作步骤,避免现场联网可能出现的问题,我提前录制了一系列的视频。事实证明,这是很有必要的。因为当天显示器的连线有问题。好险。

教学效果不错。课后同学们纷纷跑过来跟我问问题,有的甚至都不是这节课上的内容。说明他们学习的兴趣被激发起来了。

既然代码、运行环境和视频教程都齐备,我决定把这次的课程内容,也分享给你,我亲爱的读者。

这个例子,最初来源自 Yuxi (Hayden) Liu 的《Python Machine Learning By Example》第三版。

这书不错,我在 Kindle 上面买了一本。可惜目前还没有见到中文译本。

提到买书,顺便说一句——双十一到了。

我的新书《数亦有道》在京东和拼多多都有不同幅度的优惠。优惠力度嘛,满减加上叠券,居然打到了五折以下。反正我自己是没忍住,又下单买了一批。如果你也想以这个价格买的话,请抓紧吧。

本例中的数据来自于 Kaggle 竞赛平台。主题是广告点击预测

广告这东西,你应该并不陌生。每天你浏览各种内容的时候,广告都会伴随你。

你也知道,用户并不一定会点击广告。而只有点击了广告,广告主的品牌才获得了曝光,流量主也才能获得收益。

所以广告主和流量主们,都很想了解哪些因素会影响广告的点击操作。这样才可以改进广告设计和投放目标。

这个数据集,就包含了一系列的真实记录,只不过做了匿名化处理。原始数据压缩后的大小是 1.12 GB,解压后更是达到了 6.31 GB。

为了便于教学的演示,我们进行了采样。采样数据体积缩小到 47 MB 。

请你点击这个链接,获得演示代码和云环境地址。注意这个链接的有效期,只有三天。请抓紧时间部署到自己的账号里,以免过期失效。

点击链接之后,你会看到这样的界面。

点击上图中的「运行一下」按钮。

运行环境选择默认的免费环境即可。

项目启动需要一点时间。

成功后点击进入

这就是一个 Jupyter Lab 的界面。点击左侧的 task.ipynb

你会看到,数据都已经准备好了。而且把数据所在的路径也都告诉了你。

下面请你根据以下提示,一步步自己尝试动手实践,完成这个机器学习案例的完整过程。

第一步,数据准备。

这部分主要进行以下几个事项:

  • 读入数据;
  • 查看数据框大小;
  • 查看标记的分布
  • 可视化分布
  • 提取标记列

对应的视频在这里:

第二步,特征工程。

本部分主要步骤包括:

  • 查看列名称
  • 去掉不需要的特征列
  • 构建特征矩阵

对应的视频在这里:

第三步,数据集划分。

数据集划分的目标,是把一个完整标注的集合(本例中 30 万条)划分为训练集和测试集。

这样一来,训练集帮助我们拟合构建模型,测试集当成给机器的考试。

关键在于,我们绝不能在训练阶段,让机器看到测试集的数据,否则就成了「作弊」。

这一部分的详细讲解,请查看《数亦有道》的 9.3 节。

注意这个例子里面,有个特殊之处。就是记录数据,是严格按照时间来排列的。那么在这里,能否用随机方式,抽取一定百分比的数据,作为训练集,剩下作为测试集呢?

这个问题,请你认真思考后,看下面的视频。

第四步,编码转换。

在我们使用的 Scikit-learn 平台上,决策树能够识别的特征,都是数字。换句话说,你扔给它一个字符串,它会摆摆手,告诉你「不认得」(报错)。

因而,我们需要确保输入数据类型全都变成数字。

怎么变成数字呢?这就需要编码(Encoding)。本例中使用的,是所谓的「独热编码」(One Hot Encoder)。

回顾一下,假设这里,有大洲的名称作为标签,都是字符串。那么我们可以把大洲的名称横向展开,然后把标签对比横向的名称列。这样,最多也只能有一个是 1,其余都是 0。

由此一来,非洲就用 “10000” 来表示,类似的,欧洲表示方法是 “00100”。更具体的讲解,请参考《数亦有道》的 7.2.4 节。

这一部分里,我们先查看各列的类型,然后做独热编码转换。

第五步,训练决策树模型。

第六步,预测和评价。

本部分包含以下步骤:

  • 保存预测结果到 preds
  • 评价模型指标
  • 与随机模型对比

小结

本文用广告点击预测的决策树模型机器学习案例,给你讲解了分类模型应用的全流程。

回顾一下,我们主要讲解了以下步骤和相关的重要知识点。

  • 数据集划分
  • 训练决策树模型
  • 预测和评价

这个模型使用的数据是结构化的,因此在数据的准备和转换阶段,相对比较简单。然而麻雀虽小,五脏俱全。希望对你后续处理自己的数据集和科研任务,能有帮助。

祝学习进步。

延伸阅读

如果你觉得本文有用,请点赞

如果本文可能对你的朋友有帮助,请转发给他们。

欢迎关注我的专栏,以便及时收到后续的更新内容。


Recommend

  • 46
    • blog.lisp4fun.com 7 years ago
    • Cache

    python 决策树算法

  • 27
    • flashgene.com 5 years ago
    • Cache

    如何用 Python 预测房价走势?

    该分享源于Udacity机器学习进阶中的一个mini作业项目,用于入门非常合适,刨除了繁琐的部分,保留了最关键、基本的步骤,能够对机器学习基本流程有一个最清晰的认识。

  • 21

    第6-2课:决策树、博弈树和行为树 在以...

  • 9
    • quangelab.com 4 years ago
    • Cache

    闪屏页广告点击处理

    闪屏页广告点击处理 本来是 splash面页-》主页,但是splash点击广告以后要求splash面页-》广告详情页,但是广告详情页返回后要求是 主页 其实无论点击与否都是 splash面页-》主页,注意两点 1、跳转到主页不能用动画

  • 9
    • www.yunyingpai.com 4 years ago
    • Cache

    如何用决策树模型做数据分析?

    在这个大数据时代,数据对于各行各业的重要性不言而喻,因此有越来越多的企业开始重视并且运用数据分析。数据分析的方法有很多种,今天,本文作者为我们介绍了决策树模型的分析方法,让我们一起来看看如何用决策树模型做数据分析吧。

  • 6

    如何看待沈阳骑手为了反抗美团霸王条款,深夜接单直接强行点击 「已送达」的行为?美团可能如何处理?6月19日凌晨,美团众包app沈阳骑手社区一位杨*意骑手成为了焦点。 他于6月19日凌晨通过美团众包app抢单...

  • 6

    如何改变所有按钮的点击行为? 欧雷 发表于 1 天之前 0 条评论 被人问了这样一个问题—— 现在有这样...

  • 5
    • yphuang.github.io 3 years ago
    • Cache

    决策树算法的Python实现

    决策树算法的Python实现 决策树的基本思想 决策树是一种基本的分类与回归方法,它可以看作if-then规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。 将决策树转换成if-then规则的过程...

  • 2

    什么样的行为召唤按钮,最吸引人点击? Chloe 2022-11-27 0 评论...

  • 5
    • www.jdon.com 1 year ago
    • Cache

    Python中C5.0决策树算法

    Python中C5.0决策树算法 C5.0 算法是罗斯-昆兰(Ross Quinlan)开发的专利算法。不过,在 R 编程语言...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK