Press "Enter" to skip to content

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

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

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

 

 

Photo by Jaelynn Castillo on Unsplash

 

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

 

 

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

 

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

 

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

 

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

 

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

 

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

 

 

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

 

 

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

 

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

 

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

 

 

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

 

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

 

 

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

 

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

 

 

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

 

 

下面请你在公众号后台回复 「clickad」 ,获得分享的项目链接。注意这个链接的有效期,只有三天。请抓紧时间部署到自己的账号里,以免过期失效。

 

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

 

 

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

 

 

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

 

 

项目启动需要一点时间。

 

 

成功后点击进入

 

 

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

 

 

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

 

 

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

 

第一步,数据准备。

 

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

 

读入数据;

 

查看数据框大小;

 

查看标记的分布

 

可视化分布

 

提取标记列

 

对应的视频在这里:

 

第二步,特征工程。

 

本部分主要步骤包括:

 

查看列名称

 

去掉不需要的特征列

 

构建特征矩阵

 

对应的视频在这里:

 

第三步,数据集划分。

 

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

 

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

 

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

 

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

 

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

 

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

 

第四步,编码转换。

 

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

 

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

 

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

 

 

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

 

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

 

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

 

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

 

第六步,预测和评价。

 

本部分包含以下步骤:

 

保存预测结果到 preds

 

评价模型指标

 

与随机模型对比

 

小结

 

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

 

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

 

数据准备

 

特征工程

 

数据集划分

 

编码转换

 

训练决策树模型

 

预测和评价

 

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

 

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注