1. 项目背景与核心挑战
中风是全球第二大死因,每年导致约550万人死亡。在我国,中风发病率正以每年8.7%的速度增长,农村地区死亡率是城市的2倍。传统弗明翰评分模型仅能实现约65%的预测准确率,而三甲医院神经科专家凭经验判断的准确率约78%。这个毕业设计项目试图通过机器学习技术,在保持临床可解释性的前提下,将预测准确率提升到85%以上。
医疗数据预测面临三大技术难点:
- 样本不平衡:真实数据集中中风阳性样本通常不足5%,直接训练会导致模型将所有样本预测为阴性
- 特征异构性:包含数值型(年龄、BMI)、类别型(吸烟状态)和布尔型(病史)等混合特征
- 计算资源限制:基层医院往往只有普通办公电脑,无法运行复杂深度学习模型
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术方案设计
2.1 数据预处理流水线
针对5110条医疗记录(中风病例占比4.8%),我们设计了标准化处理流程:
python复制# 缺失值处理
df['bmi'].fillna(df['bmi'].median(), inplace=True)
# 类别型特征编码
smoking_mapping = {
'Never smoked': 0,
'Former smoker': 1,
'Smokes': 2,
'Unknown': 1 # 保守处理
}
df['smoking_encoded'] = df['smoking_status'].map(smoking_mapping)
# 数值型特征标准化
scaler = StandardScaler()
features = ['age', 'avg_glucose_level', 'bmi']
df[features] = scaler.fit_transform(df[features])
关键技巧:对Unknown的吸烟状态按"Former smoker"处理,因为临床数据显示既往吸烟者风险更接近现吸烟者
2.2 过采样策略优化
采用改进的SMOTE-NC算法处理混合类型特征:
- 对数值型特征(年龄、血糖等)进行传统SMOTE过采样
- 对类别型特征(职业、居住类型)采用众数填充
- 添加±5%的高斯噪声防止过拟合
处理后正负样本比例从1:20
