基于数据挖掘与机器学习揭秘脱发主因

简介: 基于数据挖掘与机器学习揭秘脱发主因

一、绪论

背景描述

数据说明

字段 说明
Id 标识符
Genetics 是否有秃头家族史(1:是 / 0:否)
Hormonal Changes 是否经历了荷尔蒙变化
Medical Conditions 可能导致秃头的病史;斑秃、甲状腺问题、头皮感染、银屑病、皮炎等
Medications & Treatments 可能导致脱发的药物治疗史;化疗、心脏药物、抗抑郁药、类固醇等
Nutritional Deficiencies 营养不足情况 ;铁缺乏、维生素D缺乏、生物素缺乏、Ω-3脂肪酸缺乏等
Stress 压力水平
Age 年龄
Poor Hair Care Habits 是否存在不良的护发习惯
Environmental Factors 是否暴露于可能导致脱发的环境
Smoking 是否吸烟
Weight Loss 是否经历了显著的体重减轻
Hair Loss 是否脱发

显示详细信息

病史

英文 中文
Alopecia Areata 斑秃
Androgenetic Alopecia 雄激素型秃发
Dermatitis 皮炎
Dermatosis 皮肤病
Eczema 湿疹
Psoriasis 银屑病
Ringworm
Scalp Infection 头皮感染
Seborrheic Dermatitis 皮脂溢出性皮炎
Thyroid Problems 甲状腺问题

显示详细信息

药物治疗史

英文 中文
Accutane 治疗痤疮的药物
Antibiotics 抗生素
Antidepressants 抗抑郁药
Antifungal Cream 杀菌霜
Blood Pressure Medication 降血压药
Chemotherapy 化疗
Heart Medication 心脏药物
Immunomodulators 免疫调节剂
Rogaine 生发素
Steroids 类固醇

显示详细信息

营养不足

英文 中文
Biotin Deficiency 生物素缺乏
Iron deficiency 铁缺乏
Magnesium deficiency 镁缺乏
Omega-3 fatty acids Ω-3脂肪酸
Protein deficiency 蛋白质缺乏
Selenium deficiency 硒缺乏
Vitamin A Deficiency 维生素A缺乏
Vitamin D Deficiency 维生素D缺乏
Vitamin E deficiency 维生素E缺乏
Zinc Deficiency 锌缺乏

显示详细信息

压力水平

英文 中文
Low
Moderate
High

内容大概

数据分析:

  1. 平均年龄是多少?
  2. 年龄的分布情况如何?
  3. 哪些医疗条件是最常见的?
  4. 它们的发生频率是多少?
  5. 营养缺乏的种类及其出现频率如何?

数据可视化:

  1. 不同年龄段中患者脱发的比例是多少?(柱状图或饼图)
  2. 哪些因素与脱发之间存在关联?(热力图或相关性图来呈现各因素之间的相关性)
  3. 不同压力水平下脱发的情况如何?(箱线图或分布图)

机器学习:

  1. 建立一个分类模型来预测个体是否会患上脱发,以基于给定的因素进行预测。
  2. 利用聚类分析,探索数据集中是否存在不同类型的脱发群体。
  3. 使用决策树或随机森林等算法,识别出最能预测脱发的关键因素是什么。

二、导入包以及数据读取

       导入一些常用的Python库,包括pandas、numpy、seaborn、matplotlib、scipy和statsmodels等用于数据处理、统计分析、可视化和机器学习。创建StandardScaler对象,用于数据标准化。最后数据集。

三、数据预览

查看数据维度

查看数据信息

查看各列缺失值

查看重复值

       数据集包含999条记录和13个字段,根据数据信息,所有列都没有缺失值,也没有发现重复的记录,这意味着数据集已经是干净且准备好进行进一步分析的状态。

基本统计量(连续变量)

       年龄的平均值为34.19岁,标准差为9.38,最小值为18岁,最大值为50岁。脱发情况:平均值为0.498,标准差为0.50,样本比较平衡,后续建立分类模型的时候,不用平衡样本了。

分类变量唯一值情况

可视化

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

       可以看到数据集年龄是在18-50岁之间,其中20岁前后,38岁前后,50岁前这三个段的人数比较多,存在不良护发习惯的人略少于不存在不良护发习惯的人,认为自己暴露于可能导致脱发环境的人也略高于认为自己未暴露于可能脱发环境的人,其中使用过生发素、抗抑郁药、类固醇、心脏药物的人数比较多,无数据的人数最少。

       可以看到数据集吸烟的人数比不吸烟的人数多一些,没有经过过显著的体重减轻的人数更多一些,脱发与未脱发的人数分布比较均匀,后续建模的时候,不需要平衡样本了,缺乏锌、维生素D、生物素、维生素A的人数比较多。

