论文部分内容阅读
当今世界是一个信息爆炸的时代,患者难以在庞杂的医疗信息中迅速并有效地找到对自己有用的信息,因此,一个能够高效地分析和处理大量医疗信息的推荐系统,对于智慧医疗的意义是非凡的。在医疗行业中,患者的症状数据及其对医生的评估数据是非常重要的,通过挖掘这些数据中的有效信息,对医生进行综合评估,进而为患者提供服务。目前,由于医疗化信息数据递增,医疗推荐系统中存在计算复杂度高、推荐精度低以及处理困难等问题,这使得算法在实现的过程中需要耗费大量的时间。为了解决这些问题,本文主要进行了如下两个方面的研究:针对时间复杂度高、推荐精度低的问题,本文引入基于密度的聚类算法,根据患者的症状对患者进行聚类,找到与它相似的患者邻居集,从而获得被相似患者评分过的医生,形成患者-医生评分矩阵R。引入改进SVD模型将患者对医生的评分矩阵R分解成患者隐含特征组成的矩阵P和医生隐含特征组成的矩阵Q。为了降低矩阵分解过程中的时间复杂度,引入梯度下降法来求解P矩阵和Q矩阵;同时在矩阵P中引入患者之间的相似系数,在矩阵Q中引入医生之间的相似系数,修正矩阵分解过程中丢失的患者和医生的相似性信息。仿真结果表明:本文算法与其它算法相比,在推荐上实现了更高的准确度。为了解决矩阵分解算法在处理海量数据时所面临的处理速度慢、计算资源多等问题,本文利用Spark在内存计算和迭代计算上的优势,实现了基于矩阵分解的协同过滤推荐算法在Spark框架下的并行化。同时,本文利用Spark平台设计了一个基于协同过滤的医生推荐系统,并详细描述了该推荐系统的实现过程:数据分析、数据的存储及预处理、建模、推荐模型评价及医生推荐。仿真实验表明,该系统能够提高推荐精确度并降低运算时间,为继续深入研究大数据平台的推荐算法提供借鉴和帮助。