You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

逻辑回归模型评估HbA1c区间区分度及灵敏度计算方法

实现方案

你当前的二分类标签只区分了HbA1c<5.7%的健康人群和HbA1c≥5.7%的异常人群,要拆分糖前、2型糖两个亚组并分别计算灵敏度,核心是要保留测试集样本对应的原始HbA1c检测值,不需要改动原有模型训练逻辑,直接复用你已经训练好的逻辑回归模型即可。

步骤1:拆分测试集亚组

确保测试集和原始HbA1c值的样本顺序一一对应,按临床阈值切分为三个互斥集合:

  • 健康人群:HbA1c < 5.7%,即你现有y_test=0的全部样本
  • 糖尿病前期人群:5.7% ≤ HbA1c ≤ 6.4%,属于y_test=1的子集
  • 2型糖尿病人群:HbA1c > 6.4%,属于y_test=1的另一个子集

注意:不要修改原有训练集的标签定义,模型还是按照原任务(识别HbA1c>5.7%的异常人群)训练即可,不需要重新训练多分类模型。

步骤2:获取全测试集预测结果

和你现有评估逻辑一致,用训练好的LGR模型输出测试集所有样本的二分类预测结果y_pred,保持默认0.5分类阈值不变即可。

步骤3:分亚组计算灵敏度

灵敏度的计算逻辑是「真实为阳性的样本中被模型正确判为阳性的比例」,两个亚组分别计算即可:

  • 糖尿病前期灵敏度:糖前组样本中,预测结果为1(判定为异常)的样本占比
  • 2型糖尿病灵敏度:2型糖组样本中,预测结果为1(判定为异常)的样本占比

可直接复用的补充代码

你只需要在现有代码基础上补充以下片段即可,注意提前把测试集对应的原始HbA1c值存为test_hba1c(数组或Pandas Series格式,和X_test、y_test的样本顺序完全对应):

# 原有模型训练逻辑保持不变
LGR.fit(X_train, y_train)
y_pred = LGR.predict(X_test)

# 生成两个亚组的样本掩码
mask_pre_diabetes = (test_hba1c >= 5.7) & (test_hba1c <= 6.4)
mask_t2d = test_hba1c > 6.4

# 分亚组计算灵敏度
sensitivity_pre_dm = y_pred[mask_pre_diabetes].sum() / mask_pre_diabetes.sum()
sensitivity_t2d = y_pred[mask_t2d].sum() / mask_t2d.sum()

# 输出结果
print(f"糖尿病前期人群识别灵敏度: {sensitivity_pre_dm:.4f}")
print(f"2型糖尿病人群识别灵敏度: {sensitivity_t2d:.4f}")

结果参考

你当前跑出的整体灵敏度0.7439,是两个亚组灵敏度的加权平均值(权重为两个亚组在所有异常样本中的占比)。通常2型糖尿病人群的指标异常特征更显著,模型对这类人群的识别灵敏度会明显高于糖尿病前期人群。

内容的提问来源于stack exchange,提问作者Ottemain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 02:57:25