Python数据分析-心脏病(随机森林预测分析)

本次案例分析用心脏病数据集来做随机森林模型预测

导入基本的数据分析包

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, classification_report, confusion_matrix
import matplotlib.pyplot as plt
import seaborn as sns

读取数据

完整数据集和代码

# 读取数据
data = pd.read_csv("A_train.csv") 

描述性统计分析

接下来对数据特征进行可视化

sns.set(style="whitegrid")

# Plot the distribution of ages
plt.figure(figsize=(10, 6))
sns.histplot(data['age'], bins=20, kde=True, color='skyblue')
plt.title('Age Distribution')
plt.xlabel('Age (days)')
plt.ylabel('Frequency')
plt.show()

 

# 性别分布 - 饼图
gender_counts = data['gender'].value_counts()
plt.figure(figsize=(6, 6))
plt.pie(gender_counts, labels=['Female', 'Male'], autopct='%1.1f%%', colors=['#ff9999','#66b3ff'])
plt.title('Gender Distribution')
plt.show()

身高和体重分布 

  胆固醇和血糖水平

# 吸烟、饮酒和身体活动的比例


热力图

# 计算相关系数矩阵
correlation_matrix = data.corr()
# 设置绘图风格
sns.set(style="white")

# 画布大小
plt.figure(figsize=(12, 10))

# 绘制热力图
sns.heatmap(correlation_matrix, annot=True, fmt=".2f", cmap='coolwarm', linewidths=0.5, cbar_kws={"shrink": 0.8})
plt.title('Correlation Matrix Heatmap')
plt.show()

 # 分割数据
X = data.drop(['id', 'cardio'], axis=1)
y = data['cardio']

模型建立

# 分割数据
X = data.drop(['id', 'cardio'], axis=1)
y = data['cardio']
###生成混淆矩阵并可视化
import matplotlib.pyplot as plt 
%matplotlib inline
plt.rcParams['font.sans-serif'] = ['KaiTi']  #中文
plt.rcParams['axes.unicode_minus'] = False   #负号
conf_matrix = confusion_matrix(y_test, y_pred)

plt.figure(figsize=(8, 6),dpi=200)
sns.heatmap(conf_matrix, annot=True, fmt='d', cmap='Blues', xticklabels=['0', '1'], yticklabels=['0', '1'])
plt.xlabel('预测标签')
plt.ylabel('实际标签')
plt.title('混淆矩阵')
plt.show()

 

 最后,可以使用特征重要性图来查看模型中各特征的重要性。

完整数据和代码

创作不易,希望大家多多点赞关注和收藏!谢谢!

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是使用Python进行UCI心脏病数据集分析的步骤: 1. 下载数据集:您可以在UCI Machine Learning Repository上找到Heart Disease数据集,下载数据集并将其保存到您的本地文件夹中。 2. 导入库和数据:在Python中,您需要导入pandas、numpy和matplotlib库来读取和分析数据集。使用pandas的read_csv()函数将数据集读取到pandas DataFrame中。 ```python import pandas as pd import numpy as np import matplotlib.pyplot as plt heart_data = pd.read_csv('heart.csv') ``` 3. 数据清理和转换:在进行数据分析之前,您需要对数据进行清理和转换。这可能包括删除缺失值、转换数据类型和标准化数据等操作。 ```python # 删除缺失值所在的行 heart_data.dropna(inplace=True) # 转换数据类型为整数 heart_data = heart_data.astype(int) # 标准化数据 from sklearn.preprocessing import StandardScaler scaler = StandardScaler() heart_data = pd.DataFrame(scaler.fit_transform(heart_data), columns=heart_data.columns) ``` 4. 数据分析:您可以使用pandas和matplotlib库来进行数据分析和可视化。例如,您可以使用pandas的describe()函数来获取数据集的统计信息,使用matplotlib的hist()函数来绘制数据集的直方图,使用pandas的corr()函数来计算特征之间的相关性,并使用matplotlib的heatmap()函数来可视化相关性矩阵。 ```python # 获取数据集的统计信息 heart_data.describe() # 绘制数据集的直方图 heart_data.hist(figsize=(12, 12), bins=20) # 计算特征之间的相关性 corr_matrix = heart_data.corr() # 可视化相关性矩阵 plt.figure(figsize=(12, 12)) plt.title('Correlation Matrix') sns.heatmap(corr_matrix, annot=True, cmap='coolwarm') ``` 希望这些指导对您有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值