四、探究导致脱发的因素

4.1可视化分析

  • 分析是否有秃头家族史与脱发的关系
  • 分析是否经历了荷尔蒙变化与脱发的关系
  • 分析可能导致秃头的病史与脱发的关系
  • 分析是否有秃头家族史与脱发的关系
  • 分析是否经历了荷尔蒙变化与脱发的关系
  • 分析可能导致秃头的病史与脱发的关系

       从图中可以得知:本数据集中有秃头家族史的人比没有秃头家族史的人脱发占比更大,经历了荷尔蒙变化似乎不是导致脱发的一个原因,因为两类人群在脱发情况比较接近,患有斑秃、雄激素型秃发、皮脂溢出性皮炎的人比其他患者脱发的概率更大。

  • 分析压力水平与脱发的关系
  • 分析分析可能导致脱发的药物治疗史与脱发的关系
  • 分析年龄与脱发的关系
  • 分析分析压力水平与脱发的关系
  • 分析分析可能导致脱发的药物治疗史与脱发的关系

       从图中可以得知:不脱发的人比脱发的人年龄要大(中位数更高一点),中等压力的人比其他两类人占比更大,服用过类固醇、抗生素的人群脱发更高。

  • 分析不良的护发习惯与脱发的关系
  • 分析暴露于可能导致脱发的环境与脱发的关系
  • 分析吸烟与脱发的关系
  • 分析显著的体重减轻与脱发的关系
  • 分析营养不足情况与脱发的关系
  • 分析不良的护发习惯与脱发的关系
  • 分析暴露于可能导致脱发的环境与脱发的关系
  • 分析吸烟与脱发的关系
  • 分析显著的体重减轻与脱发的关系
  • 分析营养不足情况与脱发的关系

       从上图可知:存在不良护发习惯的人脱发占比,反而比不存在不良护发习惯的人低,暴露于可能脱发环境的人脱发占比也比未暴露于可能脱发环境的人低,吸烟的人更不容易脱发,经历过体重减轻的人更容易脱发,这些都挺出乎意料的,镁缺乏、蛋白质缺乏的人群更容易脱发。

       总言而之,通过可视化分析,可以认为:秃头家族史、患有不同的病、年龄、服用不同的药物、经历过体重减轻、缺乏某些微量元素等因素会影响脱发,其他的因素要么影响差异不大,要么违背我们的常识(如:存在不良护发习惯的人脱发占比,反而比不存在不良护发习惯的人低),这些需要我们通过其他的方法进一步探究。

4.2统计检验

  • 对脱发组进行KS检验
  • 对非脱发组进行KS检验

       因为两组数据(未脱发组和脱发组)的KS检验的p值<0.05,所以表明数据不能进行传统的独立样本t检验,可以使用曼-惠特尼U检验。

  • 曼-惠特尼U检验

       经过曼-惠特尼U检验,得到p值<0.05,表明脱发组和非脱发组在年龄变量上存在显著差异。

  • 分类变量进行卡方检验

       通过进行卡方检验,我们可以对这些特征进行深入的分析和研究。然而,结果显示这些特征中没有一个与脱发存在统计学上的显著关联。这个发现引发了我们对脱发原因的进一步思考,暗示着脱发的原因可能比我们最初预期的更为复杂和多元。

       这种结果可能意味着,我们在分析中考虑的因素并不足以解释脱发的发生。这可能是因为还有一些其他重要的因素没有被包括在这个分析中,这些因素可能在脱发的发生中起着关键的作用。这些未被考虑的因素可能是一些我们尚未识别或理解的环境、遗传或生活方式因素。

       因此,我们需要建立一个更为全面和细致的统计模型来进行分析。这个模型应该包括更多的可能影响脱发的因素,以便我们能够更准确地理解脱发的原因。这个模型可能会包括更多的生物学、环境、生活方式和遗传因素,以便我们能够从多个角度来理解和解释脱发的发生。

五、逻辑回归模型

5.1数据预处理

  • 删除ID列
  • 将Yes替换成0,No替换成1
  • 替换压力(‘Low’: 1,‘Moderate’:2,‘High’:3)
  • 将名义变量(无序变量)进行杜热编码
  • Age 进行标准化
  • 对年龄进行标准化

5.2多重共线性检验

