【每周一坑】蜥蜴流感与贝叶斯定理

春季是流感的高发季节。不要觉得只是小小的“感冒”,严重起来甚至也会危及生命,而且还没有特效药。因此,身体不适请及时到医院检查。

今天的问题就与流感诊断有关。此题取自《深入浅出数据分析》一书中的贝叶斯统计一章。

最近流行起一种奇怪的流感,称作蜥蜴流感,虽不致命,但需隔离治疗。关于这种流感,我们已经通过大量统计得知以下事实:

  1. 总人口中有1%的人患有蜥蜴流感
  2. 若某人已患蜥蜴流感,诊断结果为阳性的概率为90%
  3. 若某人未患蜥蜴流感,诊断结果为阳性的概率为9%

如果现在你的诊断结果为阳性,那么你实际患病的可能性有多大?

这个问题可以通过“贝叶斯定理”直接计算得出结果。

(书中这里的公式有个符号不对,已修正)

不过今天的题,我希望你们用程序模拟一场蜥蜴流感。比如有10万个人,按照上述3条规则去模拟,最后去统计下检测结果阳性中有多少人是真正的患者。

输出示例:

再用贝叶斯公式计算一下,看看是否符合你的模拟实验结果?

通过这个实验,想必也会让你对检测结果阳性和实际患病之间的关系有新的认识。

期待各位同学提交解答。

提交代码可以使用 paste.ubuntu.comcodeshare.io 等代码分享网站,只需将代码复制上去保存,即可获得一个分享地址,非常方便。

往期问题可通过公众号菜单栏“课外辅导”栏目中进入查看。


【解答】用代码给图片配上文字

上周的题目涉及到图像处理的库,我们给了参考的方向,今天来说下具体方法。

其实库的调用很简单,来看看 @GS 同学基于 PIL 库的实现:

from PIL import Image, ImageDraw, ImageFont
# 字体
setFont = ImageFont.truetype(r"happyfont2016.ttf", 50)
# 颜色
fillColor = "#ff0000"
# 读取图片
image = Image.open("yuantu.jpg")
# 创建绘图对象
draw = ImageDraw.Draw(image)
width, height = image.size
# 在图上绘制文字
draw.text((40, height - 90), u'陈独秀你坐下!!', font=setFont, fill=fillColor)
# 保存图片
image.save("yuantu.jpg", 'jpeg')

【效果】

要注意的地方:

  1. 原本的 PIL 库已停止维护,所以新的库叫 Pillow,通过 pip install pillow 安装,但在使用时仍然是 import PIL
  2. 默认的字体不支持中文,因此需要提供字体文件并指定。py2 也不支持中文,需要额外使用 freetype 库。

除了 PIL 库,OpenCV 库的 putText 方法也可以实现类似功能,但缺少对中文的支持:

import cv2

font = cv2.FONT_HERSHEY_SIMPLEX
im = cv2.imread('showme.jpg')
img=cv2.putText(im, 'Talk is cheap. Show me the code.', (50, 620), font, 1.5, (0,0,0), 3)
cv2.imwrite("showme_out.jpg", img)

期待在下一期中看到你的代码!

原文发布于微信公众号 - Crossin的编程教室(crossincode)

原文发表时间:2018-04-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习和数学

[Tensorflow] TensorFlow之Hello World!(1)

哇!今天挺开心的,30天的时间,19篇文章,2459人阅读,5313人次阅读!今天开通的原创标识,恩!除了激动,就是非常感谢大家的支持!感谢大家的支持!大家的支...

35860
来自专栏AI研习社

Github 项目推荐 | 一个简单的英文字形转音素的 Python 模块

该功能在语音合成中是必不可少的。不像德语和西班牙语这类语言,英文的发音很难从拼写中推断出来,所以人们要知道某个单词的发音,最好的方式是查阅字典。但是,这种方法至...

22350
来自专栏数据魔术师

运筹学教学|运输问题代码分享(C++代码及详细注释)

经过了长时间的学习……小编终于学会了运输问题(Transportation Problem),可以说是很骄傲了!然而……今天老板突然给了小编一个规模巨大的问题去...

60270
来自专栏ThoughtWorks

TW洞见〡3D打印的各种问题及解决方案

文章作者来自ThoughtWorks:贺思聪 ,图片来自网络。 3D打印机已经买回来几个月了,基本上每天都要打印一些东西,期间遇到了很多的问题积累了很多的经验...

408120
来自专栏算法+

双边滤波算法的简易实现bilateralFilter

没怎么看过双边滤波的具体思路,动手写一写,看看能不能突破一下。 最后,感觉算法还是要分开 水平 与 垂直 方向进行分别处理,才能把速度提上去。 没耐性写下去了,...

60460
来自专栏数据小魔方

带实际执行进度的甘特图

今天要跟大家分享的图标是带实际执行进度的甘特图! ▽▼▽ 由于本图所用到的技巧和思路特别复杂,过程相对繁琐,所以本案例的介绍会省略掉很多细节性的步骤,否则图文会...

39750
来自专栏javascript趣味编程

3.1 Contour绘制

首先一起学习利用百度的开源项目绘制contour,百度搜索“echarts heatmap”,找到热力图的一个案例(http://echarts.baidu.c...

14000
来自专栏ATYUN订阅号

NLP项目:使用NLTK和SpaCy进行命名实体识别

命名实体识别(NER)是信息提取的第一步,旨在在文本中查找和分类命名实体转换为预定义的分类,例如人员名称,组织,地点,时间,数量,货币价值,百分比等。NER用于...

98340
来自专栏AI科技评论

开发 | 如何利用 TVM 优化深度学习GPU op?教你用几十行Python代码实现2-3倍提升

数天前,陈天奇团队宣布推出 TVM,在微博上表示,「我们今天发布了 TVM,和 NNVM 一起组成深度学习到各种硬件的完整优化工具链,支持手机,cuda, op...

46080
来自专栏iOSDevLog

Turi Create 机器学习模型实战:你也能轻松做出Prisma 风格的图片!

如果你一直有关注Apple去年所发布的消息,就会知道他们在机器学习上投入了大量心力。自他们去年在WWDC 2017上推出Core ML以来,已经有大量结合机器学...

41520

扫码关注云+社区

领取腾讯云代金券