基于逻辑回归算法的心脏病不平衡数据分类代码实现

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 : 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/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球