VIF结果

       因为对Medical Conditions,Medications & Treatments,Nutritional Deficiencies进行杜热编码后,导致新产生的特征列有无限大的方差膨胀因子,因此采取删除这三个特征生产的列,以Medical Conditions为例,这里选择删除Medical Conditions_No Data,这样不会影响数据结构,因为当其他的Medical Conditions列为0的时候,也就表示为No Data,同理,其他两个特征也是一样,独热编码后删除一列,我选择的都是数量最多的列。

VIF结果

       在对数据进行深入分析和处理的过程中,我们注意到了一个有趣的现象。当我们对数据进行删除操作后,我们发现大部分特征的方差膨胀因子(Variance Inflation Factor,简称VIF)都保持在1到2之间。这个范围通常被认为是可以接受的,因为它表明这些特征之间的多重共线性并不严重。

       然而,我们也注意到,有一个特殊的存在,那就是常数项的方差膨胀因子(VIF)。它的值大于10,这通常被认为是一个警示信号,表明可能存在多重共线性问题。但是,我们也需要明白,这个常数项的存在,是逻辑回归模型的一个基本组成部分,它代表了所有其他特征都为零时的概率。因此,即使其VIF值大于10,我们也不能简单地将其删除,因为这可能会影响模型的整体性能。

       总的来说,尽管常数项的VIF值大于10,但是考虑到其他特征的VIF值都在1-2之间,我们可以初步判断,这个数据集的特征并不存在严重的多重共线性问题。因此,我们可以安心地使用逻辑回归模型来进行后续的数据分析和建模工作。

5.3划分数据

x = new_data.drop('Hair Loss',axis=1)
y = new_data['Hair Loss']
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.2,random_state=15) 
• 1
• 2
• 3

5.4建立模型

5.5模型评估

混淆矩阵

混淆矩阵是一种用于评估分类模型性能的工具,它显示了模型在各个类别上的预测结果与实际结果之间的对应关系。

ROC曲线

逻辑回归模型评分如下:

  1. 精确度: 对于类别0,精确度为0.58,对于类别1,精确度为0.47。
  2. 召回率: 对于类别0,召回率为0.52,对于类别1,召回率为0.53。
  3. F1得分: 对于类别0,F1得分为0.55,对于类别1,F1得分为0.5。
  4. 准确率: 0.53
  5. ROC: 0.51

       模型的预测能力并不是特别好,这里我后面也采取了优化参数,但是效果不明显,感兴趣的读者可以去自己试着去优化参数。

5.6影响因素分析

       在对模型的系数进行深入分析后,我们得到了一些关于脱发与相关疾病、营养状况之间关系的重要发现。这些发现为我们提供了关于哪些因素可能导致人们更容易脱发的宝贵信息。

       首先,我们发现患有某些特定皮肤疾病的人更容易出现脱发问题。具体来说,那些患有皮脂溢出性皮炎、斑秃或雄激素型秃发的人,他们的脱发风险相对较高。这些疾病可能直接影响头皮的健康和毛囊的功能,从而增加了脱发的风险。

       其次,我们还发现了一个与营养状况有关的有趣现象。那就是维生素A的摄入与脱发之间存在明显的关联。在我们的研究中,缺乏维生素A的人更容易出现脱发问题。这一点通过模型中的负数系数得到了体现。这里的“负数”意味着“Nutritional Deficiencies_Vitamin A Deficiency”的值越接近0,就表示该人不存在维生素A的缺乏,因此他们不容易脱发。反之,如果这个值较大,就表明该人缺乏维生素A,从而更容易出现脱发问题。

       维生素A在人体中扮演着多种重要角色,包括支持免疫系统、维持视力和促进细胞生长。它在维持头皮健康和毛发生长方面也起着关键作用。因此,维生素A的缺乏可能会影响头皮的健康,导致毛囊受损,进而增加脱发的风险。

       综上所述,我们的研究揭示了一些关键的脱发风险因素,包括某些皮肤疾病和维生素A的缺乏。这些发现为预防和治疗脱发提供了新的方向,强调了保持健康的皮肤和良好的营养状况在防止脱发方面的重要性。对于那些容易脱发的人来说,改善饮食,确保摄入足够的维生素A,以及及时就医治疗相关皮肤疾病,可能是减少脱发风险的有效方法。

六、随机森林模型

6.1建立模型

6.2模型评估

混淆矩阵

ROC曲线

随机森林模型评分如下:

  1. 精确度: 对于类别0,精确度为0.53,对于类别1,精确度为0.40。
  2. 召回率: 对于类别0,召回率为0.55,对于类别1,召回率为0.38。
  3. F1得分: 对于类别0,F1得分为0.54,对于类别1,F1得分为0.39。
  4. 准确率: 0.48。
  5. ROC: 0.49。

