1 描述性統計是什么?
描述性統計是借助圖表或者總結性的數值來描述數據的統計手段。數據挖掘工作的數據分析階段,我們可借助描述性統計來描繪或總結數據的基本情況,一來可以梳理自己的思維,二來可以更好地向他人展示數據分析結果。數值分析的過程中,我們往往要計算出數據的統計特征,用來做科學計算的NumPy和SciPy工具可以滿足我們的需求。Matpotlob工具可用來繪制圖,滿足圖分析的需求。
2 使用NumPy和SciPy進行數值分析
2.1 基本概念
與Python中原生的List類型不同,Numpy中用ndarray類型來描述一組數據:
from numpy import array from numpy.random import normal, randint #使用List來創造一組數據 data = [1, 2, 3] #使用ndarray來創造一組數據 data = array([1, 2, 3]) #創造一組服從正態分布的定量數據 data = normal(0, 10, size=10) #創造一組服從均勻分布的定性數據 data = randint(0, 10, size=10)
2.2 中心位置(均值、中位數、眾數)
數據的中心位置是我們最容易想到的數據特征。借由中心位置,我們可以知道數據的一個平均情況,如果要對新數據進行預測,那么平均情況是非常直觀地選擇。數據的中心位置可分為均值(Mean),中位數(Median),眾數(Mode)。其中均值和中位數用於定量的數據,眾數用於定性的數據。
對於定量數據(Data)來說,均值是總和除以總量(N),中位數是數值大小位於中間(奇偶總量處理不同)的值:
均值相對中位數來說,包含的信息量更大,但是容易受異常的影響。使用NumPy計算均值與中位數:
from numpy import mean, median
#計算均值
mean(data)
#計算中位數
median(data)
對於定性數據來說,眾數是出現次數最多的值,使用SciPy計算眾數:
from scipy.stats import mode #計算眾數 mode(data)
2.3 發散程度(極差、方差、標准差、變異系數)
對數據的中心位置有所了解以后,一般我們會想要知道數據以中心位置為標准有多發散。如果以中心位置來預測新數據,
那么發散程度決定了預測的准確性。數據的發散程度可用極差(PTP)、方差(Variance)、標准差(STD)、變異系數(CV)來衡量,它們的計算方法如下:

1 from numpy import mean, ptp, var, std 2 3 #極差 4 ptp(data) 5 #方差 6 var(data) 7 #標准差 8 std(data) 9 #變異系數 10 mean(data) / std(data)
2.4 偏差程度(z-分數)
之前提到均值容易受異常值影響,那么如何衡量偏差,偏差到多少算異常是兩個必須要解決的問題。定義z-分數(Z-Score)為測量值距均值相差的標准差數目:
當標准差不為0且不為較接近於0的數時,z-分數是有意義的,使用NumPy計算z-分數:
1 from numpy import mean, std 2 3 #計算第一個值的z-分數 4 (data[0]-mean(data)) / std(data)
通常來說,z-分數的絕對值大於3將視為異常。
2.5 相關程度
有兩組數據時,我們關心這兩組數據是否相關,相關程度有多少。用協方差(COV)和相關系數(CORRCOEF)來衡量相關程度:
協方差的絕對值越大表示相關程度越大,協方差為正值表示正相關,負值為負相關,0為不相關。相關系數是基於協方差但進行了無量綱處理。使用NumPy計算協方差和相關系數:
from numpy import array, cov, corrcoef
data = array([data1, data2])
#計算兩組數的協方差
#參數bias=1表示結果需要除以N,否則只計算了分子部分
#返回結果為矩陣,第i行第j列的數據表示第i組數與第j組數的協方差。對角線為方差
cov(data, bias=1)
#計算兩組數的相關系數
#返回結果為矩陣,第i行第j列的數據表示第i組數與第j組數的相關系數。對角線為1
corrcoef(data)
2.6 回顧
包 | 方法 | 說明 |
numpy | array | 創造一組數 |
numpy.random | normal | 創造一組服從正態分布的定量數 |
numpy.random | randint | 創造一組服從均勻分布的定性數 |
numpy | mean | 計算均值 |
numpy | median | 計算中位數 |
scipy.stats | mode | 計算眾數 |
numpy | ptp | 計算極差 |
numpy | var | 計算方差 |
numpy | std | 計算標准差 |
numpy | cov | 計算協方差 |
numpy | corrcoef | 計算相關系數 |