基于python个人睡眠质量分析设计与实现
《运动与睡眠》分析运动对睡眠质量的影响 #生活技巧# #健康生活方式# #健康生活方式书籍# #睡眠管理#
温馨提示:文末有 CSDN 平台官方提供的学长 QQ 名片 :)
1. 项目简介
Sleep Cycle(SC;NorthCube,Gothenburg,Sweden)是一款可在基于android和iOS设备上使用的移动电话应用程序。SC是一个智能闹钟,它可以跟踪你的睡眠模式,并在浅睡眠中唤醒你。SC会跟踪整晚的睡眠情况,并使用30分钟的窗口,在这个窗口中,警报会在最轻的阶段(即浅睡眠)结束,达到所需的警报时间。SC通过两种运动检测模式中的一种来进行睡眠运动检测:(i)使用内置麦克风分析运动的麦克风,或(ii)使用手机内置加速计的加速计。
本项目利用 pandas + Matplotlib + seaborn + sklearn 等工具包,对睡眠数据进行探索式可视化分析,并构建 KNN、LR、决策树、随机森林等算法实现对睡眠质量的预测建模。
2. 功能组成
基于python个人睡眠质量分析建模的功能主要包括:
3. 数据读取和预处理
本项目采用 SC提供的数据,并通过iOS上的Northcube的Sleep Cycle应用程序收集。
Start-开始睡眠时间
End-结束睡眠时间
Sleep quality-睡眠质量
Time in bed-躺在床上的时间
Wake up-醒来状态
Sleep Notes-睡眠笔记
Heart rate-睡眠心率
Activity (steps)-活动(步骤)
缺失值分析,检查整个数据集中的空部分,红色部分缺少数据:
“Wake up”、“Sleep Notes”和“Heart rate”功能中缺少数据。我们可以注意到“卧床时间”的特征是从“开始”和“结束”两个方面来计算的。正如我们所知,睡眠质量不仅取决于睡眠的持续时间“在床上的时间”,还取决于你睡眠的“开始”时刻。
df['Start time'] = pd.Series([val.time() for val in df['Start']])
df['End time'] = pd.Series([val.time() for val in df['End']])
df['Start time in second'] = df['Start time'].apply(lambda x: (x.hour*60+x.minute)*60 + x.second)
df['End time in second'] = df['End time'].apply(lambda x: (x.hour*60+x.minute)*60 + x.second)
4. 数据探索式可视化分析
4.1 非空特征间的相关性
fig = plt.figure(figsize = (12,10))
r = sns.heatmap(df.corr(),cmap='Oranges')
r.set_title('Correlation')
检查特征与“睡眠质量”的相关性:
df.corr()['Sleep quality'].sort_values(ascending = False)
Sleep quality 1.000000
Time in bed 0.695206
Start time in second 0.234936
End time in second 0.076523
Heart rate -0.037846
Activity (steps) -0.190491
很明显,“卧床时间”与“睡眠质量”的关系最大,除了它本身。睡眠时间的“开始时间”与“结束时间”的关系更大。
4.2 全局特征 pairplot
4.3 “睡眠质量”和“卧床时间”与单位秒的联合绘图
4.4 开始睡眠和结束睡眠时间的柱状图
4.5 步数 Steps 的分布柱状图
从上面的柱状图来看,“步数”不是睡眠时的“步数”,而是白天的“步数”,代表白天的活动。
4.6 “睡眠质量”和“活动性”特征与秒级别单位的联合图。
df_new.corr()['Sleep quality'].sort_values(ascending = False)
plt.figure(figsize=(10,6))
plt.scatter(df_new['Sleep quality'],df_new['Activity (steps)'], c="g", alpha=0.5, marker=r'$\clubsuit$',
label="Sleep quality vs. Steps")
plt.xlabel("Sleep quality")
plt.ylabel("Steps during the day")
plt.legend(loc='upper left')
plt.show()
如果我们只看“睡眠质量”和“步数 step ”之间的相关性,它们就没有那么大的关系了。根据经验,人们普遍认为,白天大量活动可以改善睡眠质量。然而,我们在这里没有看到这种关系。
5. 机器学习建模 Machine Learning
5.1 训练集和测试集划分
X = df[['Time in bed', 'Start time in second','End time in second','Activity (steps)']].values
y = df['Sleep quality'].values
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=101)
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
scaler.fit(X_train)
X_train = scaler.transform(X_train)
X_test = scaler.transform(X_test)
5.2 LinearRegression Model
from sklearn.linear_model import LinearRegression
lm = LinearRegression()
lm.fit(X_train,y_train)
lm.score(X_test,y_test)
print('test accuracy:', lm.score(X_test,y_test))
5.3 KNN (K nearest neighbors) model
from sklearn.neighbors import KNeighborsClassifier
error_rate =[]
for i in range(1,20):
knn = KNeighborsClassifier(n_neighbors=i)
knn.fit(X_train,y_train)
pred_i = knn.predict(X_test)
error_rate.append(np.mean(pred_i != y_test))
plt.figure(figsize=(10,6))
plt.plot(range(1,20),error_rate, color ='red',linestyle='dashed',marker='v',
markerfacecolor = 'blue', markersize=10)
plt.title('Error Rate vs. K value')
plt.xlabel('K')
plt.ylabel('Error Rate')
同理构建Logistic Regression Model、Decision Tree Model、Random Forest Model 、Support Machine Vector (SVM) Algorithm等机器学习模型,受篇幅限制,此处省略。
对多个模型的预测结果进行对比:
Linear Regresion Model precision: 0.41236039548039705
KNN Model precision: 0.06741573033707865
Logistic Regression Model precision: 0.03932584269662921
Decision Tree Model precision: 0.05056179775280899
Random Tree Model precision: 0.03932584269662921
Support Machine Vector precision: 0.033707865168539325
6. 睡眠质量可视化分析预测系统
6.1 系统首页与注册登陆
6.2 睡眠质量影像因素分析
6.3 睡眠质量相关性分析
6.4 睡眠质量评分预测
7. 总结
本项目利用 pandas + Matplotlib + seaborn + sklearn 等工具包,对睡眠数据进行探索式可视化分析,并构建 KNN、LR、决策树、随机森林等算法实现对睡眠质量的预测建模。
欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。技术交流、源码获取认准下方 CSDN 官方提供的学长 QQ 名片 :)
精彩专栏推荐订阅:
1. Python 毕设精品实战案例
2. 自然语言处理 NLP 精品实战案例
3. 计算机视觉 CV 精品实战案例
网址:基于python个人睡眠质量分析设计与实现 https://www.yuejiaxmz.com/news/view/512267
相关内容
睡眠质量分析:用数学建模提高您的健康生活【毕业设计】大数据睡眠数据分析与可视化
基于Python的个人健康管理系统的设计与实现
基于python+flask框架的健康管理系统的设计与实现(开题+程序+论文) 计算机毕设
Python中的生活数据分析与个人健康监测.pptx
python基于天气预测的生活规划系统的设计与实现
基于Python的智能健康管理与监测系统设计与实现 毕业设计开题报告
基于python的城市道路智慧交通管理系统的设计与实现
睡眠秘密:睡眠与健康的关系研究1.背景介绍 睡眠是人类的基本生理需求之一,对于人类的健康和生活质量有着重要的影响。近年来
基于Python实现智能健身管理系统计算机毕业设计