Python大本营每日一课

大家好,本期7日专栏内容,营长将为大家分享新的内容知识,“数据分析”,营长邀请的是宿永杰,某知名互联网公司数据挖掘工程师,小伙伴们别忘记打卡哦。

数据分析中最爱用的估算法:费米估计

DAY02

在科学研究中,有这样一类估算问题,初次接触会觉得已知条件太少,无法得出答案,但如果对分析对象进行变通替换,问题就会迎刃而解,这就是费米问题。它可以用来对给定有限信息的问题做出清晰地验证估算。

有这样的一个故事:

1945 年世界上第一颗原子弹爆炸。费米在感觉到震波的同时,把举过头顶的笔记本碎纸屑松开,碎纸屑落在身后 2.5 米的距离,通过心算后,得出结论原子弹的能量相当于 10000t TNT 的量,后来一些高科技仪器证明了费米的估算是正确的。

同样的故事还有:

地球的周长是多少?

使用费米估计的解决方法是:已知纽约到洛杉矶 3000 英里,时差 3 小时,而一天即地球自转一周的时间为 24 小时,即 3 小时的 8 倍。所以,地球的周长就是 3000 乘以 8,等于 24000 英里。与精确值的 24902.45 英里相比,误差不到 4%。

芝加哥有多少钢琴调音师?

使用费米估计的解决方法是:如果芝加哥居民 300 万,平均每户 4 人,拥有钢琴的家庭占 1/3,则全市有 250000 架钢琴。如果一架钢琴每 5 年调音一次,则全市每年有 50000 架钢琴要调音。如果一个调音师一天调 4 架钢琴,一年工作 250 天,那么,芝加哥市大约有 50 个调音师。

通过上面的例子,可以看出,直接通过非缜密计算可以快速把一个给定有限信息的费米难题转化成简单问题,进而快速得到解决,费米问题也因此受到人们的重视。

通过上面的案例,费米估计指的是解决少量信息的复杂估算问题,将复杂的问题拆解成常识性和已知的小问题,进而进行计算得到结果。所以解决问题的关键,主要有 2 个方面。

将未知的数逐步拆解成已知的部分,从而将一个未知结果的问题逐步变得清晰。问题拆解要按照一定的原则进行,比如使用 MECE 原则,做到不重不漏,复杂问题层层拆解为简单的子问题,从而解决问题。

在麦肯锡分析思维中,拆解问题的这种方法叫做议题树(也叫逻辑树或 MECE 原则),图下所示:

在这里插入图片描述

使用议题树对理清复杂问题的结构非常有帮助。

当我们拆解到实际子问题的时候,要确保实际常识代表的数据是有生活经验的支撑,而非凭空捏造的。

所以,我们可以总结出费米估计的一个具体步骤:

费米问题的解决,不仅需要有很强的思维逻辑,同时还需要广泛的常识性知识和准确数据的支持,非常锻炼一个人多方位的思考分析能力。在生活中实际用途也很多,比如预测行业趋势、估算市场份额、评估活动结果等。

解决费米问题的方法很多,比较典型的是 Top-Down&Bottom-Up 法则。

在这里插入图片描述

Top-Down&Bottom-Up 法则的中心思想是:

首先,从 2 个方面展开拆解问题。一是自上而下,也就是纵向从宏观到微观直推;二是自下而上,横向从局部到全部反推。其次,对自上而下和自下而上的结果要进行对比,如果两者相减的绝对值在一个可接受的范围,那结果基本可以相信。最后,需要对可能产生误差的点进行补充,保证结果更加精确。

通俗地来说,自上而下和自下而上就是估算结果的两个边界,大的为上边界,小的为下边界,而最终的结果就落在两个边界里面了。

假设 f(x) 是我们求解的结果,F(x) 是下边界值,G(x) 是上边界值,则 f(x) 我们可以类似想到用夹逼准则的方式,看成是 F(x) <= f(x) <= G(x),f(x) 就是可信的。

从数学的角度,我们再来看一个问题,古代三大几何难题之一的化圆为方。如今计算圆的面积,我们直接套用公式即可轻易得到,可在过去,人们是却花费了大量的时间和精力。

圆面积公式的常规推导思路是:先把一个圆平均分成若干份,然后将其拼成近似的长方形,最后根据长方形与圆的关系推导出圆的面积公式。当时人们认为既然正方形的面积容易求,只需要想办法做出一个面积恰好等于圆面积的正方形。但是怎样才能做出这样的正方形又成为了另外一个难题。

