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

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 。

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

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

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

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

项目启动需要一点时间。

成功后点击进入

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

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

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

第一步,数据准备。

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

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

对应的视频在这里:

第二步,特征工程。

本部分主要步骤包括:

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

对应的视频在这里:

第三步,数据集划分。

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

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

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

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

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

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

第四步,编码转换。

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

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

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

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

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

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

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

 

第六步,预测和评价。

本部分包含以下步骤:

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

 

小结

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

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

  • 数据准备
  • 特征工程
  • 数据集划分
  • 编码转换
  • 训练决策树模型
  • 预测和评价

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

祝学习进步。

延伸阅读

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

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

欢迎关注我的专栏「科研利器」,以便及时收到后续的更新内容。