一、数据集概述

- 1、基本定位:模拟真实世界个人生活方式与健康数据的合成数据集,旨在帮助数据科学家、机器学习- -工程师及学生安全构建和测试健康风险预测模型,无需使用敏感医疗数据。
- 2、核心规模:
 行数:5000 行(可调整,支持扩展生成更多数据)
 列数:12 列(含 11 个特征列 + 1 个目标变量列)
- 3、数据属性:
 数据类型:混合类型,包含数值型(如年龄、体重)和分类型(如运动频率、吸烟习惯)
 生成工具:通过 Python 库(NumPy、Faker)完全合成
- 4、授权与作者信息:
 许可证:CC0 公共领域许可证,可自由用于研究、学习或商业项目
 源地址:https://www.kaggle.com/datasets/miadul/lifestyle-and-health-risk-prediction
 作者:Arif Miah(身份:机器学习工程师、Kaggle 专家、数据科学家,
 邮箱:arifmiahcse@gmail.com)
文件下载:链接:https://pan.quark.cn/s/9b0b1e71337e 通过网盘分享的文件:生活方式与健康
链接: https://pan.baidu.com/s/1V3iIU2y8s_MqOwV8fsK9Dg?pwd=17yp 提取码: 17yp
# 一、数据概况
# 数值型特征的描述性统计(保留两位小数)
print('数值型特征的描述性统计:')
print(df[['age', 'weight', 'height','sleep', 'bmi']].describe().round(2))
# 分类型特征的描述性统计
for col in ['exercise','sugar_intake','smoking', 'alcohol','married', 'profession', 'health_risk']:
    print(f'\n{col}的类别分布:')
    print(df[col].value_counts())1. 数值型特征
| 特征 | 计数 | 均值 | 标准差 | 最小值 | 25%分位数 | 50%分位数 | 75%分位数 | 最大值 | 
| age | 5000.00 | 48.81 | 17.91 | 18.00 | 34.00 | 49.00 | 64.00 | 79.00 | 
| weight | 5000.00 | 77.36 | 18.71 | 45.00 | 61.00 | 77.00 | 94.00 | 109.00 | 
| height | 5000.00 | 171.93 | 15.82 | 145.00 | 158.00 | 171.50 | 186.00 | 199.00 | 
| sleep | 5000.00 | 7.00 | 1.43 | 3.00 | 6.00 | 7.00 | 8.00 | 10.00 | 
| bmi | 5000.00 | 26.84 | 8.25 | 11.40 | 20.30 | 26.00 | 32.40 | 51.40 | 
从数值型特征的描述性统计来看:
- 年龄(age)分布在 18 到 79 岁之间,平均年龄接近 49 岁,标准差 17.91 说明年龄分布有一定的离散程度。
- 体重(weight)范围从 45 公斤到 109 公斤,均值为 77.36 公斤。
- 身高(height)在 145 厘米到 199 厘米之间,平均身高约为 171.93 厘米。
- 睡眠时间(sleep)平均为 7 小时,标准差 1.43 表明大部分人的睡眠时间相对集中在均值附近。
- 身体质量指数(bmi)的均值为 26.84,不同个体之间的 BMI 差异较大,标准差为 8.25。
2. 分类型特征
- 运动频率(exercise):‘medium’(中等)频率的人数最多,有 1985 人,其次是 ‘low’(低)、‘high’(高)和 ‘none’(无)。
- 糖摄入水平(sugar_intake):‘medium’(中等)摄入水平的人数最多,为 2511 人,‘low’(低)和 ‘high’(高)依次减少。
- 吸烟习惯(smoking):不吸烟(‘no’)的人数占比较大,有 4023 人,吸烟(‘yes’)的有 977 人。
- 饮酒习惯(alcohol):不饮酒(‘no’)的人数为 3741 人,饮酒(‘yes’)的有 1259 人。
- 婚姻状况(married):已婚(‘yes’)的人数为 3018 人,未婚(‘no’)的有 1982 人。
- 职业(profession):各个职业的人数分布相对较为均匀,学生(‘student’)、农民(‘farmer’)、司机(‘driver’)等职业人数都在 600 - 644 人之间。
- 健康风险(health_risk):高风险(‘high’)的人数较多,有 3490 人,低风险(‘low’)的有 1510 人。
二、特征相关性分析
1. 与健康风险高相关性较高的前 10 个特征
# 二、特征相关性分析
import matplotlib.pyplot as plt
import seaborn as sns
# 将分类型变量进行编码
df_encoded = pd.get_dummies(df, columns=['exercise','sugar_intake','smoking', 'alcohol','married', 'profession', 'health_risk'])
# 计算相关系数矩阵(保留两位小数)
correlation_matrix = df_encoded.corr().round(2)
# 查看与health_risk_high相关性较高的前10个特征
top_10_features = correlation_matrix['health_risk_high'].sort_values(ascending=False)[1:11]
print(top_10_features)
# 设置图片清晰度
plt.rcParams['figure.dpi'] = 300
# 设置中文字体
plt.rcParams['font.sans-serif'] = ['WenQuanYi Zen Hei']
# 显示负号
plt.rcParams['axes.unicode_minus'] = False
# 绘制热力图
plt.figure(figsize=(12, 8))
sns.heatmap(correlation_matrix, annot=False, cmap='coolwarm')
plt.title('特征相关性热力图')
plt.show()| 特征 | 与 health_risk_high 的相关性系数 | 
| age | 0.38 | 
| bmi | 0.36 | 
| weight | 0.33 | 
| smoking_yes | 0.25 | 
| alcohol_yes | 0.18 | 
| exercise_low | 0.18 | 
| sugar_intake_high | 0.16 | 
| exercise_none | 0.12 | 
| married_no | 0.02 | 
| profession_driver | 0.02 | 
年龄(age)、身体质量指数(bmi)和体重(weight)与高健康风险的相关性较强。这可能意味着随着年龄的增长、身体质量指数和体重的增加,健康风险升高的可能性更大。
吸烟(smoking_yes)和饮酒(alcohol_yes)的习惯也与高健康风险有一定的相关性,说明不良的生活习惯会增加健康风险。
运动频率低(exercise_low)和不运动(exercise_none)同样与高健康风险相关,强调了运动对健康的重要性。
而婚姻状况为未婚(married_no)和职业为司机(profession_driver)与高健康风险的相关性较弱。
2. 特征相关性热力图

