一、考题
试题代码
试题名称
智能医疗系统中的业务数据处理流程设计
场地设备要求
人工智能训练师主机:CPU(intel i5 及以上)、内存(不少于 16GB)、操作系统(windows10)、支持深度学习训练;
考核时间
30min
工作任务
某医疗机构计划引入智能医疗系统,以提升诊断效率和准确性。通过分析患者的历史数据,使用机器学习算法预测患者的健康风险,从而辅助医生进行诊断和治疗。为此,该机构需要设计一套全面的业务数据处理流程,确保数据处理的高效性和准确性,为人工智能模型提供可靠的输入数据。
我们提供一个患者数据集(patient_data.csv),包含以下字段:
PatientID: 患者ID
Age: 年龄
BMI: 体重指数
BloodPressure: 血压
Cholesterol: 胆固醇水平
DaysInHospital: 住院天数
你作为人工智能训练师,根据提供的数据集和Python代码框架(1.1.1.ipynb),完成以下数据的统计和分析,为智能医疗系统提供可靠的数据支持。
(1)通过运行Python代码(1.1.1.ipynb)分别统计住院天数超过7天的患者数量以及其占比。这类患者被定义为高风险患者,反之为低风险患者。将上述统计结果截图以JPG的格式保存,命名为“1.1.1-1”。
(2)通过运行Python代码(1.1.1. ipynb)统计不同BMI区间中高风险患者的比例和患者数。BMI区间分类设置为:低于18.5,18.5~24.9,25.0~29.9,高于30.0,将上述统计结果截图以JPG的格式保存,命名为“1.1.1-2”。
(3)通过运行Python代码(1.1.1. ipynb)统计不同年龄区间中高风险患者的比例和患者数。年龄区间分类设置为:低于25岁,26岁-35岁,36岁-45岁,46岁-55岁,56岁-65岁,高于65岁,将上述统计结果截图以JPG的格式保存,命名为“1.1.1-3”。
所有结果文件储存在桌面新建的考生文件夹中,文件夹命名为“准考证号+身份证号后六位”。
技能要求
(1)能结合人工智能技术要求和业务特征,设计整套业务数据处理流程;
质量指标
(1)设计出的业务数据底层逻辑清晰,有效合理。
二、答案
import pandas as pd
import numpy as np
读取数据集 1分
data = pd.read_csv(‘patient_data.csv’)
1. 统计住院天数超过7天的患者数量及其占比
创建新列’RiskLevel’,根据住院天数判断风险等级 3分
data[‘RiskLevel’] = np.where(data[‘DaysInHospital’]>7, ‘高风险患者’, ‘低风险患者’)
统计不同风险等级的患者数量 2分
risk_counts = data[‘RiskLevel’].value_counts()
计算高风险患者占比 1分
high_risk_ratio = risk_counts[‘高风险患者’] / len(data)
计算低风险患者占比 1分
low_risk_ratio = risk_counts[‘低风险患者’] / len(data)
输出结果
print(“高风险患者数量:”, risk_counts[‘高风险患者’])
print(“低风险患者数量:”, risk_counts[‘低风险患者’])
print(“高风险患者占比:”, high_risk_ratio)
print(“低风险患者占比:”, low_risk_ratio)
统计不同BMI区间中高风险患者的比例和统计不同BMI区间中的患者数
定义BMI区间和标签
bmi_bins = [0, 18.5, 24, 28, np.inf]
bmi_labels = [‘偏瘦’, ‘正常’, ‘超重’, ‘肥胖’]
根据BMI值划分指定区间 4分
data[‘BMIRange’] = pd.cut(data[‘BMI’], bins=bmi_bins, labels=bmi_labels, right=False) # 使用左闭右开区间
计算每个BMI区间中高风险患者的比例 2分
bmi_risk_rate = data.groupby(‘BMIRange’)[‘RiskLevel’].apply(lambda x: (x == ‘高风险患者’).mean())
统计每个BMI区间的患者数量 1分
bmi_patient_count = data[‘BMIRange’].value_counts()
输出结果
print(“BMI区间中高风险患者的比例和患者数:”)
print(bmi_risk_rate)
print(bmi_patient_count)
3. 统计不同年龄区间中高风险患者的比例和统计不同年龄区间中的患者数
定义年龄区间和标签
age_bins = [0, 26, 36, 46, 56, 66, np.inf]
age_labels = [‘≤25岁’, ‘26-35岁’, ‘36-45岁’, ‘46-55岁’, ‘56-65岁’, ‘>65岁’]
根据年龄值划分指定区间 4分
data[‘AgeRange’] = pd.cut(data[‘Age’], bins=age_bins, labels=age_labels, right=False) # 使用左闭右开区间
计算每个年龄区间中高风险患者的比例 2分
age_risk_rate = data.groupby(‘AgeRange’)[‘RiskLevel’].apply(lambda x: (x == ‘高风险患者’).mean())
统计每个年龄区间的患者数量 1分
age_patient_count = data[‘AgeRange’].value_counts()
输出结果
print(“年龄区间中高风险患者的比例和患者数:”)
print(age_risk_rate)
print(age_patient_count)
















暂无评论内容