惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
大猫的无限游戏
大猫的无限游戏
美团技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园_首页
MyScale Blog
MyScale Blog
N
Netflix TechBlog - Medium
I
InfoQ
Jina AI
Jina AI
Martin Fowler
Martin Fowler
Recent Announcements
Recent Announcements
量子位
月光博客
月光博客
罗磊的独立博客
雷峰网
雷峰网
The Cloudflare Blog
V
V2EX
小众软件
小众软件
人人都是产品经理
人人都是产品经理
博客园 - Franky
T
Tailwind CSS Blog
有赞技术团队
有赞技术团队
S
SegmentFault 最新的问题

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
如何用 Python 和决策树预测广告点击行为?(云环境视频教程...
2021-11-10 · via 少数派

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

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
  • 评价模型指标
  • 与随机模型对比

小结

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

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

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

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

祝学习进步。

延伸阅读

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

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

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