本数据集涵盖了与睡眠和日常习惯有关的诸多变量。如性别、年龄、职业、睡眠时间、睡眠质量、身体活动水平、压力水平、BMI类别、血压、心率、每日步数、以及是否有睡眠障碍等细节。
-
数据集的主要特征: 综合睡眠指标:
-
探索睡眠持续时间、质量和影响睡眠模式的因素。
-
生活方式因素:分析身体活动水平、压力水平和 BMI 类别。
-
心血管健康:检查血压和心率测量值。
-
睡眠障碍分析:确定失眠和睡眠呼吸暂停等睡眠障碍的发生。
-
数据集列:人员 ID:
-
每个人的标识符。
-
性别:人员的性别(男性/女性)。
-
年龄:人员的年龄(以年为单位)。
-
职业:人的职业或职业。
-
睡眠持续时间(小时):该人每天睡眠的小时数。
-
睡眠质量(量表:1-10):对睡眠质量的主观评分,范围从1到10。
-
身体活动水平(分钟/天):该人每天进行身体活动的分钟数。
-
压力水平(等级:1-10):对人所经历的压力水平的主观评级,范围从1到10。
-
BMI 类别:人的 BMI 类别(例如,体重不足、正常、超重)。
-
血压(收缩压/舒张压):人的血压测量值,表示收缩压超过舒张压。
-
心率 (bpm):人的静息心率(以每分钟心跳数为单位)。
-
每日步数:此人每天的步数。
-
睡眠障碍:人体内是否存在睡眠障碍(无、失眠、睡眠呼吸暂停)。
有关睡眠障碍专栏的详细信息:
睡眠健康和生活方式数据集包括400行和13列,涵盖了与睡眠和日常习惯相关的广泛变量。它包括性别、年龄、职业、睡眠持续时间、睡眠质量、身体活动水平、压力水平、身体质量指数分类、血压、心率、每日步数以及是否存在睡眠障碍等详细信息。
在这里,我们将使用已经可供使用的“Sleep _ health _ and _ life style _ dataset . CSV”数据库,下面您将看到数据的分析、数据的处理以及使用机器模型的学习分类来实现我们的目标。
这里我们可以看到,我们有分类和连续变量,我们也可以看到,我们没有空值。
- Person ID(个人ID):每个人的标识符。
- Gender(性别):人的性别(男/女)。
- Age(年龄):以年为单位的人的年龄。
- Occupation(职业):人的职业或专业。
- Sleep Duration (hours)(睡眠持续时间(小时)):人每天睡眠的小时数。
- Quality of Sleep (scale: 1-10)(睡眠质量(等级:1-10):对睡眠质量的主观评价,范围从1到10。
- Physical Activity Level (minutes/day)(身体活动水平(分钟/天)):个人每天从事身体活动的分钟数。
- Stress Level (scale: 1-10)(压力水平(等级:1-10)):对人所经历的压力水平的主观评级,范围从1到10。
- BMI Category(身体质量指数类别):个人的身体质量指数类别(例如,体重不足、正常、超重)。
- Blood Pressure (systolic/diastolic)(血压(收缩压/舒张压)):个人的血压测量值,表示为收缩压/舒张压。
- Heart Rate (bpm)(心率(bpm)):人的静息心率,单位为每分钟心跳数。
- Daily Steps(每日步数):此人每天走的步数。
- Sleep Disorder(睡眠障碍):人是否存在睡眠障碍(无、失眠、睡眠呼吸暂停)。
分类变量。
在这里,当我们查看分类变量时,我们可以看到我们的数据在男性和女性之间分布良好,查看身体质量指数,我们可以看到大多数人在正常和超重之间,当我们查看我们的目标变量时,我们可以看到大多数人没有睡眠问题,那些有睡眠问题的人在失眠和睡眠呼吸暂停之间分布良好。
看看职业一栏,我们可以看到我们有一些优势职业。
连续变量。
当我们看我们的分类变量时,我们可以看到,我们在大多数变量中没有一个模式,几乎所有的变量在一些数据中显示平衡,而在另一些数据中不显示平衡。
查看箱线图,我们可以确认我们没有需要处理的异常值
双变量分析。
当我们比较我们的目标变量和分类变量时,我们可以看到有趣的模式,例如女性比男性有更多的睡眠问题,同样的,当我们看身体质量指数变量时,超重的人更有可能有睡眠问题,正常体重的人通常没有任何问题。
当我们看病人的职业时,我们可以看到一个非常有趣的事情,教授,护士和售货员更有可能有睡眠问题,当我们看律师,医生和工程师时,我们可以看到他们一般没有任何问题。
这里,我们将删除不会在模型中使用的Person ID变量。
标准缩放器
在这里,我们将使用StandardScaler将我们的数据放在相同的比例中
将数据转换为训练e测试,这里我们将使用30%的数据来测试机器学习模型。
朴素贝叶斯
运行高斯模型。
这里我们将使用朴素贝叶斯模型,我们将使用我们的正态数据测试高斯模型。
在我们的第一个模型中,我们有一个非常差的结果,只有53%的准确率,虽然它只能很好地预测有问题的人,但它在预测没有问题的人时结果很差。
决策图表
这里我们将使用决策树模型,我们将测试熵和基尼系数的计算。
在这里,我们应用GridSearch来检查哪些是可以使用的最佳指标。
运行决策树。
现在,在我们的决策树模型中,与朴素贝叶斯相比,我们有了非常大的改进,我们有89.38%的准确性,该模型能够很好地预测3个类别。
BMI Category_Normal 0.450011
Physical Activity Level 0.227875
Age 0.109282
BMI Category_Normal Weight 0.090082
Sleep Duration 0.041911
Stress Level 0.038346
Blood Pressure_142/92 0.017656
Occupation_Teacher 0.013466
Occupation_Lawyer 0.005720
Occupation_Engineer 0.002862
Quality of Sleep 0.002789
Gender_Female 0.000000
Blood Pressure_130/85 0.000000
Blood Pressure_122/80 0.000000
Blood Pressure_125/80 0.000000
Blood Pressure_125/82 0.000000
Blood Pressure_126/83 0.000000
Blood Pressure_128/84 0.000000
Blood Pressure_128/85 0.000000
Blood Pressure_129/84 0.000000
Blood Pressure_130/86 0.000000
Blood Pressure_120/80 0.000000
Blood Pressure_131/86 0.000000
Blood Pressure_132/87 0.000000
Blood Pressure_135/88 0.000000
Blood Pressure_135/90 0.000000
Blood Pressure_139/91 0.000000
Blood Pressure_140/90 0.000000
Blood Pressure_140/95 0.000000
Blood Pressure_121/79 0.000000
Blood Pressure_118/76 0.000000
Blood Pressure_119/77 0.000000
Gender_Male 0.000000
Occupation_Accountant 0.000000
Occupation_Doctor 0.000000
Occupation_Manager 0.000000
Occupation_Nurse 0.000000
Occupation_Sales Representative 0.000000
Occupation_Salesperson 0.000000
Occupation_Scientist 0.000000
Occupation_Software Engineer 0.000000
Daily Steps 0.000000
Heart Rate 0.000000
BMI Category_Obese 0.000000
BMI Category_Overweight 0.000000
Blood Pressure_115/78 0.000000
Blood Pressure_117/76 0.000000
Blood Pressure_118/75 0.000000
Blood Pressure_115/75 0.000000
dtype: float64
随机森林
这里我们将使用随机森林模型,我们将测试熵和基尼系数的计算。
应用网格搜索
运行随机森林。
在这里,在随机森林模型中,我们设法提高了更多,我们获得了90.26%的准确性。
检查模型中最重要的变量
MI Category_Normal 0.131351
BMI Category_Overweight 0.130821
Blood Pressure_140/95 0.092496
Age 0.086894
Sleep Duration 0.073755
Occupation_Nurse 0.060407
Physical Activity Level 0.055393
Heart Rate 0.049097
Daily Steps 0.048757
Stress Level 0.041599
Quality of Sleep 0.030586
Occupation_Salesperson 0.026217
Blood Pressure_135/90 0.025475
Blood Pressure_130/85 0.020394
Gender_Male 0.015391
Blood Pressure_125/80 0.014591
Occupation_Doctor 0.013854
Occupation_Engineer 0.012983
Occupation_Teacher 0.012427
Gender_Female 0.011748
BMI Category_Normal Weight 0.008467
BMI Category_Obese 0.006766
Blood Pressure_120/80 0.005265
Occupation_Accountant 0.003363
Occupation_Lawyer 0.002648
Blood Pressure_132/87 0.002587
Occupation_Sales Representative 0.002245
Blood Pressure_130/86 0.001697
Blood Pressure_128/85 0.001614
Blood Pressure_128/84 0.001585
Blood Pressure_142/92 0.001332
Blood Pressure_131/86 0.001149
Blood Pressure_139/91 0.000985
Blood Pressure_129/84 0.000805
Blood Pressure_140/90 0.000802
Blood Pressure_135/88 0.000744
Blood Pressure_126/83 0.000704
Blood Pressure_118/75 0.000622
Occupation_Software Engineer 0.000531
Blood Pressure_115/75 0.000520
Occupation_Scientist 0.000515
Blood Pressure_121/79 0.000504
Blood Pressure_117/76 0.000260
Blood Pressure_115/78 0.000051
Blood Pressure_119/77 0.000001
Blood Pressure_122/80 0.000000
Blood Pressure_118/76 0.000000
Blood Pressure_125/82 0.000000
Occupation_Manager 0.000000
dtype: float64
额外的树
这里我们将使用额外的树模型,我们将测试熵和基尼系数的计算。
应用网格搜索
kNN
这里我们将使用K-Neighbors模型,我们将使用GridSearch模型来找出在该模型中使用的最佳指标。
在这里,我们将使用GridSearch来找出在该模型中使用的最佳指标。
运行K-Neighbors。
虽然我们的结果稍差,但它仍然是一个很好的模型,准确率为88.49%。
逻辑回归
这里我们将使用线性回归模型。
我们设法得到了一个更好的结果,在逻辑回归模型中,我们有91.11%的准确率。
adaboost算法
这里我们将使用AdaBoost模型,我们将使用GridSearch模型来找出在该模型中使用的最佳指标。
应用网格搜索
运行Ada Boost。
这里,在AdaBoost模型中,我们设法保持与模型相同的质量,准确率为91.15%。
我们的数据不是很多,,我们的样本总共只有13列374个数据,另一件使我们的工作更容易的事情是,我们没有空值,所以我们不需要执行处理。
当进行数据分析时,我们可以看到我们的数据之间有很多相关性,但由于我们几乎没有可用的数据,所以没有删除这些数据,当我们具体查看我们的分类变量时,我们可以看到我们的数据在性别变量方面很平衡, 当我们查看我们的目标变量时,我们可以看到我们的大部分数据没有睡眠问题,那些有睡眠问题的数据在两个类别之间很好地平衡(睡眠呼吸暂停和失眠),当我们查看连续变量时,我们没有发现它们之间的模式,查看箱线图时,我发现没有必要处理异常值,数据分布良好。
当我们观察双变量分析比较我们的目标变量和我们的解释数据时,我们已经得出了一些结论,女性更有可能有睡眠问题,当我们看身体质量指数变量时,我们可以看到正常体重的人通常没有问题,超重的人通常更有可能有睡眠问题。 当我们看可变职业时,有趣的是看到一些职业比其他职业更容易有睡眠问题,另一个引起我注意的变量是年龄变量,老年人更容易有睡眠问题。
转载请注明来自石家庄天鲲化工设备有限公司 ,本文标题:《睡眠健康数据分析》
还没有评论,来说两句吧...