热力图可以直观地展示所有特征之间的相关性。颜色越接近暖色(如红色)表示正相关性越强,越接近冷色(如蓝色)表示负相关性越强。
三、不同类别特征下健康风险分布
# 三、不同类别特征下健康风险分布
# 定义分类特征列表
categorical_features = ['exercise','sugar_intake','smoking', 'alcohol','married', 'profession']
# 绘制不同类别特征下健康风险分布条形图
for feature in categorical_features:
    cross_tab = pd.crosstab(df[feature], df['health_risk'])
    cross_tab.plot(kind='bar')
    plt.title(f'{feature} 与健康风险分布')
    plt.xlabel(feature)
    plt.xticks(rotation=45)
    plt.ylabel('数量')
    plt.show()1. 运动频率(exercise)与健康风险分布
从图中可以推测,运动频率为 ‘none’(无)和 ‘low’(低)的人群中,健康风险为 ‘high’(高)的比例相对较高,而运动频率为 ‘high’(高)的人群中健康风险为 ‘low’(低)的比例相对较高。这表明增加运动频率可能有助于降低健康风险。

2. 糖摄入水平(sugar_intake)与健康风险分布
当糖摄入水平为 ‘high’(高)时,健康风险为 ‘high’(高)的人数较多,而糖摄入水平为 ‘low’(低)时,健康风险为 ‘low’(低)的人数相对较多。这暗示了控制糖的摄入量可能对健康有益。

3. 吸烟习惯(smoking)与健康风险分布
吸烟(‘yes’)的人群中健康风险为 ‘high’(高)的比例明显高于不吸烟(‘no’)的人群,推测吸烟对健康可能有不良影响。

4. 饮酒习惯(alcohol)与健康风险分布
饮酒(‘yes’)的人群健康风险为 ‘high’(高)的比例相对不饮酒(‘no’)的人群要高,说明饮酒可能增加健康风险。

5. 婚姻状况(married)与健康风险分布
已婚(‘yes’)和未婚(‘no’)人群的健康风险分布有一定差异,已婚人群中健康风险为 ‘low’(低)的比例相对较高,推测婚姻生活可能对健康有积极影响。

6. 职业(profession)与健康风险分布
不同职业的健康风险分布有所不同,例如某些职业(如 ‘driver’ 司机)健康风险为 ‘high’(高)的比例相对较高,这可能与职业的工作环境、工作压力等因素有关。

免责声明
- 数据性质说明:本数据集为通过Python(NumPy、Faker)完全合成的模拟数据,仅包含年龄、体重、运动频率等生活方式相关特征及基于启发式规则生成的“健康风险”标签,不涉及任何真实个人的医疗记录、隐私信息或临床诊断数据,无法替代专业医疗数据的准确性与完整性。
- 用途限制:数据集仅用于数据科学学习、机器学习模型训练、数据预处理实践等非医疗场景,不得用于实际医疗诊断、健康风险评估、疾病预测等涉及人身健康决策的用途,亦不得作为医疗建议、健康干预方案制定的依据。
- 结果局限性:基于本数据集训练的模型或得出的分析结论(如特征与健康风险的关联),仅反映模拟数据中的统计规律,不代表真实世界中生活方式与健康状况的必然因果关系,其预测结果或分析结论不具备医学参考价值。
- 专业建议指引:若有健康评估、疾病诊断、医疗咨询等需求,应及时咨询具备合法资质的医疗机构或专业医护人员,以获取科学、准确的医疗服务,切勿依赖本数据集及相关分析结果做出健康决策。
                
 
 
                     
            
        













 
                    

 
                 
                    