前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【每周一坑】蜥蜴流感与贝叶斯定理

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

作者头像
Crossin先生
发布2018-07-24 17:38:26
9840
发布2018-07-24 17:38:26
举报
文章被收录于专栏:Crossin的编程教室

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

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

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

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

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

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

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

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

输出示例:

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

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

期待各位同学提交解答。

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

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


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

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

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

代码语言:javascript
复制
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 方法也可以实现类似功能,但缺少对中文的支持:

代码语言:javascript
复制
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)

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-04-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Crossin的编程教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档