做为数据分析者,咱们须要熟悉数据的意义和分布,甚至在创建模型以前,咱们就能够经过必定的技术手段发现数据中存在额有意义的信息。经过探索数据(包括数据的最大最小值,平均值,以及分布规律),咱们能够更好的理解数据。经过探索数据,咱们能够处理数据中存在的一些问题,好比缺失值、噪声、错误的数据和误差分布的数据。函数
rattle是R的数据数据分析工具包,咱们能够经过文本视区的运行结果对数据进行可视化,探索属性间的关联性。在rattle的explore工具栏提供了咱们须要的理解数据的工具。工具
1.数据总结大数据
下图展现了rattle中explore按钮的可选项。咱们开始数据探索基于Summary选项,它提供了数据的文本统计信息。3d
咱们在Data选项中按执行按钮,在Explore中选Summary选项后按执行按钮,结果以下:blog
一般,有时候咱们会处理很是大的数据集,可视化会花费很大的计算成本。因此在数据中随机抽取一些样原本代替总体的数据。在Data工具栏的Partition选项就能够这样选择,下面的例子随机抽取了weather的20% 的数据。数据分析
> dim(weather) [1] 366 24 > set.seed(42) > smpl <- sample(nrow(weather),0.2*nrow(weather)) > dim(weather[smpl,]) [1] 73 24
咱们看到weather数据集总体有366行,24列,采样后有73个样本,24个属性。it
这里是简单的举个大数据集采样的例子,366个样本是很小的,咱们不须要进行采样就能够。io
基本的统计信息class
最简单的统计输出方式是用summary()函数,下面咱们看weather的24个属性的7,8,9属性值:数据可视化
> summary(weather[7:9]) Sunshine WindGustDir WindGustSpeed Min. : 0.000 NW : 73 Min. :13.00 1st Qu.: 5.950 NNW : 44 1st Qu.:31.00 Median : 8.600 E : 37 Median :39.00 Mean : 7.909 WNW : 35 Mean :39.84 3rd Qu.:10.500 ENE : 30 3rd Qu.:46.00 Max. :13.600 (Other):144 Max. :98.00 NA's :3 NA's : 3 NA's :2 >
对于数值型变量,它列出了属性的最小值,最大值,均值,中间值,以及一分位和三分位均值,空值等。一般的状况下,均值和中间的误差比较大,咱们会认为一些样本在某个特定方向上偏离了均值点(一些大的正负样本值,一般咱们称之为离群点)。
对于类别型变量将会列出最频繁出现的几项,剩下的在other选项里。在上例中,WindGustDir属性的NW有73个样本,NNW有44个属性,依次等等。全部属性的缺失值的数量将会在最后列出NA‘S。
2.数据可视化分布
经过绘制图形咱们能够更容易理解数据,更生动的表达数据信息,比列表形式的统计形式更直白有效。可视化研究的工具能够帮助咱们理解数据的特色,指引咱们以更合适的方式转换属性,选择咱们感兴趣的属性值。R为数据的可视化提供了有力的工具,而且咱们能够交互式生成咱们须要的图形,可操做性更强。在rattle的Explore工具栏下类型选项的Distribution下,咱们能够随意选择想要绘制的属性选项,若是选择多个属性,那么也能够每一个页面多图绘制。默认状况下,每一个窗口绘制四个图形。
在Data选项加载weather数据集(直接按执行按钮),并切换到Explore工具栏下,选到Distribution,生成图以下:
对于数值型变量,咱们能够绘制属性的箱体图(Box Plot),直方图(Histogram),Cumulative Function plot(累积函数图)
对于类别型变量,咱们能够绘制属性的条形图(Bar Plot),点图(Dot Plot),马赛克图(Mosaic)
咱们选取Rainfall和Sunshine两个属性的Box PLot(箱体图):
接下来咱们分别详细分析下box plot、Histogram、cumulative Distribution PLot(累积分布)、Benford's Law(检测奇异点),Bar plot
,Dot plot,Mosaic plot(马赛克)和Pairs and Scatter plot(散点图)。
2.1Box plot(箱体图)
Rattle的箱体图比R的基本绘图提供了一些额外的统计信息。下图中咱们选择属性Humidity3pm,Raintomorrow做为目标属性箱体的宽度表示了目标属性值的分布。
咱们在图中标出了基本的统计信息,最右边箱体区间值为76-40,最大、最小值基于中值不能超过箱体区间的1.5倍(最大值=<56+(74-40)*1.5),超出区域的点为离群点,如左边两个箱体最上边的黑圆点。箱体的缺口为中值的95%的置信区间(56-56*5%<x<56+56*5%).
Rattle的Log标签给出了详细的运行代码:
# Rattle timestamp: 2017-05-08 15:58:55 x86_64-w64-mingw32 # Display box plots for the selected variables. # Use ggplot2 to generate box plot for Humidity3pm # Generate a box plot. p01 <- crs %>% with(dataset[,]) %>% dplyr::mutate(RainTomorrow=as.factor(RainTomorrow)) %>% ggplot2::ggplot(ggplot2::aes(y=Humidity3pm)) + ggplot2::geom_boxplot(ggplot2::aes(x="All"), notch=TRUE, fill="grey") + ggplot2::stat_summary(ggplot2::aes(x="All"), fun.y=mean, geom="point", shape=8) + ggplot2::geom_boxplot(ggplot2::aes(x=RainTomorrow, fill=RainTomorrow), notch=TRUE) + ggplot2::stat_summary(ggplot2::aes(x=RainTomorrow), fun.y=mean, geom="point", shape=8) + ggplot2::xlab("RainTomorrow\n\nRattle 2017-5月-08 15:58:55 zhilei") + ggplot2::ggtitle("Distribution of Humidity3pm\nby RainTomorrow") + ggplot2::theme(legend.position="none") # Display the plots. gridExtra::grid.arrange(p01)
咱们能够将命令拷贝到控制台窗口,根据须要手动修改命令绘制出本身想要的图形。