UCI心脏病数据集二分类预测(LightGBM + 贝叶斯参数调优 + plotly模型评价可视化)

目录

一、导入数据

二、数据预处理 探索性数据分析

三、特征工程

 四、模型训练,参数调优

五、模型评价


一、导入数据

# 导入数据集
import pandas as pd
data = pd.read_csv(r"C:\Users\Terry\Desktop\heart.csv")
data

 数据集有1025行,14列。每行表示一个病人。13列表示特征,1列表示标签(是否患心脏病)

%%html
<style>
    table {
        display: inline-block
    }
</style>

看一下字段名的含义:

二、数据预处理 探索性数据分析

查看缺失值:没有缺失值

# 缺失值的检查
data.isna().sum()

 

import missingno as msno
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['Roboto'] 
msno.matrix(data, labels=True)

# 热力图绘制
def enhanced_corr_heatmap(data):
    """绘制数据皮尔逊相关性系数的热力图(下三角显示)"""
    
    # 导包
    import numpy as np
    import matplotlib.pyplot as plt
    import seaborn as sns
    
    # matplotlib的图像大小和字体显示设置
    plt.figure(figsize=(10, 8)) # 可同比例放大
    plt.rcParams['font.sans-serif'] = ['Roboto'] # 美化字体
    plt.rcParams['axes.unicode_minus'] = False # 显示负数
    
    #保留下三角:
    data_corr = data.corr()
    mask = np.zeros_like(data_corr)
    for i in range(1,len(mask)):
      for j in range(0,i):
        mask[j][i] = True # 上三角就mask[i][j] = True
    
    # 绘图
    sns.heatmap(data_corr,annot=True, fmt=".2f",cmap = 'Blues',mask = mask)
    plt.show()
enhanced_corr_heatmap(data)

三、特征工程

df = data
# 将定类特征由整数编码转为实际对应的字符串,还原为真实含义
df['sex'][df['sex'] == 0] = 'female'
df['sex'][df['sex'] == 1] = 'male'
df['cp'][df['cp'] == 0] = 'typical angina'
df['cp'][df['cp'] == 1] = 'atypical angina'
df['cp'][df['cp'] == 2] = 'non-anginal pain'
df['cp'][df['cp'] == 3] = 'asymptomatic'
 
df['fbs'][df['fbs'] == 0] = 'lower than 120mg/ml'
df['fbs'][df['fbs'] == 1] = 'greater than 120mg ml'
 
df['restecg'][df['restecg'] == 0] = 'normal'
df['restecg'][df['restecg'] == 1] = 'ST-T wave abnormality'
df['restecg'][df[&
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Terry_trans

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值