1 .数据说明
数据来源Kaggle网站中引用的CDC数据,原数据大概有300个变量,这里大约使用20个,严重不平衡数据,约为1:9。该代码通过对进行清洗,标准化,欠采样(Undersampling)进行数据对平衡工作,进行特征分析,最后用逻辑回归、随机森林、决策树、高斯贝叶斯算法进行模型的构建和对心脏病进行预测,进行了四种算法的比较,最后通过逻辑回归算法得到最好的效果。也印证了原数据集通过权重或欠采样以及逻辑回归的理论。代码已上传到Github。
2 .数据预处理
(1)因为只有一组数据,所以我将其1:1划分为数据集和验证集(目的只是想如果后面用对其做标签,最后实际用train_test_split()函数的test_size实现)
(2)确定数据大小
共319794条数据 19列变量
(3)确定各变量的种类数
(4)确定各变量的type以便接下来的数据处理
对于浮点型(float)的数据,我们可以看一下数据分布
(5)数据清洗
因为是kaggle的clean数据,因此不需要删除空值,具体实现如上。
(6)HeartDisease 是我们的分类最终结果 也就是y值 需要转换成float类型
(7)把特征编码 将特征转换为数字形式,类似于one-hot 在这里不使用array数组,因为没必要。
3.特征分析
heatmap图:
- 不平衡数据的欠采样 将两个类别变为 1 : 1
5.数据标准化
6.模型构建
固定random_state后,每次构建的模型是相同的、生成的数据集是相同的、每次的拆分结果也是相同的
7.分类预测
可以得到逻辑回归的roc_auc值最高,因此选择逻辑回归模型完成分类预测。
Original: https://blog.csdn.net/YinuoWen/article/details/123695370
Author: 快乐星球2022
Title: 基于逻辑回归算法的心脏病不平衡数据分类代码实现
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/630187/
转载文章受原作者版权保护。转载请注明原作者出处!