【数据可视化-22】脱发因素探索的可视化分析

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN人工智能领域的优质创作者,提供AI相关的技术咨询、项目开发和个性化解决方案等服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:xf982831907
💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。

【数据可视化-22】脱发因素探索的可视化分析

    • 一、项目背景
    • 二、数据说明
    • 三、代码实现与分析
      • [1. 导入Python库并读取数据](#1. 导入Python库并读取数据)
      • [2. 数据预览与统计](#2. 数据预览与统计)
      • [3. 分类变量的唯一值](#3. 分类变量的唯一值)
      • [4. 可视化分析](#4. 可视化分析)
      • [4.1 特征字段可视化](#4.1 特征字段可视化)
      • [4.2 脱发因素的探究](#4.2 脱发因素的探究)
        • [4.2.1 家族遗传与脱发关系](#4.2.1 家族遗传与脱发关系)
        • [4.2.2 荷尔蒙变化与脱发关系](#4.2.2 荷尔蒙变化与脱发关系)
        • [4.2.3 压力水平与脱发关系](#4.2.3 压力水平与脱发关系)
        • [4.2.4 不良护发习惯与脱发关系](#4.2.4 不良护发习惯与脱发关系)
        • [4.2.5 营养不足与脱发关系](#4.2.5 营养不足与脱发关系)
        • [4.2.6 年龄与脱发关系](#4.2.6 年龄与脱发关系)
    • 四、总结

一、项目背景

脱发是许多人关心的问题,它不仅影响外貌,还可能反映健康状况。本文将通过可视化分析,探索多种因素与脱发之间的关系,帮助大家更好地了解脱发的原因。本项目旨在通过数据探索分析,挖掘遗传、荷尔蒙变化、医疗状况等因素与脱发之间的潜在关联,为个体健康管理提供参考。

二、数据说明

数据集包含以下字段:

  • Id:标识符
  • Genetics:是否有秃头家族史
  • Hormonal Changes:是否经历了荷尔蒙变化
  • Medical Conditions:可能导致秃头的病史
  • Medications & Treatments:可能导致脱发的药物治疗史
  • Nutritional Deficiencies:营养不足情况
  • Stress:压力水平
  • Age:年龄
  • Poor Hair Care Habits:是否存在不良的护发习惯
  • Environmental Factors:是否暴露于可能导致脱发的环境
  • Smoking:是否吸烟
  • Weight Loss:是否经历了显著的体重减轻
  • Hair Loss:是否脱发

三、代码实现与分析

1. 导入Python库并读取数据

python 复制代码
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

# 数据路径
data_path = "/home/mw/input/hair2961/Predict Hair Fall.csv"

# 读取数据
data = pd.read_csv(data_path)

2. 数据预览与统计

python 复制代码
# 查看数据维度
print(f"数据维度:{data.shape}")

# 查看数据信息
print(data.info())

# 查看缺失值
print(data.isna().sum())

# 查看重复值
print(f"重复值数量:{data.duplicated().sum()}")

# 基本统计量
print(data.describe())

从数据信息可以看出,数据集包含999条记录和13个字段,没有缺失值和重复值,数据质量较好

3. 分类变量的唯一值

python 复制代码
categorical_columns = data.select_dtypes(include=['object']).columns.tolist()
for col in categorical_columns:
    print(f"{col}:")
    print(data[col].unique())
    print('-'*50)

4. 可视化分析

4.1 特征字段可视化

python 复制代码
plt.figure(figsize=(40,20))
plt.subplot(3,4,1)
sns.countplot(x=data['Genetics'])
plt.title('秃头家族史分布')
plt.xlabel('是否有秃头家族史')
plt.ylabel('频数')

......

plt.subplot(3,4,(11,12))
sns.countplot(x=data['Nutritional Deficiencies '])
plt.title('是营养不足情况分布')
plt.xlabel('营养不足情况')
plt.ylabel('频数')
plt.tight_layout()
plt.show()

在此数据集中,我们可以发现有秃头家族史的人数大于没有秃头家族史的人数,经历了荷尔蒙变化的人数大于未经历荷尔蒙变化的人数,在压力水平中,显示了压力水平为"Low"、"Moderate"和"High"的比例,其中每一部分都占了相近的比例,显示受访者在压力水平上的分布较为均匀,秃头病史中,无数据和斑秃的人比较多,湿疹和癣的人比较少等等;

4.2 脱发因素的探究

4.2.1 家族遗传与脱发关系
python 复制代码
# 是否有秃头家族史与脱发的关系
genetics_and_hair_loss = pd.crosstab(data['Genetics'], data['Hair Loss'])
genetics_and_hair_loss_percent = genetics_and_hair_loss.div(genetics_and_hair_loss.sum(axis=1), axis=0) * 100

plt.figure(figsize=(10, 6))
genetics_and_hair_loss_percent[1].plot(kind='bar')
plt.title('是否有秃头家族史与脱发的关系')
plt.xlabel('是否有秃头家族史')
plt.ylabel('脱发占比')
plt.xticks(rotation=0)
plt.tight_layout()
plt.show()

从图中可以看出,有秃头家族史的人群中,脱发占比略高于没有家族史的人群。

4.2.2 荷尔蒙变化与脱发关系
python 复制代码
# 是否经历了荷尔蒙变化与脱发的关系
hormonal_changes_and_hair_loss = pd.crosstab(data['Hormonal Changes'], data['Hair Loss'])
hormonal_changes_and_hair_loss_percent = hormonal_changes_and_hair_loss.div(hormonal_changes_and_hair_loss.sum(axis=1), axis=0) * 100

plt.figure(figsize=(10, 6))
hormonal_changes_and_hair_loss_percent[1].plot(kind='bar')
plt.title('是否经历了荷尔蒙变化与脱发的关系')
plt.xlabel('是否经历了荷尔蒙变化')
plt.ylabel('脱发占比')
plt.xticks(rotation=0)
plt.tight_layout()
plt.show()

从图中可以看出,经历荷尔蒙变化的人群与未经历的人群在脱发占比上差异不大。

4.2.3 压力水平与脱发关系
python 复制代码
# 压力水平与脱发的关系
stress_and_hair_loss = pd.crosstab(data['Stress'], data['Hair Loss'])
stress_and_hair_loss_percent = stress_and_hair_loss.div(stress_and_hair_loss.sum(axis=1), axis=0) * 100

plt.figure(figsize=(10, 6))
stress_and_hair_loss_percent[1].plot(kind='bar')
plt.title('压力水平与脱发的关系')
plt.xlabel('压力水平')
plt.ylabel('脱发占比')
plt.xticks(rotation=0)
plt.tight_layout()
plt.show()

从图中可以看出,中等压力水平的人群脱发占比略高于其他压力水平。

4.2.4 不良护发习惯与脱发关系
python 复制代码
# 不良的护发习惯与脱发的关系
poor_hair_care_and_hair_loss = pd.crosstab(data['Poor Hair Care Habits '], data['Hair Loss'])
poor_hair_care_and_hair_loss_percent = poor_hair_care_and_hair_loss.div(poor_hair_care_and_hair_loss.sum(axis=1), axis=0) * 100

plt.figure(figsize=(10, 6))
poor_hair_care_and_hair_loss_percent[1].plot(kind='bar')
plt.title('不良的护发习惯与脱发的关系')
plt.xlabel('是否存在不良的护发习惯')
plt.ylabel('脱发占比')
plt.xticks(rotation=0)
plt.tight_layout()
plt.show()

从图中可以看出,存在不良护发习惯的人群中,脱发占比略低于无不良习惯的人群。

4.2.5 营养不足与脱发关系
python 复制代码
# 营养不足情况与脱发的关系
nutrition_and_hair_loss = pd.crosstab(data['Nutritional Deficiencies '], data['Hair Loss'])
nutrition_and_hair_loss_percent = nutrition_and_hair_loss.div(nutrition_and_hair_loss.sum(axis=1), axis=0) * 100

plt.figure(figsize=(15, 8))
nutrition_and_hair_loss_percent[1].plot(kind='bar')
plt.title('营养不足情况与脱发的关系')
plt.xlabel('营养不足情况')
plt.ylabel('脱发占比')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

从图中可以看出,缺乏锌、维生素D、生物素等营养素的人群中,脱发占比相对较高。

4.2.6 年龄与脱发关系
python 复制代码
plt.figure(figsize=(15, 8))
# 年龄与脱发的关系
sns.boxplot(x=data['Hair Loss'],y=data['Age'])
plt.title('年龄与脱发的关系')
plt.xlabel('是否脱发')
plt.ylabel('年龄')

从图中可以看出,不脱发的人比脱发的人年龄要大(中位数更高一点),后续还可以探索其它因素对于脱发的影响,

四、总结

通过本次可视化分析,我们发现以下因素与脱发有较强关联:

  1. 家族遗传:有秃头家族史的人群脱发风险较高。
  2. 营养状况:缺乏锌、维生素D等营养素的人群更容易脱发。
  3. 年龄和压力:年龄增长和中等压力水平可能增加脱发风险。

需要注意的是,部分因素如不良护发习惯与脱发的关系并不显著,这可能需要进一步的分析和研究来验证。希望本篇博客能为读者提供有价值的参考!


相关推荐
亚里随笔4 分钟前
TORL:解锁大模型推理新境界,强化学习与工具融合的创新变革
人工智能·llm·agent·agentic rl
贵沫末7 分钟前
AI——神经网络以及TensorFlow使用
人工智能·python·线性回归
人猿泰飞14 分钟前
【AI训练环境搭建】在Windows11上搭建WSL2+Ubuntu22.04+Tensorflow+GPU机器学习训练环境
windows·ubuntu·机器学习·wsl·gpu训练
量子位20 分钟前
北大团队引领 3D 生成与对齐革新:OctGPT 打破扩散模型垄断
人工智能·gpt·aigc
京东零售技术23 分钟前
生成式 AI 引爆广告效率革命,揭秘京东大模型应用架构的实践之道
人工智能
量子位29 分钟前
华人横扫 ICLR 2025 杰出论文奖,三篇均为华人一作,中科大何向南团队 / 清华姚班北大校友在列
人工智能
量子位29 分钟前
无需数据标注!测试时强化学习,模型数学能力暴增 | 清华 & 上海 AI Lab
人工智能·gitlab·aigc
硅谷秋水33 分钟前
UniOcc:自动驾驶占用预测和预报的统一基准
人工智能·深度学习·机器学习·计算机视觉·自动驾驶
Dm_dotnet34 分钟前
使用CAMEL实现Graph RAG过程记录
人工智能
BuluAI算力云36 分钟前
Second Me重磅升级:全平台Docker部署+OpenAI协议兼容
人工智能