做爲數據分析者,咱們須要熟悉數據的意義和分佈,甚至在創建模型以前,咱們就能夠經過必定的技術手段發現數據中存在額有意義的信息。經過探索數據(包括數據的最大最小值,平均值,以及分佈規律),咱們能夠更好的理解數據。經過探索數據,咱們能夠處理數據中存在的一些問題,好比缺失值、噪聲、錯誤的數據和誤差分佈的數據。函數
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)
咱們能夠將命令拷貝到控制檯窗口,根據須要手動修改命令繪製出本身想要的圖形。