随着大数据时代的到来, 对各健康一体机类数据的分析研究显得尤为重要。 文中首先对 R 平台 shiny 包的 ui 端及端的数据传递方式进行了简要的介绍,并描述数据的采集及预处理思路及过程。 然后在 R 平台结合 shiny 包使用机器学习算法对数据建立交互式模型,可视化分析结果,并使用文本词云算法对数据进行分析,得到数据整体特性并进行直观的图形展示。
具有高效的数据存储和处理功能,拥有完整体系的数据分析工具为数据分析和显示提供的强大图形显示功能。 R 是开源和免费的,这就极大的方便了研究学者的使用和学习,而且 R 具有简洁的语法以及开发者开发的各种功能的包,极大的丰富了 R 的功能。 本文选用了 Rstudio 平台和 shiny 交互式包来进行搭建交互式应用分析。
包开发的应用包含两个基本的组成部分: 一个用户界面脚本(ui.R),一个服务器脚本(server.R)。用户界面(ui)脚本控制应用的布局与外表,服务端(server)脚本包含建构应用对数据的一些操作及输出。
传统的 B/S 模式下,即 Browser/Server(浏览器/服务器)结构,是随着 Internet 技术的兴起,对 C/S 结构的一种变化或者改进的结构。 在这种结构下,用户界面完全通过 WWW 浏览器实现,数据由用户在页面传输,而在服务器端进行处理,并将结果返回页面, 而 shiny 应用的数据通信是从页面获取输入值传递给 R,然后把 R 代码的结果以输出值的形式返回给页面。 这种通信方式恰恰使得 shiny 具有很好的交互式功能,对数据的操作都由用户通过页面控件来完成,而具体计算都有 R 通过内部代码完成。
在 shiny 代码端最常见的方式是在 ui 端定义 input 对象,对像会接收从页面用户传来的的值,并会传递给函数中,在 server 端,只需要将一个表达式传递给 reactive 函数就可以读取 shinyServer 的值,为了将读取的值转化为页面上的输出, 需要在 server 端将 shinyServer 函数赋值给 output 对象,对象便将处理的结果返回给页面, 便完成了对读取的输入值在处理后重新返回给页面显示。 因为 shiny 是交互的,所以输入值可以随时改变。 而每当用户修改数据参数时,R 会自动重新渲染,得到新的结果,页面上的输出结果也立即更新,如图所示。
的使用让人们不必对网页设计有太多的基础, 便可以设计出很棒的交互式页面, 并且配合 R 平台的开源免费,完成很多丰富的研究设计,是很多研究学者选择的重要原因。
平台的数据处理
健康一体机数据预处理是指在数据挖掘中对数据进行的一些处理。
健康一体机数据预处理有多种方法:数据清理,数据集成,数据变换,数据归约等。 我们主要运用了 R 平台的 reshape 包的 melt()和函数对数据进行整合,重塑,将原始的数据转换为 rpart 包算法可以分析的数据。
在本文中的数据处理分为两个阶段。 第一阶段是 R 平台的原始数据处理,即利用 xlsx 包读取原始的体检数据。 基于框架的分析需要,原始数据处理结果需要满足算法需求和可视化需求。 在原始数据中很多重复行被合并,对于算法不关心的列被删除,缺失值被处理。 对于算法关心的列被整合形成单独的数据,以便算法可以进行分析研究,这样处理后的数据才能被算法分析。 此外对于 ggplot2 包可视化数据的处理则需要利用相关的统计函数处理,使得结果满足可视化需求。 在数据的这阶段处理需要利用 reshape 包,plyr 包等数据处理包,对于处理好的数据需要读入 R 内存才能够在 shiny 平台下使用。 第二阶段的数据处理是在 shiny 平台的 ui 端和 server 端完成。 ui 端负责加载数据的录入与处理的各个包, 如果面对复杂的需求,还需在 ui 端编写自定义函数, 对数据进行特定的处理。 在端负责加载算法包与绘图包, 这些包在 server 端对 ui 端传来的数据进行可视化分析处理。 比如 ggplot2 包负责可视化结果绘图,wordcloud 包负责词云的生成,rpart 包负责生成回归树模型。Server 端这些数据处理包处理后都返回 output 对象,以便在 ui 端接收,最终通过 ui 端在页面展示。