这个起源于古希腊的几何作图题,在 2000 多年里,不知难倒了多少能人,直到 19 世纪,人们才证明了这个几何题,古代人的尺规作图法是解决不了该问题的。

关于圆面积,古代数学家的贡献如下:

我国古代的数学家祖冲之,从圆内接正六边形入手,让边数成倍增加,用圆内接正多边形的面积去逼近圆面积。古希腊的数学家,从圆内接正多边形和外切正多边形同时入手,不断增加它们的边数,从里外两个方面去逼近圆面积。

古印度的数学家,采用类似切西瓜的办法,把圆切成许多小瓣,再把这些小瓣对接成一个长方形,用长方形的面积去代替圆面积。16 世纪天文学家开普勒,把圆分割成许多小扇形,圆面积等于无穷多个小扇形面积的和,各段小弧相加就是圆的周长 2πR,最后得出我们今天计算圆面积的公式。

通过今天的计算可以得到:在一个圆里画一个最大的正方形,正方形占圆面积的约 63.7%,在一个圆外画一个最小的正方形,正方形面积是圆形面积的 157%。

看看,古人计算圆面积的思想和费米估计的思想是不是有异曲同工之妙呢?

在互联网领域的工作面试中,如数据分析、产品、市场和咨询等岗位,费米问题经常被考到,题目往往能间接反映出候选人的综合素质。

下面,我们基于一个外卖业务,做一个分析。在北京地区,需要多少骑手才能满足用户的外卖需求呢?

1. 明确问题

对于一家外卖平台,如果能提前估算出平台所需要的骑手人数,首先对人力资源方面会节省非常大的成本,其次可以根据商业模式提前计算业务数据,比如定价、订单分发、补贴、骑手支出等。给业务提供许多决策依据。

2. 问题拆解

北京地区每天有多少单外卖需求?1 个骑手 1 天能够完成多少单任务?1 个骑手完成一单的花费时间是多少?

每单花费时间:前往商家时间 + 排队等待时间 + 从商家到目标地点时间 + 等待用户时间。

3. 明确常识性数据

根据 2019 年公布的数据,北京人口总数 2153.6 万人,网民渗透率 90% 以上,对于外卖的目标用户主要锁定在 20~30 岁易接受新鲜事物和消费能力强的年轻人,这部分人在人群中占比 45%。

4. 设计计算公式

所需的骑手总数 = 每天订单总数/每人每天可配送的订单数

则可以确定以下数据:

每天的总订单数 = 目标用户数/点单频度 = 872.2/5 = 174.44 万单

每人每天可配送的订单数 = 每天工作时间/完成一个订单需要的时间

= 每天工作时间/(骑手到商家的时间+排队等待时间+配送时间 + 用户等待时间)

= 每天工作时间/(商家距离/骑手速度+排队等待时间+目的地距离/骑手速度 + 用户等待时间 )

= 10/(3/25 + 0.25 + 4/25 + 0)

= 18.9 单

所需的骑手总数 = 每天订单总数/每人每天可配送的订单数 = 92296 人

所以,最终得出的结论,北京应该有大约 9 万外卖骑手。

从上面的分析,我们也看到一个现实,每个骑手每天工作 10 小时,平均可以配送 19 单,新手的话可能更少,所以非常辛苦,这也能够激发大家的同理心,所以平时点外卖对于超时的订单要包容下。

总结:费米问题是现实世界最好的估算法,能够把限定信息、复杂困难的问题通过分解成常识性、可解决的小问题处理,所谓大事化小小事化了,这种思维方式非常实用,通过本篇,希望可以帮助你解决更多问题。

明日分享预告:数据分析中违背常理的悖论:辛普森悖论

本期专栏内容均来自GitChat《数据分析面试剖析24讲》专栏内容,作者:宿永杰,某著名互联网公司数据挖掘工程师,如需了解专栏详情,可扫描下方二维码。