6.3影响因素分析

       通过对模型的影响度分析和统计检验的双重确认,我们确定年龄是影响模型预测的关键因素,这一发现将有助于我们在未来的工作中更好地理解和应用模型。

七、总结

       在本次研究中,我们采用了数据可视化和统计分析的方法,对影响脱发的各种因素进行了详尽的探索性分析。为了更准确地理解这些因素与脱发之间的关联,我们还构建了逻辑回归模型和随机森林模型。我们可以知道,脱发的主要影响因素包括年龄、患有皮脂溢出性皮炎、斑秃、雄激素型秃发等病症,以及缺乏维生素A。这些发现为我们理解和预防脱发提供了有价值的信息。


🔍 温馨提示

       如果对本文有任何疑问,欢迎点击下方名片,了解更多详细信息!



相关文章
|
3月前
|
机器学习/深度学习 人工智能 搜索推荐
【数据挖掘】2022年深信服科技机器学习工程师笔试
总结了深信服科技机器学习工程师笔试中的几道题目及其解答,涉及数据结构、机器学习评估指标和过拟合缓解方法等内容。
93 1
|
2月前
|
机器学习/深度学习 数据采集 算法
数据挖掘和机器学习算法
数据挖掘和机器学习算法
|
3月前
|
机器学习/深度学习 存储 人工智能
【数据挖掘】2022年2023届秋招知能科技公司机器学习算法工程师 笔试题
本文是关于2022-2023年知能科技公司机器学习算法工程师岗位的秋招笔试题,包括简答题和编程题,简答题涉及神经网络防止过拟合的方法、ReLU激活函数的使用原因以及条件概率计算,编程题包括路径行走时间计算和两车相向而行相遇时间问题。
75 2
【数据挖掘】2022年2023届秋招知能科技公司机器学习算法工程师 笔试题
|
3月前
|
机器学习/深度学习 自然语言处理 算法
【数据挖掘】百度机器学习-数据挖掘-自然语言处理工程师 历史笔试详解
文章汇总并解析了百度机器学习/数据挖掘工程师/自然语言处理工程师历史笔试题目,覆盖了多分类任务激活函数、TCP首部确认号字段、GMM-HMM模型、朴素贝叶斯模型、SGD随机梯度下降法、随机森林算法、强连通图、红黑树和完全二叉树的高度、最长公共前后缀、冒泡排序比较次数、C4.5属性划分标准、语言模型类型、分词算法、贝叶斯决策理论、样本信息熵、数据降维方法、分箱方法、物理地址计算、分时系统响应时间分析、小顶堆删除调整等多个知识点。
43 1
【数据挖掘】百度机器学习-数据挖掘-自然语言处理工程师 历史笔试详解
|
3月前
|
机器学习/深度学习 人工智能 算法
【数据挖掘】2022年2023届秋招奇虎360机器学习算法工程师 笔试题
本文提供了奇虎360公司2022年秋招机器学习算法工程师岗位的笔试题内容,包括选择题和编程题,涉及概率统计、数据结构、机器学习、计算机组成原理等多个领域。
92 5
|
3月前
|
机器学习/深度学习 算法 数据挖掘
【数据挖掘】2022年2023届秋招宏瓴科技公司机器学习算法工程师 笔试题
关于宏瓴科技有限公司2022-2023年秋招机器学习算法工程师岗位的笔试题目及作者个人对部分题目的解答尝试,涉及贝叶斯误差和贝叶斯最优分类器的概念、贝叶斯误差的重要性和估算方法,以及如何有效利用训练集和测试集进行深度学习模型训练的数据集划分策略。
56 4
|
3月前
|
机器学习/深度学习 自然语言处理 算法
【数据挖掘】百度机器学习-数据挖掘-自然语言处理工程师 2023届校招笔试详解
百度2023届校招机器学习/数据挖掘/自然语言处理工程师笔试的题目详解
80 1
|
4天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
21 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
阿里云人工智能平台 PAI 团队发表的图像编辑算法论文在 MM2024 上正式亮相发表。ACM MM(ACM国际多媒体会议)是国际多媒体领域的顶级会议,旨在为研究人员、工程师和行业专家提供一个交流平台,以展示在多媒体领域的最新研究成果、技术进展和应用案例。其主题涵盖了图像处理、视频分析、音频处理、社交媒体和多媒体系统等广泛领域。此次入选标志着阿里云人工智能平台 PAI 在图像编辑算法方面的研究获得了学术界的充分认可。
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
|
25天前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)