如今,在信息爆炸的时代,如何发现数据内在的规律,是R语言等分析工具发展的动力。而数据内在的规律,可以通过可视化去展示,让数据自己演绎自己的故事。在R语言的世界中,数据可视化是机器学习中非常重要的部分,在到数据理解、模型选择以及结果的解析中广泛应用。因此,在庞大的R语言体系中实现数据可视化的包有为R basic包、grid包、lattice包、ggplot2包等几派,其中以ggplot2、Lattice包信众甚广,还衍生出不少的“门派”。
今天跟大家分享的是R语言机器学习中数据可视化的杀手锏——featurePlot的使用心得。featurePlot可是继承了lattice与ggplot2的特点,一方面,它基于lattice的基因与语法特性,比较容易修改与调整,同时,也继承了ggplot2中qplot的精髓,有自己独立的语法体系与简单图层,变化众多。一旦熟练掌握featurePlot的语法,你也成为数据可视化的高手。
好现在随着我们的脚步一同领教caret包featurePlot的厉害之处。
首先当现在我们开始准备数据与工具包。本次使用的是自带的数据集airquality。该数据集包含6个变量,1-4列为数量变量,5-6列为时间变量,该数据集特点是存在缺失。数据集属于气象领域,变量包括臭氧(Ozone)、太阳照射(Solar.R)、风力(Wind)、温度(Temp),时间(Month、Day)的变量。我们关心的是臭氧与时间、其它环境因素的相互关系。发现Ozone、Solar.R数据集有缺失,因此,需要采用补差法填回,至于如何处理数据缺失值,以及缺失补插的方法,对分析的影响等一系列问题,今后有机会再跟大家详谈。至此,我们完成数据的准备工作,可以利用我们的“杀手锏”开始探索我们的数据集喽featureplot的语法非常简单,通过x,y与plot三个参数对图形进行控制。featureplot画图的特点是:以下“四大金刚”就是featureplot的核心参数,命令中x参数理解为需要绘制图形的不同变量,y参数可以看作分类变量/分组依据,plot参数可以选择“pairs”,“density”等,灵活控制图形,但需要与x、y参数配合,其他参数如下图所示。由于featurePlot,属于lattice系,因此可以支持trellis的格式控制,假如熟悉lattice的同学就很快可以深入自定义(具体后面的部分会详细讲述)。讲完基本语法,我们马上进入如何利用该命令对数据进行展示与理解。featureplot图形十分丰富,可以完成散点图、矩阵散点图、箱图、密度图、多个图层的叠加等,对于机器学习过程的数据理解与展示十分方便,是caret包可视化的核心。下面我们为大家一一介绍其主要图形的做法。
矩阵散点图,可以用于展示不同分组条件下各变量之间的关系,可为大家快速预览数据与计算相关性提供直观的证据。还可以配合回归等方法获得趋势分析。具体命令如下:从单月份的分析看,各个指标之间存在一个非线性的关系。
箱图时常用的图形,可以展示数据的分布与差别,我们以月份为因素,分组观察数据的分布特点。同时也可以对布局、x、y轴进行灵活设置。从数据上,我们可以看到每个月份之间各个指标是有一定变化趋势。
条形图与箱图有一定类似,反映的是数据点与点之间的关系,能比箱图展示的数据细节更多。
密度图可以展示各个指标之间分布的特点,方便我们对趋势进行研究。通过自定义分组,可以迅速找到风速对其他变量的影响。 散点图也是分析中常用的图形,featurePlot也非常容易实现。featurePlot图还可以按照以下方式进行自定义。由于涉及lattice包图形的定义,有机会以后给大家进行详细叙述,一般用这几个参数可以比较快的完成散点图的自定义。全部的设定文件如上所示,包括各种图形的设置,图标设置等,下面我们来实践一下。
至此,我们已经初步掌握了featurePlot的基本用法与进阶用法。是不是非常快可以完成数据的可视化展示?featurePlot的应用当然还不限于此,还可以与其他机器学习的分析过程相结合,因此,可以作为caret包机器学习中的好帮手。