每日一课 | 详解数据分析最爱用的估算法相关推荐

  1. 每日一课 | 详解数据分析中违背常理的悖论:辛普森悖论

    Python大本营每日一课 大家好,本期7日专栏内容,营长将为大家分享新的内容知识,"数据分析",营长邀请的是宿永杰,某知名互联网公司数据挖掘工程师,小伙伴们别忘记打卡哦. 数据分 ...

  2. 逻辑推理篇:数据分析最爱用的估算法:费米估计

    在科学研究中,有这样一类估算问题,初次接触会觉得已知条件太少,无法得出答案,但如果对分析对象进行变通替换,问题就会迎刃而解,这就是费米问题.它可以用来对给定有限信息的问题做出清晰地验证估算. 一.费米 ...

  3. control的用法及短语_九上U5(control)微课详解与精练

    ◆◆视频讲解◆◆ (译林牛津 | 九上U5重点词汇 control) ◆◆例题解析◆◆1. 单选题: The business is said to be          of a director ...

  4. 云小课 | 详解华为云独享型负载均衡如何计费

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:华为云独享型负载均 ...

  5. 极智AI | 量化实现分享五:详解格灵深瞳 EQ 量化算法实现

    欢迎关注我的公众号 [极智视界],回复001获取Google编程规范   O_o   >_<   o_O   O_o   ~_~   o_O   大家好,我是极智视界,本文剖析一下格灵深瞳 ...

  6. java源码系列:HashMap底层存储原理详解——4、技术本质-原理过程-算法-取模具体解决什么问题

    目录 简介 取模具体解决什么问题? 通过数组特性,推导ascii码计算出来的下标值,创建数组非常占用空间 取模,可保证下标,在HashMap默认创建下标之内 简介 上一篇文章,我们讲到 哈希算法.哈希 ...

  7. NLP技术路线详解:这是从数学到算法的艺术

    自然语言处理路线图详解,从数学基础.语言基础到模型和算法,这是你该了解的知识领域. 自然语言处理很多时候都是一门综合性的学问,它远远不止机器学习算法.相比图像或语音,文本的变化更加复杂,例如从预处理来 ...

  8. 机器学习--详解基于梯度下降的Logistic回归算法原理

    先给出Logistic回归的sigmod函数数学表达式: 很简单的表达式,再看看它的性质,当时,,因此 当时,,因此 Logistic回归之所以称为Logistic是因为只有两个状态即0和1,这也是数 ...

  9. 二分算法详解:整数二分及浮点数二分算法(Binary Search)(含算法模板)

    一.二分算法简介 当我们要从一个序列中查找一个元素的时候,最简单无脑的方法就是顺序查找法,但由于在大数据情况下爆炸的时间复杂度而舍弃. 最常见的方法是二分查找,也称折半查找(Binary Search ...

最新文章

  1. YOLO-6D论文的一些相关知识
  2. 1102示波器使用方法_使用示波器进行故障诊断的方法(1):常见传感器波形分析-汽车用品行业...
  3. Dubbo负载均衡算法
  4. “”和“” java
  5. AspNetCore中使用Ocelot之 IdentityServer4
  6. Office - 安装程序找不到office.zh-cn\*.文件
  7. win10死机频繁怎么解决
  8. linux控制器错误码,ubuntu – 不频繁的输入/输出错误 – Linux服务器
  9. 2017.8.14 分手是祝愿 失败总结
  10. 炼丹中遇到的一些BUG
  11. smart原则_如何合理运用SMART原则高效达成工作目标?
  12. 卡方检验python程序_Python卡方检验
  13. C++之个人银行账户管理程序(二)
  14. 美国人眼中的大数据法律问题
  15. pdfbox或icepdf转换PDF为图片时,中文乱码处理
  16. 设计自制编程语言Monkey编译器:使用普拉特解析法解析复杂的算术表达式
  17. css3 svg 背景图 data:image/svg+xml;base64
  18. [python爬虫] bilibili视频评论翻页功能
  19. 强制性产品认证车辆一致性证书二维码解析
  20. 程序设计思维与实践 月模拟题3 Blog

热门文章

  1. 史上最浅显易懂的Git学习指南
  2. 第十一届蓝桥杯 单片机设计与开发省赛试题
  3. React中的浅比较是如何工作的?
  4. 中国android手机市场占有率,Android成全球第二大手机系统 市场份额达26%
  5. WIN10蓝屏崩溃原因查找
  6. android手机打魔兽,云计算+Android:手机直接玩魔兽
  7. PHP 正则判断是否是手机号码
  8. dash html中文文档,Dash Docset 创建指南
  9. 解读 CreateMutexWin32A
  10. 华为Cloud Native Lives课程第一课-云原生技术的前世今生