Menu
CoddyTech

诊所调查

本课属于 Coddy Machine Learning 学习旅程的“机器学习统计学”单元。第 64 课,共 64 课。

一家诊所询问了 48 位患者的就诊情况:年龄、就诊类型、等待时间(分钟)和满意度,从 poor 到 excellent。所有数据都在 clinic.csv 中。

哪些因素会影响满意度?有两列是文本,因此先对它们进行编码。满意度有顺序,就诊类型没有:

一位患者编码前后的数据行:年龄 58,就诊类型为复诊,等待时间 30,满意度为良好;编码后为年龄 58,等待时间 30,满意度 3,然后在表示常规检查、复诊和急诊的三个就诊类型列中依次为 0、1、0

这样,每一列都是数字,一张热力图就能显示所有内容之间的关系。经理还想按就诊类型分别生成报告,并找出满意度最低的年龄组。

challenge icon

挑战

困难

程序会读取一种就诊类型。结果保留 2 位小数。

  1. 将满意度映射为 1 到 4,将 visit 独热编码到 encoded 中(dtype=int),并保留其相关性。
  2. 对于该就诊类型,输出就诊次数、平均等待时间和平均满意度,以及其中不满意(2 或更低)的比例和总体比例。
  3. 按照 17、34、54、85 作为分箱边界,将年龄分为 18-34、35-54、55-85,并输出满意度最低的年龄组。
  4. 绘制矩阵:使用范围为 -1 到 1 的 coolwarm 色图,添加颜色条,在两个坐标轴上显示列名,标题设为 Clinic Survey。

换一家诊所并输入 urgent:

urgent: 16 visits, mean wait 30.44, mean satisfaction 2.44
Unhappy after urgent: 0.56 (overall 0.33)
Least satisfied: 35-54 (2.6)

标题为 Clinic Survey 的热力图,带有范围为 -1 到 1 的颜色条,两个坐标轴上都显示六个列名:age、wait_min、satisfaction、visit_checkup、visit_follow-up、visit_urgent;对角线为红色,wait_min 和 satisfaction 是一对深蓝色

写完代码后,Coddy 会描述你的热力图。

亲手试试

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

visit = input()
df = pd.read_csv("clinic.csv")

# 在下方编写你的代码
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

机器学习统计学中的所有课

自己练习: Python 在线编译器