Administrator
Published on 2025-04-19 / 2 Visits
0

定义指标的正常范围并标记异常

# 定义正常范围
normal_ranges = {
    'HR': (60, 100),
    'O2Sat': (95, 100),
    'Temp': (36, 37.5),
    'SBP': (90, 120),
    'MAP': (70, 110),
    'DBP': (60, 80),
    'Resp': (12, 20),
    'EtCO2': (35, 45),
    'BaseExcess': (-2, 2),
    'HCO3': (22, 28),
    'FiO2': (0.21, 1.0),
    'PaCO2': (35, 45),
    'pH': (7.35, 7.45),
    'SaO2': (95, 100),
    'AST': (0, 40),
    'BUN': (6, 24),
    'Alkalinephos': (30, 120),
    'Calcium': (8.5, 10.2),
    'Chloride': (96, 106),
    'Creatinine': (0.6, 1.2),
    'Bilirubin_direct': (0, 0.3),
    'Glucose': (70, 110),
    'Lactate': (0.5, 2.2),
    'Magnesium': (1.6, 2.6),
    'Phosphate': (2.5, 4.5),
    'Potassium': (3.5, 5.0),
    'Bilirubin_total': (0.2, 1.2),
    'TroponinI': (0, 0.04),
    'Hct': (36, 48),
    'Hgb': (12, 16),
    'PTT': (25, 35),
    'WBC': (4, 10),
    'Fibrinogen': (200, 400),
    'Platelets': (150, 450)
}

# 创建一个新的DataFrame来存储是否异常的状态
abnormal_df = pd.DataFrame(index=df.index, columns=df.columns)

for col in df.columns:
    if col in normal_ranges:
        lower, upper = normal_ranges[col]
        abnormal_df[col] = (df[col] < lower) | (df[col] > upper)
    else:
        abnormal_df[col] = False  # 非数值型字段标记为不异常

# 将异常状态转换为整数类型(0为正常,1为异常)
abnormal_df = abnormal_df.astype(int)

# 将异常信息与原始特征合并
features = pd.concat([df, abnormal_df], axis=1)

MIMIC-III 数据集MIMIC-III 数据集是一个公开的重症监护病房(ICU)数据库,包含了患者在ICU期间的各种生理指标、实验室检查结果和其他相关信息。以下是对该数据集中各个字段的详细解释:

生命体征

  • ...1: 这个字段的具体含义不明确,可能是占位符或未使用的字段。

  • Hour: 数据记录的时间(小时)。

  • HR: 心率(Heart Rate),单位为次/分钟,反映心脏的搏动频率。

  • O2Sat: 血氧饱和度(Oxygen Saturation),通常为百分比,表示血红蛋白携带氧气的比例。

  • Temp: 体温(Temperature),通常以摄氏度(°C)或华氏度(°F)记录。

  • SBP: 收缩压(Systolic Blood Pressure),单位为毫米汞柱(mmHg),表示心脏收缩时的血压。

  • MAP: 平均动脉压(Mean Arterial Pressure),单位为mmHg,反映全身平均血压。

  • DBP: 舒张压(Diastolic Blood Pressure),单位为mmHg,表示心脏舒张时的血压。

  • Resp: 呼吸频率(Respiratory Rate),单位为次/分钟,反映患者的呼吸状况。

气体交换和血液气体分析

  • EtCO2: 呼出末潮二氧化碳浓度(End-Tidal CO2),反映呼吸和循环的有效性。

  • FiO2: 吸入氧气分数(Fraction of Inspired Oxygen),表示患者吸入的氧气浓度。

  • BaseExcess: 血液中的碱余(Base Excess),反映酸碱平衡状态。

  • HCO3: 碳酸氢盐(HCO3-),用于评估酸碱平衡。

  • PaCO2: 动脉二氧化碳分压(Partial Pressure of CO2 in Arterial Blood),单位为毫米汞柱(mmHg)。

  • pH: 血液的酸碱度,正常范围约为7.35-7.45。

  • SaO2: 血氧饱和度(Oxygen Saturation in Arterial Blood),可能与O2Sat相同或有细微差异。

电解质和生化指标

  • AST: 谷丙转氨酶(Aspartate Aminotransferase),肝功能指标。

  • BUN: 血尿素氮(Blood Urea Nitrogen),肾功能指标。

  • Alkalinephos: 碱性磷酸酶(Alkaline Phosphatase),肝脏和骨骼功能指标。

  • Calcium: 钙(Ca),电解质,参与神经肌肉功能和血液凝固。

  • Chloride: 氯离子(Cl-),电解质,参与维持酸碱平衡。

  • Creatinine: 肾小球滤过率的指标,反映肾功能。

  • Bilirubin_direct: 直接胆红素,评估肝脏和胆道功能。

  • Glucose: 血糖(Glucose),单位为毫克/分升(mg/dL)或毫摩尔/升(mmol/L)。

  • Lactate:乳酸(Lactate),在缺氧或休克时升高。

  • Magnesium: 镁(Mg),电解质,参与神经肌肉功能和代谢。

  • Phosphate: 磷酸盐(Phosphate),参与骨骼代谢和能量代谢。

  • Potassium: 钾(K+),电解质,影响心脏功能。

血液相关指标

  • Bilirubin_total: 总胆红素,评估肝功能和溶血情况。

  • TroponinI: 心肌特异性标志物,升高可能提示心肌损伤。

  • Hct: 血细胞压积(Hematocrit),反映红细胞比例,评估贫血。

  • Hgb: 血红蛋白(Hemoglobin),评估贫血程度。

  • PTT: 活化部分凝血酶时间(Activated Partial Thromboplastin Time),评估内在凝血途径。

  • WBC: 白细胞计数(White Blood Cell Count),评估感染或炎症。

  • Fibrinogen: 纤维蛋白原,参与血液凝固。

  • Platelets: 血小板计数,评估凝血功能。

其他信息

  • Age: 患者的年龄。

  • Gender: 患者的性别。

  • Unit1Unit2: 可能表示患者所在的病房或医疗单位。

  • HospAdmTime: 住院时间。

  • ICULOS: ICU住院时间长度(Length of Stay)。

  • SepsisLabel: 脓毒症标签,表示患者是否患有脓毒症。

  • Patient_ID: 患者的唯一标识符,用于数据链接和分析。

这些字段涵盖了患者的生命体征、实验室检查结果、用药信息和诊断信息,支持多种医疗研究,如疾病预测、进展分析和治疗效果评估。了解每个字段的具体含义对于正确使用和分析数据至关重要,特别是在特征选择和模型构建时,必须明确每个指标的临床意义和潜在影响。