发明内容
本发明实例通过提供基于真实世界研究的智能睡眠监测方法和***,该***可以自动爬取更新实时数据并建立“睡眠”有关中英文真实世界研究数据库,自动完成睡眠质量检测评估及半智能查找睡眠质量影响因素,智能判断用户近期睡眠质量状况,并实现自动优化***模型,解决了现有技术中人们通常只能通过到医院监测并通过药物控制才能了解自己的睡眠质量并加以改善,而无法在家里自己就可以监测自身的睡眠质量,有时在自己没留意的情况下就引发了睡眠质量问题,而全然不知自己错过了最好治疗时间的问题。
基于真实世界研究的智能睡眠监测方法,包括步骤:
S1:确立评价对象,获取所述评价对象的真实世界历史睡眠数据;
S2:对步骤S1的真实世界历史睡眠数据进行清洗和分类后,通过情感分析获取睡眠质量评估数据集;
S3:训练步骤S2的睡眠质量评估数据集,建立睡眠非相关数据的睡眠质量预测模型;
S4:获取所述评价对象的真实世界当前非相关数据组成输入集,通过步骤S3的睡眠质量预测模型输出睡眠质量评价结果;
S5:通过聚类算法总结睡眠影响因素,建立具有影响因素标识属性的睡眠相关数据集;
S6:训练具有影响因素标识属性的睡眠相关数据集,建立非睡眠相关影响因素数据预测模型;
S7:获取所述评价对象的真实世界当前非相关数据组成输入集,通过步骤S6的非睡眠相关影响因素数据预测模型输出睡眠影响因素属性结果数据集;
S8:建立非睡眠相关质量评估预测模型和非睡眠相关影响因素数据预测模型优化模型;
S9:输入新的实时数据到S8,优化非睡眠相关质量评估预测模型和非睡眠相关影响因素预测模型,形成最优参数组合,提高准确率。
真实世界研究(Real World Study,简称RWS)是临床研究中的一种新理念,概括地讲,RWS属于效果研究的范畴,其核心思想是研究的实施地点和条件为真实的临床实践环境。受试者不加特别限制和选择,为临床实际前来就诊的患者,干预措施的使用也与临床实际情况相同。RWS强调在广泛受试人群和大样本量的基础上开展长期评价,并注重有临床意义的结局指标和在数据采集、管理和分析方面的严格控制。RWS的最大优势是可以为日常临床环境下治疗措施的有效性和安全性提供证据,但其缺点可能是在努力确保外推性的同时牺牲了一部分内在有效性。
真实世界研究的领域涉及到应用人工智能计算机技术,从真实世界中爬取真实世界数据、抽取真实世界证据,以此作为医药、医疗、医保三环联动的保障,为医药和医疗有效性提供有力证据及辅助。
本发明实例提供的基于真实世界研究的智能睡眠监测方法,从真实世界中爬取有关“睡眠”/“sleep”数据,基于大数据环境建立数据库,结合Spark2.0,应用但不仅限于Python人工智能技术,将真实世界数据转化为真实世界证据,从自身感受出发,实现人体睡眠质量检测与睡眠影响因素分析,基于多线程开发,使得使用者可以在自己手机或其他终端设备上实时监测自身或家人睡眠质量,并了解自身影响睡眠的因素,从而得已防范并及时医治改善睡眠。
本发明实例提供的方法基于Hadoop大数据环境及Spark2.0开发环境使用Python爬取、分析、训练模型,使用Python开发Spark机器学习及深度学习与大数据应用,Spark MLPipeline机器学习流程及多线程开发,使用基于内存的分布式计算框架,存取Hadoop HDFS分布式存储大量数据,高产力多重复运算机器学习优化模型,Spark MLlib公开支持的机器学习算法有限,如使用非直接支持的算法,需针对该算法对Spark进行进一步开发,即在hadoop环境下运行Python程序编写的程序包。
优选地,所述历史睡眠数据的关键词包括睡和/或sleep。
该类数据包含但不仅限于微博、推特、脸书、微信、头条评论、旅游网站、网上购物等社会媒体网络数据、病人日志数据、和99健康网及爱康网“睡眠”等相关问答数据。
训练、验证及测试数据集整合模块包含以“,”为单位,割取与“睡眠”有关数据集中包含“睡”/“sleep”的文字数据,整合为一条“睡”/“sleep”相关评论数据,随机选取3/5的数据作为训练数据,另外2/5的数据作为验证数据,与“睡眠”无关数据集作为测试数据。
优选地,步骤S1所述获取采用的爬虫器包括Scrapy框架。
优选地,步骤S1所述获取采用的规则包括Xpath和RegExp。
优选地,步骤S1所述历史睡眠数据包括评论数据和日志数据。
优选地,所述智能睡眠监测方法还包括对步骤S3和S6的睡眠质量预测模型及影响因素数据预测模型进行优化。
智能睡眠监测***,包括:
真实世界数据收集模块,用于搜索爬取历史睡眠数据;
数据清洗及分类模块,用于对历史睡眠数据进行清洗和分类;
训练、验证及测试数据集整合模块,用于训练、验证及测试历史睡眠数据进;
睡眠质量监测评估模块,用于判断评价对象对睡眠话题的情感倾向,确定评价对象对自身睡眠质量的评估;
睡眠影响因素聚类分析模块,用于计算清洗过后的训练及验证数据的Perplexity值以确定聚类数据,对聚类数据进行聚类,提取每类的关键词作为睡眠影响因素真实世界证据;
睡眠影响因素分类模块,用于对测试数据进行睡眠影响因素分类;
睡眠监测***评估和优化模块,用于对模型进行持续优化调整,自动选取准确率最高的参数组。
其中,真实世界数据收集模块包含子模块:“睡”/“sleep”关键词真实世界数据模块以及评价人相关真实世界数据模块。采用爬虫器采用但不仅限于采用Scrapy框架,使用但不仅限于使用selenium模拟浏览器及模拟点击操作,应用但不仅限于Xpath和RegExp规则提取所需有效数据,有效数据包含但不仅限于评论数据、日志数据。
“睡”/“sleep”关键词真实世界数据模块包含搜索“睡”/“sleep”并自动爬取相关真实世界数据,该类数据包含但不仅限于微博、推特、脸书、微信、头条评论、旅游网站、网上购物等社会媒体网络数据、病人日志数据、和99健康网及爱康网“睡眠”等相关问答数据。
评价人相关真实世界数据模块包括遍历爬取评论者/日志所属病人/问答者等当天的其他评论数据/症状或日常描述/其他问答等真实世界数据。
数据清洗及分类模块包含去除停用词、识别并分离“睡眠”相关数据和“睡眠”不相关数据。
训练、验证及测试数据集整合模块包含以“,”为单位,割取与“睡眠”有关数据集中包含“睡”/“sleep”的文字数据,整合为一条“睡”/“sleep”相关评论数据,随机选取3/5的数据作为训练数据,另外2/5的数据作为验证数据,与“睡眠”无关数据集作为测试数据。
睡眠质量检测评估模块包含使用Textblob、SnowNLP等有关算法判断使用者对本人睡眠质量的自我评估。
睡眠质量检测评估模块包含两个模块,子模块一:睡眠相关数据集质量检测;子模块二:非睡眠相关数据集睡眠监测。子模块一包含使用但不仅限于Textblob、SnowNLP有关算法判断使用者对本人睡眠质量的自我评估。本实例中使用“Textblob”API测量包含“睡”的中文短句数据的情感分数,使用“SnowNLP”API判断包含“sleep”的英文短句数据情感分数,以此作为该评论者对自身睡眠质量的自我评估分数。子模块二包含使用但不仅限于cnn及其改良算法、rnn及其改良算法、svm、bp-svm等分类算法,或使用但不仅限于NMPC、随机森林等非线性预测模型及相关算法,将子模块一所产生结果数据集当作训练集验证数据集,非睡眠相关数据作为测试数据集输入子模块二。
睡眠影响因素聚类分析模块包含计算清洗过后的训练及验证数据的Perplexity值以确定聚类数目,并使用但不仅限于使用LDA、自组织神经网络SOM、COBWeb和K-Prototypes算法对其进行聚类,提取每类关键词作为睡眠影响因素真实世界证据。
睡眠影响因素分类模块包含使用但不仅限于ANN、CNN及SVM算法,对与“睡眠”/“sleep”无关数据集(测试数据)进行睡眠影响因素分类。
睡眠监测***评估及优化模块将新增真实世界数据实时收集,并经过经数据清洗及分类模块和数据输入到训练、验证及测试数据集整合模块处理后,作为训练数据输入到睡眠监测***评估及优化模块和睡眠影响因素聚类分析模块。该模块将新增真实数据随机穿插在原始已有数据库中,在之后的睡眠质量检测评估模块、睡眠影响因素聚类分析模块和睡眠影响因素分类模块,形成新的参数组合,遍历这些参数组合,通过但不仅限于降低验证数据的误差(MSE)值对睡眠质量检测评估模块、睡眠影响因素聚类分析模块、睡眠影响因素分类模块进行不断优化调整,自动选取准确率最高误差最小的参数组。
本发明实例的智能睡眠监测***致力于基于真实世界研究实现对睡眠质量的监测,可终端封装在手机app客户端中,使用者开放或部分开放读取手机文字输入权限,即读取手机短信发送、微信发送、微博推文发送、今日动态分享等,或者使用者直接在app中输入今日动态,该***都将测量出使用者前一天睡眠质量,一周或一个月绘制折线图输出,且当该使用者使用此***次数达到一定级别,及产生的数据积累到一定级别后,可以但不仅限于使用LSTM、ARIMA预测该使用者当天或未来一周的睡眠情况,以此达到监控效果。
本发明实例的有益效果
1、本发明实例提供的基于真实世界研究的智能睡眠监测方法,可以自动爬取更新实时数据并建立“睡眠”有关中英文真实世界研究数据库,自动完成睡眠质量检测评估及半智能查找睡眠质量影响因素,智能判断用户近期睡眠质量状况,并实现自动优化***模型,解决了现有技术中人们通常只能通过到医院监测并通过药物控制才能了解自己的睡眠质量并加以改善,而无法在家里自己就可以监测自身的睡眠质量的问题;
2、本发明实例提供的基于真实世界研究的智能睡眠监测方法,可以避免出现睡眠问题没及时发现而错过最佳治疗时间的问题;
3、本发明实例提供的基于真实世界研究的智能睡眠监测***,该***可以普遍应用于人们生活中,最终实现人们使用手机app来实时监控自身近期的睡眠质量,了解自身睡眠不当的原因,防范未然。
具体实施方式
本发明实例通过提供基于真实世界研究的智能睡眠监测方法和***,该***可以自动爬取更新实时数据并建立“睡眠”有关中英文真实世界研究数据库,自动完成睡眠质量检测评估及半智能查找睡眠质量影响因素,智能判断用户近期睡眠质量状况,并实现自动优化***模型,解决了现有技术中人们通常只能通过到医院监测并通过药物控制才能了解自己的睡眠质量并加以改善,而无法在家里自己就可以监测自身的睡眠质量,有时在自己没留意的情况下就引发了睡眠质量问题,而全然不知自己错过了最好治疗时间的问题。
为了更好的理解上述技术方案,下面将结合具体的实施方式对上述技术方案进行详细地说明。
实例1
基于真实世界研究的智能睡眠监测方法,包括步骤:
S1:确立评价对象,获取所述评价对象的真实世界历史睡眠数据;
S2:对步骤S1的真实世界历史睡眠数据进行清洗和分类后,通过情感分析获取睡眠质量评估数据集;
S3:训练步骤S2的睡眠质量评估数据集,建立睡眠非相关数据的睡眠质量预测模型;
S4:获取所述评价对象的真实世界当前非相关数据组成输入集,通过步骤S3的睡眠质量预测模型输出睡眠质量评价结果;
S5:通过聚类算法总结睡眠影响因素,建立具有影响因素标识属性的睡眠相关数据集;
S6:训练具有影响因素标识属性的睡眠相关数据集,建立非睡眠相关影响因素数据预测模型;
S7:获取所述评价对象的真实世界当前非相关数据组成输入集,通过步骤S6的非睡眠相关影响因素数据预测模型输出睡眠影响因素属性结果数据集;
S8:建立非睡眠相关质量评估预测模型和非睡眠相关影响因素数据预测模型优化模型;
S9:输入新的实时数据到S8,优化非睡眠相关质量评估预测模型和非睡眠相关影响因素预测模型,形成最优参数组合,提高准确率。
真实世界研究(Real World Study,简称RWS)是临床研究中的一种新理念,概括地讲,RWS属于效果研究的范畴,其核心思想是研究的实施地点和条件为真实的临床实践环境。受试者不加特别限制和选择,为临床实际前来就诊的患者,干预措施的使用也与临床实际情况相同。RWS强调在广泛受试人群和大样本量的基础上开展长期评价,并注重有临床意义的结局指标和在数据采集、管理和分析方面的严格控制。RWS的最大优势是可以为日常临床环境下治疗措施的有效性和安全性提供证据,但其缺点可能是在努力确保外推性的同时牺牲了一部分内在有效性。
真实世界研究的领域涉及到应用人工智能计算机技术,从真实世界中爬取真实世界数据、抽取真实世界证据,以此作为医药、医疗、医保三环联动的保障,为医药和医疗有效性提供有力证据及辅助。
本发明实例提供的基于真实世界研究的智能睡眠监测方法,从真实世界中爬取有关“睡眠”/“sleep”数据,基于大数据环境建立数据库,结合Spark2.0,应用但不仅限于Python人工智能技术,将真实世界数据转化为真实世界证据,从自身感受出发,实现人体睡眠质量检测与睡眠影响因素分析,基于多线程开发,使得使用者可以在自己手机或其他终端设备上实时监测自身或家人睡眠质量,并了解自身影响睡眠的因素,从而得已防范并及时医治改善睡眠。
本发明实例提供的方法基于Hadoop大数据环境及Spark2.0开发环境使用Python爬取、分析、训练模型,使用Python开发Spark机器学习及深度学习与大数据应用,Spark MLPipeline机器学习流程及多线程开发,使用基于内存的分布式计算框架,存取Hadoop HDFS分布式存储大量数据,高产力多重复运算机器学习优化模型,Spark MLlib公开支持的机器学习算法有限,如使用非直接支持的算法,需针对该算法对Spark进行进一步开发,即在hadoop环境下运行Python程序编写的程序包。
其中,历史睡眠数据的关键词包括睡和/或sleep。
该类数据包含但不仅限于微博、推特、脸书、微信、头条评论、旅游网站、网上购物等社会媒体网络数据、病人日志数据、和99健康网及爱康网“睡眠”等相关问答数据。
训练、验证及测试数据集整合模块包含以“,”为单位,割取与“睡眠”有关数据集中包含“睡”/“sleep”的文字数据,整合为一条“睡”/“sleep”相关评论数据,随机选取3/5的数据作为训练数据,另外2/5的数据作为验证数据,与“睡眠”无关数据集作为测试数据。
步骤S1所述获取采用的爬虫器包括Scrapy框架。
步骤S1所述获取采用的规则包括Xpath和RegExp。
步骤S1所述历史睡眠数据包括评论数据和日志数据。
智能睡眠监测方法还包括在步骤S2之后,对所述睡眠质量预测模型进行优化。
实例2
智能睡眠监测***,包括:
真实世界数据收集模块,用于搜索爬取历史睡眠数据;
数据清洗及分类模块,用于对历史睡眠数据进行清洗和分类;
训练、验证及测试数据集整合模块,用于训练、验证及测试历史睡眠数据进;
睡眠质量监测评估模块,用于判断评价对象对睡眠话题的情感倾向,确定评价对象对自身睡眠质量的评估;
睡眠影响因素聚类分析模块,用于计算清洗过后的训练及验证数据的Perplexity值以确定聚类数据,对聚类数据进行聚类,提取每类的关键词作为睡眠影响因素真实世界证据;
睡眠影响因素分类模块,用于对测试数据进行睡眠影响因素分类;
睡眠监测***评估和优化模块,用于对模型进行持续优化调整,自动选取准确率最高的参数组。
其中,真实世界数据收集模块包含子模块:“睡”/“sleep”关键词真实世界数据模块以及评价人相关真实世界数据模块。采用爬虫器采用但不仅限于采用Scrapy框架,使用但不仅限于使用selenium模拟浏览器及模拟点击操作,应用但不仅限于Xpath和RegExp规则提取所需有效数据,有效数据包含但不仅限于评论数据、日志数据。
“睡”/“sleep”关键词真实世界数据模块包含搜索“睡”/“sleep”并自动爬取相关真实世界数据,该类数据包含但不仅限于微博、推特、脸书、微信、头条评论、旅游网站、网上购物等社会媒体网络数据、病人日志数据、和99健康网及爱康网“睡眠”等相关问答数据。
评价人相关真实世界数据模块包括遍历爬取评论者/日志所属病人/问答者等当天的其他评论数据/症状或日常描述/其他问答等真实世界数据。
数据清洗及分类模块包含去除停用词、识别并分离“睡眠”相关数据和“睡眠”不相关数据。
训练、验证及测试数据集整合模块包含以“,”为单位,割取与“睡眠”有关数据集中包含“睡”/“sleep”的文字数据,整合为一条“睡”/“sleep”相关评论数据,随机选取3/5的数据作为训练数据,另外2/5的数据作为验证数据,与“睡眠”无关数据集作为测试数据。
睡眠质量检测评估模块包含使用Textblob、SnowNLP等有关算法判断使用者对本人睡眠质量的自我评估。
睡眠质量检测评估模块包含两个模块,子模块一:睡眠相关数据集质量检测;子模块二:非睡眠相关数据集睡眠监测。子模块一包含使用但不仅限于Textblob、SnowNLP有关算法判断使用者对本人睡眠质量的自我评估。本实例中使用“Textblob”API测量包含“睡”的中文短句数据的情感分数,使用“SnowNLP”API判断包含“sleep”的英文短句数据情感分数,以此作为该评论者对自身睡眠质量的自我评估分数。子模块二包含使用但不仅限于cnn及其改良算法、rnn及其改良算法、svm、bp-svm等分类算法,或使用但不仅限于NMPC、随机森林等非线性预测模型及相关算法,将子模块一所产生结果数据集当作训练集验证数据集,非睡眠相关数据作为测试数据集输入子模块二。
睡眠影响因素聚类分析模块包含计算清洗过后的训练及验证数据的Perplexity值以确定聚类数目,并使用但不仅限于使用LDA、自组织神经网络SOM、COBWeb和K-Prototypes算法对其进行聚类,提取每类关键词作为睡眠影响因素真实世界证据。
睡眠影响因素分类模块包含使用但不仅限于ANN、CNN及SVM算法,对与“睡眠”/“sleep”无关数据集(测试数据)进行睡眠影响因素分类。
睡眠监测***评估及优化模块将新增真实世界数据实时收集,并经过经数据清洗及分类模块和数据输入到训练、验证及测试数据集整合模块处理后,作为训练数据输入到睡眠监测***评估及优化模块和睡眠影响因素聚类分析模块。该模块将新增真实数据随机穿插在原始已有数据库中,在之后的睡眠质量检测评估模块、睡眠影响因素聚类分析模块和睡眠影响因素分类模块,形成新的参数组合,遍历这些参数组合,通过但不仅限于降低验证数据的误差(MSE)值对睡眠质量检测评估模块、睡眠影响因素聚类分析模块、睡眠影响因素分类模块进行不断优化调整,自动选取准确率最高误差最小的参数组。
本发明实例的智能睡眠监测***致力于基于真实世界研究实现对睡眠质量的监测,可终端封装在手机app客户端中,使用者开放或部分开放读取手机文字输入权限,即读取手机短信发送、微信发送、微博推文发送、今日动态分享等,或者使用者直接在app中输入今日动态,该***都将测量出使用者前一天睡眠质量,一周或一个月绘制折线图输出,且当该使用者使用此***次数达到一定级别,及产生的数据积累到一定级别后,可以但不仅限于使用LSTM、ARIMA预测该使用者当天或未来一周的睡眠情况,以此达到监控效果。
实例3
例如:清理后的数据:“最近心情无比烦躁,睡都睡不好,晚上起来吃点药,也不见睡的安稳”,该评论者当天发送的另一条消息“还好楼下药店24小时开门”,将整理后的“睡都睡不好,也不见睡的安稳”作为睡眠质量检测评估模块的输入集;以条为单位与睡眠相关数据“最近心情无比烦躁,睡都睡不好,晚上起来吃点要,也不见睡的安稳”作为影响睡眠因素聚类分析模块的数据输入集;以条为单位与睡眠非相关数据“还好楼下药店24小时开门”作为影响睡眠因素分类模块的数据输入集。本实例睡眠相关数据集的分离是基于词典对“睡”/“sleep”相关数据集进行识别,建立“睡”/“sleep”属性同意词库,识别包含该题库中词语的数据集即为“睡眠”相关数据,否则为“睡眠”非相关数据,睡眠同意词库中所包含的词如下:“睡”、“sleep”、“小憩”、“躺在床上合上眼睛”、“nap”等。本实例中的数据共识别睡眠相关数据535900条,非睡眠相关数据200074条,在睡眠相关数据C1中,去掉睡眠非相关短句,整合睡眠相关短句,得到数据集C2。
睡眠质量检测评估模块包含两个模块,子模块一:睡眠相关数据集质量检测;子模块二:非睡眠相关数据集睡眠监测。子模块一包含使用但不仅限于Textblob、SnowNLP有关算法判断使用者对本人睡眠质量的自我评估。模块二包含使用但不仅限于cnn及其改良算法、rnn及其改良算法、svm、bp-svm等分类算法,或使用但不仅限于NMPC、随机森林等非线性预测模型及相关算法,将子模块一所产生结果数据集当作训练集验证数据集,非睡眠相关数据作为测试数据集输入子模块二,所得结果连续分布在【0,1】范围内。随机选取处理后的睡眠相关数据集C2中3/5作为睡眠质量检测评估模块子模块二:非睡眠相关数据及睡眠质量检测的训练数据集C2_1,2/5作为验证集C2_2,睡眠非相关数据U1作为训练数据。
本实例中,C2数据输入到睡眠质量检测评估模块的子模块一,使用“Textblob”API测量包含“睡”的中文短句数据的情感分数,使用“SnowNLP”API判断包含“sleep”的英文短句数据情感分数,以此作为该评论者对自身睡眠质量的自我评估分数数据集C2',得到的数据连续分布在【0,1】范围内,“0”代表该评论者对自身睡眠感觉极差,“1”代表该评论者对自身睡眠质量感觉极好。随机选取C2'中3/5作为睡眠质量检测评估模块子模块二:非睡眠相关数据及睡眠质量检测的训练数据集C2'_1,2/5作为验证数据集C2'_2,睡眠非相关数据U1作为训练数据集,使用SVM非线性文本预测分类模型,如图4所示,文本数据预处理包括C2'中对睡眠评估分数保*10后保留整数部分,并对C2'和U1文本数据进行合并并做好标记以便后续分开,进行全模式分词并去除停用词,使用word2vec训练词向量,运用TF-IDF算法提取特征项,weight=1.0*tf*log2N/df,其中,weight表示每个词的权重,tf是词频,df是文档频率的倒数,N是训练集的所有文章数,当然在进行测试集计算时,N即为测试集的所有文章数。根据以上标记分离得到C2″和U1″,以3:2比例随机分割训练数据集和验证数据集C2″_1和C2″_2,使用sklearn程序包构造分类器,将训练数据集输入该模型训练,并使用Pipeline将训练和验证过程并行计算,设定C,gamma,kernel 3个参数列表,使用sklearn中GridSearchCV程序包寻找最佳参数,将该模型带入RBF函数监测,保存该模型,并输入测试数据U1″,实现测试数据分类。其中C,gamma分别在[10
-10,10
10]范围内寻找最优值,kernel在"gaussion"、"Polynomial"、"rbf"和"linear"中选择。使用“measure_score=numpy.mean(验证数据预测值=验证数据真实值)”作为该模型的预测准确性得分。其中,线性核linear kernel的计算公式如下:k(x,y)=x
τy+c;多项式核Polynomial kernel的计算公式如下:k(x,y)=(ax
τy+c)
d;径向基核函数Radial Basis Function(rbf)的计算公式如下:k(x,y)=exp(-y|x-y|
2);高斯核Gaussian Kernel的计算公式如下:
本实例最优参数组合为C=0.1,gamma=0.001,kernel=rbf,预测准确性得分为0.92,验证集保存此模型,输入测试集U1″,得到非睡眠相关数据集睡眠质量自我评价分数。
睡眠影响因素聚类分析模块计算清洗过后的训练及验证数据的perplexity值以确定聚类数目,并使用但不仅限于使用LDA、自组织神经网络SOM、COBWeb和K-Prototypes算法对其进行聚类,提取每类关键词作为睡眠影响因素真实世界证据。本实例perplexity值结果如图5所示,最低点11为最佳聚类条目,本实例采用LDA算法进行聚类,聚类结果如图6所示,第2类影响睡眠因素归为工作因素。
睡眠影响因素分类模块包含使用但不仅限于ANN、CNN及SVM算法,对与“睡眠”/“sleep”无关数据集(测试数据)进行睡眠影响因素分类。本实例采用svm算法进行分类,训练数据和验证数据为携带聚类结果的睡眠相关数据集6:4输入运算,并使用Pipeline将训练和验证过程并行计算,设定C,gamma,kernel 3个参数列表,使用sklearn中GridSearchCV程序包寻找最佳参数,将该模型带入RBF函数监测,保存该模型,并输入测试数据U1″,实现测试数据分类。其中C,gamma分别在[10
-10,10
10]范围内寻找最优值,kernel在"gaussion"、"Polynomial"、"rbf"和"linear"中选择。使用“measure_score=numpy.mean(验证数据预测值=验证数据真实值)”作为该模型的预测准确性得分。其中,线性核linear kernel的计算公式如下:k(x,y)=x
τy+c;多项式核Polynomial kernel的计算公式如下:k(x,y)=(ax
τy+c)
d;径向基核函数Radial Basis Function(rbf)的计算公式如下:k(x,y)=exp(-y|x-y|
2);高斯核Gaussian Kernel的计算公式如下:
本实例最优参数组合为C=100,gamma=0.01,kernel=rbf,预测准确性得分为0.89,验证集保存此模型,输入测试集U1″,得到非睡眠相关数据集睡眠质量自我评价分数。如图7所示,前六条非睡眠相关数据隶属于类别为3,3,7,4,5,7。
将新增真实世界数据实时收集,并经过经数据清洗及分类模块和数据输入到训练、验证及测试数据集整合模块处理后,作为训练数据输入到睡眠监测***评估及优化模块和睡眠影响因素聚类分析模块。该模块将新增真实数据随机穿插在原始已有数据库中,在之后的睡眠质量检测评估模块、睡眠影响因素聚类分析模块和睡眠影响因素分类模块,形成新的参数组合,遍历这些参数组合,通过但不仅限于降低验证数据的误差(MSE)值对睡眠质量检测评估模块、睡眠影响因素聚类分析模块、睡眠影响因素分类模块进行不断优化调整,自动选取准确率最高误差最小的参数组。例如,对于睡眠质量检测评估模块,通过子模块一:睡眠相关数据集质量检测,得到子模块二:睡眠相关数据集质量检测新的训练数据集验证数据,设定不同参数组合,通过计算验证数据MSE值,使用MSE最小的参数组合作为最优选择。本实例将新爬取的ctrip酒店评论数据、39健康网和百姓健康网问答数据与之前爬取数据合并,并重复上述操作,更新睡眠质量检测评估模块模块二及睡眠影响因素分类模块svm模型的C,gamma以及kenel参数。
如图8所示,该***可终端封装在手机app客户端中,使用者开放或部分开放读取手机文字输入权限,即读取手机短信发送、微信发送、微博推文发送、今日动态分享等,或者使用者直接在app中输入今日动态,该***都将测量出使用者前一天睡眠质量,一周或一个月绘制折线图输出,且当该使用者使用此***次数达到一定级别,及产生的数据积累到一定级别后,可以但不仅限于使用LSTM、ARIMA预测该使用者当天或未来一周的睡眠情况,以此达到监控效果。图8是***睡眠实时监控及可视化应用设计示意图。