数据科学学习之探索性数据分析(EDA)
前言
本文為筆者學(xué)習(xí)圖靈系列程序設(shè)計(jì)叢書(shū)的《面向數(shù)據(jù)科學(xué)家的使用統(tǒng)計(jì)學(xué)》的一些感悟和總結(jié),本文撰寫(xiě)主要參考了該書(shū)目,希望本文對(duì)接觸,學(xué)習(xí)和研究數(shù)據(jù)科學(xué)的各位能有所幫助。
首先,第一篇介紹探索性數(shù)據(jù)分析(EDA)的相關(guān)內(nèi)容。
目錄
- 前言
- 1.什么是結(jié)構(gòu)化數(shù)據(jù)
- 2.矩形數(shù)據(jù)
- 3.位置估計(jì)
- 4.變異性估計(jì)
- 5.探索數(shù)據(jù)分布
- 5.1 百分位數(shù)和箱形圖
- 5.2 頻數(shù)表和直方圖
- 5.3 密度估計(jì)
- 6.探索分類數(shù)據(jù)
- 6.1 眾數(shù)和期望值
- 6.2 條形圖和餅圖
- 7.相關(guān)性
- 7.1 相關(guān)系數(shù)
- 7.2 相關(guān)矩陣
- 7.3 散點(diǎn)圖
- 8.探索多個(gè)變量
- 8.1 雙變量分析的可視化
- 8.1.1 六邊形圖、等勢(shì)線和熱力圖
- 8.1.2 箱形圖和小提琴圖
- 8.2 多個(gè)變量的可視化
- 后記
1.什么是結(jié)構(gòu)化數(shù)據(jù)
在現(xiàn)代,尤其是這個(gè)大數(shù)據(jù)時(shí)代,我們獲取數(shù)據(jù)的途徑非常豐富,各種儀器(例如各種傳感器)的測(cè)量值、事件、文本、圖像和視頻等都屬于可獲取的數(shù)據(jù)來(lái)源,整個(gè)物聯(lián)網(wǎng)無(wú)時(shí)無(wú)刻不在涌出大量的信息流。如何將這些大量的原始數(shù)據(jù)轉(zhuǎn)化為可操作的信息,這才是當(dāng)今數(shù)據(jù)科學(xué)所面對(duì)的主要挑戰(zhàn)。首先,就需要將非結(jié)構(gòu)化的原始數(shù)據(jù)結(jié)構(gòu)化,或是處于研究目的采集有效數(shù)據(jù)集。
結(jié)構(gòu)化數(shù)據(jù)有兩種基本類型:數(shù)值型數(shù)據(jù)(numeric data)和分類數(shù)據(jù)(categorical data)。其中,數(shù)值型數(shù)據(jù)還分為連續(xù)型和離散型兩種形式,連續(xù)型數(shù)據(jù)又稱區(qū)間數(shù)據(jù)和浮點(diǎn)型數(shù)據(jù),即表示該數(shù)據(jù)可在一個(gè)區(qū)間內(nèi)取任何值;離散型數(shù)據(jù)通常只能取整數(shù),例如計(jì)數(shù),所以一般又稱計(jì)數(shù)型數(shù)據(jù)。分類數(shù)據(jù)(因子數(shù)據(jù))只能從特定集合中取值,這些值表示這種數(shù)據(jù)一系列可能的分類,例如:計(jì)算機(jī)編程語(yǔ)言主要包括匯編語(yǔ)言、機(jī)器語(yǔ)言以及高級(jí)語(yǔ)言三種(類別);中國(guó)的直轄市有北京市,上海市,天津市和重慶市。二元數(shù)據(jù)是一種特殊的分類數(shù)據(jù),數(shù)據(jù)值只能從兩個(gè)之中取其一(例如0或1,True或False),也就是一般所稱的布爾型數(shù)據(jù)和邏輯性數(shù)據(jù)。有序數(shù)據(jù)(有序因子數(shù)據(jù))是具有明確排序的分類數(shù)據(jù),例如數(shù)值排序(1,2,3,4或5)。
注:連續(xù)型數(shù)據(jù)和離散型數(shù)據(jù)的區(qū)別:1.離散型變量是通過(guò)計(jì)數(shù)方式取得的,即是對(duì)所要統(tǒng)計(jì)的對(duì)象進(jìn)行計(jì)數(shù),增長(zhǎng)量非固定的;連續(xù)型變量不是單獨(dú)的整十整百的數(shù)字,其包含若干位小數(shù)且取值密集,增長(zhǎng)量可以劃分為固定的單位。2.域不同。離散型變量:離散型變量的域(即對(duì)象的集合)是離散的;連續(xù)型變量的域(即對(duì)象的集合)是連續(xù)的。3.分組方式不同。離散型變量:如果變量值的變動(dòng)幅度小,就可以一個(gè)變量值對(duì)應(yīng)一組,稱單項(xiàng)式分組。如果變量值的變動(dòng)幅度很大,變量值的個(gè)數(shù)很多,則把整個(gè)變量值依次劃分為幾個(gè)區(qū)間,各個(gè)變量值則按其大小確定所歸并的區(qū)間,區(qū)間的距離稱為組距,這樣的分組稱為組距式分組,在組距式分組中,相鄰組既可以有確定的上下限,也可將相鄰組的組限重疊。連續(xù)型變量:連續(xù)型變量由于不能一一列舉其變量值,只能采用組距式的分組方式,且相鄰的組限必須重疊。
- 我們?yōu)槭裁匆P(guān)心數(shù)據(jù)類型的分類呢?
首先,數(shù)據(jù)類型對(duì)于確定可視化類型、數(shù)據(jù)分析或統(tǒng)計(jì)模型是非常重要的。再者,更為重要的是,變量的數(shù)據(jù)類型決定了軟件處理變量計(jì)算的方法。 - 因子數(shù)據(jù)或說(shuō)有序因子數(shù)據(jù)也只是一組文本值或數(shù)值,那么為什么我們也需要在數(shù)據(jù)分析種明確提出它們的概念呢?
相比于文本表示,將數(shù)據(jù)顯示地標(biāo)識(shí)為因子數(shù)據(jù)具有如下優(yōu)點(diǎn):
1.如果我們明確輸入的是分類數(shù)據(jù),那么軟件就可以據(jù)此確定統(tǒng)計(jì)過(guò)程的工作方式,例如圖表生成或模型擬合。
2.可以優(yōu)化存儲(chǔ)或索引。
3.限定了給定分類變量在軟件中的可能取值,例如枚舉類型。
總結(jié):
- 在軟件中,數(shù)據(jù)通常按類型分類。
- 數(shù)據(jù)類型包括連續(xù)型數(shù)據(jù)、離散型數(shù)據(jù)、分類數(shù)據(jù)和有序數(shù)據(jù)。
- 數(shù)據(jù)分類為軟件指明了數(shù)據(jù)的處理方式。
2.矩形數(shù)據(jù)
矩形數(shù)據(jù)對(duì)象是數(shù)據(jù)科學(xué)分析中的典型引用結(jié)構(gòu),矩形數(shù)據(jù)對(duì)象包括電子表格、數(shù)據(jù)庫(kù)表等。
矩形數(shù)據(jù)本質(zhì)上是一個(gè)二維矩陣,通常稱數(shù)據(jù)表中的一行為一條記錄(事例、樣本),一列為一個(gè)特征(屬性、變量)。數(shù)據(jù)并非一開(kāi)始就是矩陣形式的,非結(jié)構(gòu)化數(shù)據(jù)必須先經(jīng)過(guò)處理和操作才能表示為矩陣數(shù)據(jù)形式。
除了矩形數(shù)據(jù)之外,還有一些其它類型的數(shù)據(jù):例如:時(shí)序數(shù)據(jù),空間數(shù)據(jù)和圖形(或網(wǎng)絡(luò))數(shù)據(jù)。(此處的空間和圖形同矩形一樣,均指一種數(shù)據(jù)結(jié)構(gòu)。)
3.位置估計(jì)
面對(duì)大量數(shù)據(jù)的記錄和特征,對(duì)它們有一個(gè)大致的了解,即總結(jié)數(shù)據(jù)特征的特性是很有必要的。其中,探索數(shù)據(jù)的一個(gè)基本步驟就是獲取每個(gè)特征的“典型值”,典型值是指對(duì)數(shù)據(jù)最常出現(xiàn)位置的估計(jì),即數(shù)據(jù)的集中趨勢(shì)。
平均值(mean),是最基本的位置估計(jì)量,它等于所有值的和除以值的個(gè)數(shù),給出計(jì)算公式:
xˉ=Σi=1nxin\bar x=\frac{\Sigma_{i=1}^n x_i} n xˉ=nΣi=1n?xi??
對(duì)于某些數(shù)據(jù)集,我們需要對(duì)值賦予權(quán)重,進(jìn)行位置估計(jì)時(shí)便需取加權(quán)均值(weighted mean),它等于加權(quán)值的總和除以權(quán)重的總和,給出計(jì)算公式:
xˉw=Σi=1nwixiΣi=1nwi\bar x_w=\frac{\Sigma_{i=1}^n w_ix_i}{\Sigma_{i=1}^n w_i} xˉw?=Σi=1n?wi?Σi=1n?wi?xi??
均值雖然易于計(jì)算且方便使用,但在數(shù)據(jù)集中有離群值(極值)影響時(shí)便無(wú)法較為準(zhǔn)確地進(jìn)行位置估計(jì),此時(shí),中位數(shù)(median)是更好的選擇。中位數(shù)是位于有序數(shù)據(jù)集中間位置的數(shù)值,是對(duì)位置更為穩(wěn)健的估計(jì)量,但不同于使用所有觀測(cè)值計(jì)算得到的均值,中位數(shù)僅取決于有序數(shù)據(jù)集中間位置處的值。與加權(quán)均值相似,加權(quán)中位數(shù)(weighted median)也有廣泛的應(yīng)用,它使得排序數(shù)據(jù)集中分別有一半的權(quán)重之和位于該值之上或之下。
若想盡可能使用所有觀測(cè)值對(duì)位置有一個(gè)較為穩(wěn)健的估計(jì),我們可以使用切尾均值(trimmed mean)。它是指在數(shù)據(jù)集剔除一定數(shù)量的極值后再求均值,這樣就能消除極值對(duì)均值的影響,例如在國(guó)際體育賽事中,通常會(huì)去掉一個(gè)最高分和一個(gè)最低分,就是使用了切尾均值。給出計(jì)算公式:
xˉ=Σi=p+1n?pxin?2p\bar x=\frac{\Sigma_{i=p+1}^{n-p} x_i}{n-2p} xˉ=n?2pΣi=p+1n?p?xi??
對(duì)于小規(guī)模的數(shù)據(jù)集,還有很多其他更為穩(wěn)健和高效的位置估計(jì)量,在此不做介紹。
4.變異性估計(jì)
位置只是總結(jié)特性的一個(gè)維度,另一個(gè)維度是變異性(variability),也稱離差(dispersion),它是數(shù)據(jù)集關(guān)于某個(gè)中心值偏離或散布的離散程度的一種標(biāo)志,測(cè)量了數(shù)據(jù)值是緊密聚集的還是發(fā)散的。使用最廣泛的變異性估計(jì)量是基于位置估計(jì)值和觀測(cè)數(shù)據(jù)值之間的偏差(deviation)或者說(shuō)殘差(residual),在這里,給出多種計(jì)算偏差的方式。
首先是平均絕對(duì)偏差(mean absolute deviation),即對(duì)數(shù)據(jù)值和均值之間的偏差的絕對(duì)值計(jì)算均值。給出公式:
平均絕對(duì)偏差=Σi=1n∣xi?xˉ∣n?2p平均絕對(duì)偏差=\frac{\Sigma_{i=1}^n \lvert x_i-\bar x \rvert}{n-2p} 平均絕對(duì)偏差=n?2pΣi=1n?∣xi??xˉ∣?
更廣為人知的變異性估計(jì)量是方差(variance)和標(biāo)準(zhǔn)偏差(standard deviation),它們基于偏差的平方。方差是偏差平方值的均值,而標(biāo)準(zhǔn)偏差是方差的平方根。給出公式:
方差=s2=Σ(x?xˉ)2n?1方差=s^2=\frac{\Sigma (x-\bar x)^2}{n-1} 方差=s2=n?1Σ(x?xˉ)2?
標(biāo)準(zhǔn)偏差=s=Σ(x?xˉ)2n?1標(biāo)準(zhǔn)偏差=s=\sqrt\frac{\Sigma (x-\bar x)^2}{n-1} 標(biāo)準(zhǔn)偏差=s=n?1Σ(x?xˉ)2??
注:在統(tǒng)計(jì)模型中,使用平方值比使用平均值更為方便,所以標(biāo)準(zhǔn)偏差比平均絕對(duì)偏差使用更為廣泛,而式中使用除數(shù)n-1是因?yàn)槲覀兪褂米杂啥冗M(jìn)行無(wú)偏估計(jì)。
無(wú)論是方差,標(biāo)準(zhǔn)偏差還是絕對(duì)平均偏差對(duì)離群值都是不穩(wěn)建的,尤其是方差和標(biāo)準(zhǔn)偏差對(duì)極值更為敏感,為此,我們提出更為穩(wěn)健的變異性估計(jì)量,中位數(shù)絕對(duì)偏差(median absolute deviation),通常簡(jiǎn)寫(xiě)為MAD。給出計(jì)算公式:
MAD=中位數(shù)(∣x1?m∣,∣x2?m∣,…,∣xn?m∣)MAD=中位數(shù)(\lvert x_1-m \rvert,\lvert x_2-m \rvert,…,\lvert x_n-m \rvert) MAD=中位數(shù)(∣x1??m∣,∣x2??m∣,…,∣xn??m∣)
我們還可以參考切尾均值計(jì)算切尾標(biāo)準(zhǔn)偏差。
注:即使數(shù)據(jù)符合正態(tài)分布,方差、標(biāo)準(zhǔn)偏差、平均絕對(duì)偏差以及中位數(shù)絕對(duì)偏差也并非是等價(jià)的估計(jì)量。事實(shí)上,標(biāo)準(zhǔn)偏差總是大于平均絕對(duì)偏差,而平均絕對(duì)偏差總是大于中位數(shù)絕對(duì)偏差。有時(shí),中位數(shù)絕對(duì)偏差會(huì)乘上一個(gè)常數(shù)比例因子(通常是1.4826),使得在正態(tài)分布下,中位數(shù)絕對(duì)偏差與標(biāo)準(zhǔn)偏差具有相同的尺度。
另一種估計(jì)離差的方法基于對(duì)有序數(shù)據(jù)分布情況的查看。其中最基本的是測(cè)量極差(range),或稱為全距,但極差對(duì)離群值非常敏感,為避免這種情況,我們可以刪除有序數(shù)據(jù)兩端的值,然后再查看數(shù)據(jù)的極差,即估計(jì)百分位數(shù)(percentiles)之間的差異。其中常用的測(cè)量方法是估計(jì)第25分位數(shù)和第75分位數(shù)之間的差值,稱為四分位距(interquartile range, IQR),在此不做過(guò)多介紹。
5.探索數(shù)據(jù)分布
5.1 百分位數(shù)和箱形圖
百分位數(shù)對(duì)于總結(jié)數(shù)據(jù)的整體分布十分有用,四分位數(shù)和十分位數(shù)有著廣泛的應(yīng)用,尤其是在總結(jié)數(shù)據(jù)尾部情況(外延范圍)時(shí),百分位數(shù)十分有用。
箱形圖(boxplot)是一種快速可視化繪圖,它基于百分位數(shù)來(lái)可視化數(shù)據(jù)的分布,能顯示出一組數(shù)據(jù)的最大值、最小值、中位數(shù)、及上下四分位數(shù)。
import numpy as np import pandas as pd data=pd.Series(np.arange(0,16)).append(pd.Series(25)) data.plot(kind='box')
使用python繪出一個(gè)簡(jiǎn)單的箱形圖,其中,箱子的頂部和底部分別是第75百分位數(shù)和第25百分位數(shù)。箱內(nèi)的水平線表示的是中位數(shù)。從箱頂或箱底延伸的線段稱為須(whisker),須從最大值一直延伸到最小值,顯示了數(shù)據(jù)的極差,而箱外的圈(或說(shuō)點(diǎn))表示的則是離群值。
5.2 頻數(shù)表和直方圖
變量(特征)的頻數(shù)表可以將該變量的極差均勻地分割為多個(gè)等距分段,并給出落在每個(gè)分段中地?cái)?shù)值個(gè)數(shù)。
import numpy as np import pandas as pd data=pd.Series(np.random.rand(10)) data.plot(kind='hist')
使用python繪出一個(gè)簡(jiǎn)單的直方圖,可以觀察到其中有兩個(gè)組距是空的,添加空組距也是有必要的,空組距中沒(méi)有值通常是很有價(jià)值的信息。嘗試不同大小的組距也是非常有用的,如果組距過(guò)大,可能就會(huì)隱藏掉分布的一些重要特性;如果組距過(guò)小,那么結(jié)果就會(huì)過(guò)于顆?;?#xff0c;失去查看整體圖的能力。
繪制直方圖需注意:1.空組距也應(yīng)在直方圖中。2.各組距是相等的。3.組距的數(shù)量(或組距的大小)是自定的。4.各條塊相互緊鄰,條塊間沒(méi)有任何空隙,除非存在空組距。
注:頻數(shù)表和百分位數(shù)都是通過(guò)創(chuàng)建組距總結(jié)數(shù)據(jù)。一般情況下,四分位數(shù)和十分位數(shù)在每個(gè)組距中具有相同的計(jì)數(shù),但每個(gè)組距的大小不同,將其稱之為等計(jì)數(shù)組距,相反地,頻數(shù)表中每個(gè)組距的大小相同,但其中的計(jì)數(shù)可以不同,將其稱之為等規(guī)模組距。
統(tǒng)計(jì)學(xué)中的矩(moment):在統(tǒng)計(jì)學(xué)理論中,位置和變異性分別稱為分布的一階矩和二階矩,而分布的三階矩和四階矩分別被稱為偏度(skewness)和峰度(kurtosis)。偏度顯示了數(shù)據(jù)是偏向較小的值還是較大的值;峰度則顯示了數(shù)據(jù)中具有極值的傾向性。通常情況下,我們不使用度量去測(cè)定偏度和峰度,而是通過(guò)可視化方法來(lái)發(fā)現(xiàn)他們。
5.3 密度估計(jì)
密度圖用一條連續(xù)的線顯示數(shù)據(jù)值的分布情況。可以將密度圖看作由直方圖平滑得到的,盡管它通常是使用一種核密度估計(jì)量從數(shù)據(jù)中直接計(jì)算得到的。
import numpy as np import pandas as pd import matplotlib.pyplot as plt data=pd.Series(np.random.normal(0, 1, 1000)) plt.figure() plt.subplots_adjust(wspace=0.2) plt.subplot(1,2,1) data.plot(kind='hist',bins=14,density=True) data.plot(kind='kde') plt.xlim(-4,4) plt.subplot(1,2,2) data.plot(kind='kde') plt.xlim(-4,4) plt.rcParams['figure.figsize']=(12.0,4.0)
使用python繪出一個(gè)正態(tài)分布數(shù)值集的密度圖和直方圖的情況,可清晰的看出核密度圖與直方圖之間的關(guān)系,而當(dāng)數(shù)據(jù)量越大時(shí),核密度圖和直方圖平滑得到的曲線越相似。
如圖,分別為選取100個(gè)數(shù)據(jù)和10000個(gè)數(shù)據(jù)核密度圖與取直方圖組距中點(diǎn)的值得到的平滑曲線擬合的情況。
6.探索分類數(shù)據(jù)
6.1 眾數(shù)和期望值
眾數(shù)是數(shù)據(jù)集中出現(xiàn)次數(shù)最多的類別或值,是分類數(shù)據(jù)的一個(gè)基本匯總統(tǒng)計(jì)量,通常不用于數(shù)值型數(shù)據(jù)。
有些數(shù)據(jù)類別可以表示成或映射到同一尺度的離散值,也就是可以與一系列的數(shù)值相關(guān)聯(lián),那么就可以根據(jù)類別出現(xiàn)的概率計(jì)算出一個(gè)平均值,稱之為期望值,它是一種加權(quán)均值,權(quán)重使用的是類別出現(xiàn)的概率。
6.2 條形圖和餅圖
條形圖和餅圖是常用來(lái)可視化分類數(shù)據(jù)的方法,條形圖以條形表示每個(gè)類別出現(xiàn)的頻數(shù)或占比情況,餅圖是條形圖的一種替代形式,以圓餅中的一個(gè)扇形部分表示每個(gè)類別出現(xiàn)的頻數(shù)或占比情況。
要特別注意的是,雖然條形圖與直方圖非常相似,但二者之間仍存在著一些差異。在條形圖中,x軸表示因子變量的不同類別,而在直方圖中,x軸以數(shù)值度量的形式表示某個(gè)變量的值。另外,在直方圖中,通常各個(gè)條形是相互緊鄰的,條形間的間隔表示空組距(即數(shù)據(jù)中未出現(xiàn)的值),而在條形圖中,各個(gè)條形的顯示是相互獨(dú)立的。
data=pd.Series(np.random.randint(1,11,20)) data.plot(kind='bar') data.plot(kind='pie')
使用python繪出一些離散變量的條形圖和餅圖。
7.相關(guān)性
相關(guān)性,是指兩個(gè)變量的關(guān)聯(lián)程度。無(wú)論是在數(shù)據(jù)科學(xué)還是研究中,很多建模項(xiàng)目的探索性數(shù)據(jù)分析都要檢查預(yù)測(cè)因子之間的相關(guān)性,以及預(yù)測(cè)因子和目標(biāo)變量之間的相關(guān)性。
如果一個(gè)變量的高值隨另一個(gè)變量的高值的變化而變化,并且它的低值隨另一個(gè)變量的低值的變化而變化,那么稱這兩個(gè)變量正相關(guān)。如果一個(gè)變量的高值隨另一個(gè)變量的低值的變化而變化,且反之亦然,那么稱這兩個(gè)變量負(fù)相關(guān)。如果一個(gè)變量的變化對(duì)另一變量沒(méi)有明顯影響,那么稱這兩個(gè)變量不相關(guān)。
首先介紹三個(gè)重要概念:
7.1 相關(guān)系數(shù)
皮爾遜相關(guān)系數(shù)公式:
r=Σi=1N(xi?xˉ)(yi?yˉ)(n?1)sxsyr=\frac{\Sigma_{i=1}^ N{(x_i-\bar x)(y_i-\bar y)}}{(n-1)s_xs_y} r=(n?1)sx?sy?Σi=1N?(xi??xˉ)(yi??yˉ?)?
當(dāng)變量的相關(guān)性是非線性的時(shí)候,相關(guān)系數(shù)就不再是一種有用的度量,此時(shí)需計(jì)算非線性相關(guān)系數(shù)來(lái)對(duì)變量的相關(guān)性來(lái)做出判斷。而反映一個(gè)因變量與一組自變量(兩個(gè)或兩個(gè)以上)之間相關(guān)程度的指標(biāo)稱為復(fù)相關(guān)系數(shù),在此不做過(guò)多介紹。
7.2 相關(guān)矩陣
在可視化方法上,我們可以使用熱力圖(見(jiàn)8.1.1)來(lái)可視化相關(guān)矩陣。
import seaborn as sns import warnings warnings.filterwarnings("ignore") from pyforest import * wine=pd.read_csv('wine.csv') corr = wine.corr() #相關(guān)矩陣計(jì)算方法 fig, ax = plt.subplots(figsize=(16, 12)) ax = sns.heatmap(corr,square=True,ax=ax,annot=True) ax.set_title('Correlation coefficient')
以sklearn庫(kù)中的wine數(shù)據(jù)集(筆者使用時(shí)已將數(shù)據(jù)集導(dǎo)入到了csv文件中)為例,計(jì)算該數(shù)據(jù)集各變量(特征)之間的相關(guān)系數(shù)。
7.3 散點(diǎn)圖
散點(diǎn)圖是一種可視化兩個(gè)測(cè)量數(shù)據(jù)變量間關(guān)系的標(biāo)準(zhǔn)方法。在散點(diǎn)圖中,x軸表示一個(gè)變量,y軸表示另一個(gè)變量,圖中的每個(gè)點(diǎn)對(duì)應(yīng)于一條記錄。
plt.scatter(wine.Alcohol,wine.Proline)
再以wine數(shù)據(jù)集中Alcohol與Proline兩列為例繪出散點(diǎn)圖。
8.探索多個(gè)變量
對(duì)一個(gè)變量進(jìn)行分析稱為單變量分析;對(duì)兩個(gè)變量及其關(guān)系進(jìn)行分析稱為雙變量分析,例如(線性)相關(guān)性分析;而對(duì)兩個(gè)以上的變量進(jìn)行分析稱為多變量分析。與單變量分析一樣,雙變量分析不僅計(jì)算匯總統(tǒng)計(jì)量,而且生成可視化的展示。雙變量或多變量分析的適用類型取決于數(shù)據(jù)本身,即數(shù)據(jù)是數(shù)值型數(shù)據(jù)還是分類數(shù)據(jù)。
8.1 雙變量分析的可視化
多個(gè)變量的分析與可視化完全可以由雙變量分析加上條件(conditioning)這個(gè)概念擴(kuò)展得到,所以首先介紹幾種關(guān)于兩種變量的可視化方法,它們有六邊形圖、等勢(shì)線、熱力圖、箱形圖、小提琴圖等。事實(shí)上,這些可視化方法本質(zhì)上對(duì)應(yīng)的都是直方圖和密度圖。
8.1.1 六邊形圖、等勢(shì)線和熱力圖
六邊形圖、等勢(shì)線和熱力圖均適用于兩個(gè)數(shù)值型變量,它們所給出的都是二維密度的可視化表示?,F(xiàn)再以wine數(shù)據(jù)集為例使用python實(shí)現(xiàn)可視化,簡(jiǎn)單地展示三種圖像。
plt.hexbin(wine.Alcohol,wine.Proline,gridsize=30,cmap='Blues') plt.colorbar()
六邊形圖繪制的并非數(shù)據(jù)點(diǎn),而是將記錄(樣本)分組為六邊形的組距,并用不同的顏色繪制各個(gè)六邊形,以顯示每組中的記錄數(shù)。
上圖在散點(diǎn)圖上繪制了一個(gè)等勢(shì)線圖(二維密度圖),可視化了兩個(gè)數(shù)值型變量之間的關(guān)系,等勢(shì)線在本質(zhì)上就是兩個(gè)變量的地形圖,每條等勢(shì)線表示特定的密度值,并隨著接近“頂峰”而增大。
當(dāng)然,一種可視化方法可以有多種用途,例如熱力圖還可以展現(xiàn)兩個(gè)離散變量之間的組合關(guān)系或進(jìn)行分類變量中數(shù)值型數(shù)據(jù)的相關(guān)性分析等。
8.1.2 箱形圖和小提琴圖
一些數(shù)值型數(shù)據(jù)是根據(jù)分類變量進(jìn)行分組的,或者要同時(shí)比較多個(gè)變量的分布,可視化這類數(shù)據(jù)通常使用箱形圖或小提琴圖。
wine_BV=wine.loc[:,['Malic acid','Total phenols','Flavanoids','Proanthocyanins','Hue']] sns.boxplot(data=wine_BV)
箱形圖可以很直觀的比較不同類別的(或不同特征的)數(shù)據(jù)分布。
小提琴圖是箱形圖的一種增強(qiáng)表示,它以y軸為密度來(lái)繪制密度估計(jì)量的情況。繪圖中對(duì)密度做鏡像并反轉(zhuǎn)(即核密度函數(shù)),并填充所生成的形狀,由此生成了一個(gè)類似小提琴的圖形。
如果規(guī)定inner=‘quartile’,那么繪出的小提琴圖相當(dāng)圖結(jié)合了箱形圖,在某些情況下會(huì)有更好的效果。
8.2 多個(gè)變量的可視化
例如可視化上述數(shù)據(jù)集wine_AP(取特征Alcohol,Proline)時(shí)加入條件分別可視化不同等級(jí)(wine中的特征class,class=1,2,3)的數(shù)據(jù),這就變成了一個(gè)多變量分析的可視化問(wèn)題,我們通過(guò)建立多個(gè)子圖來(lái)對(duì)比它們。例如:
wine_class1=wine.loc[wine['class']==1] wine_class2=wine.loc[wine['class']==2] wine_class3=wine.loc[wine['class']==3] plt.figure() plt.subplots_adjust(wspace=0.3) plt.subplot(1,3,1) plt.hexbin(wine_class1.Alcohol,wine_class1.Proline,gridsize=30,cmap='Blues') plt.colorbar() plt.subplot(1,3,2) plt.hexbin(wine_class2.Alcohol,wine_class2.Proline,gridsize=30,cmap='Blues') plt.colorbar() plt.subplot(1,3,3) plt.hexbin(wine_class3.Alcohol,wine_class3.Proline,gridsize=30,cmap='Blues') plt.colorbar() plt.rcParams['figure.figsize']=(13,3)后記
到這里,對(duì)于探索性數(shù)據(jù)分析的簡(jiǎn)要介紹就結(jié)束了。對(duì)于任意基于數(shù)據(jù)的項(xiàng)目,最重要的第一步都是查看數(shù)據(jù),這正是探索性數(shù)據(jù)分析的關(guān)鍵理念所在。通過(guò)總結(jié)并可視化數(shù)據(jù),我們可以對(duì)項(xiàng)目獲得有價(jià)值的洞悉和理解。從位置估計(jì)和變異性估計(jì)等簡(jiǎn)單度量,到探索多個(gè)變量之間的關(guān)系,我們可以借助各種技術(shù)和工具并結(jié)合python這樣的語(yǔ)言強(qiáng)大的表達(dá)能力來(lái)建立豐富多樣的數(shù)據(jù)探索和分析方式。
在最后,希望本文能夠幫助到閱讀的各位,也請(qǐng)大家多多關(guān)注,筆者會(huì)在后續(xù)介紹更多有關(guān)數(shù)據(jù)科學(xué)的內(nèi)容以及使用python等語(yǔ)言進(jìn)行數(shù)據(jù)分析的方法。
總結(jié)
以上是生活随笔為你收集整理的数据科学学习之探索性数据分析(EDA)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 广西教师招聘需要计算机考试证,2020广
- 下一篇: 中学信息技术教师资格证编程题