數(shù)據(jù)科學(xué)家應(yīng)該知道的5個統(tǒng)計學(xué)知識
數(shù)據(jù)科學(xué)實際上可以定義為我們從數(shù)據(jù)中獲取額外信息的一個過程,在做數(shù)據(jù)科學(xué)時,我們真正想要做的其實就是解釋除了數(shù)字之外,所有數(shù)據(jù)在現(xiàn)實世界中的實際含義。
為了提取潛藏在復(fù)雜數(shù)據(jù)集中的信息,數(shù)據(jù)科學(xué)家采用了許多工具和技術(shù),包括數(shù)據(jù)挖掘、數(shù)據(jù)可視化和數(shù)據(jù)建模等等。數(shù)據(jù)挖掘中常用的一類非常重要的數(shù)學(xué)技術(shù)是統(tǒng)計學(xué)。
在實際意義上,統(tǒng)計數(shù)據(jù)允許我們定義數(shù)據(jù)的具體數(shù)學(xué)摘要。我們可以使用統(tǒng)計信息來描述其中的一些屬性,而不是嘗試描述每個數(shù)據(jù)點。而這通常足以讓我們提取有關(guān)數(shù)據(jù)結(jié)構(gòu)和構(gòu)成的某些信息。
有些時候,當(dāng)人們聽到“統(tǒng)計”這個詞時,往往會想到一些過于復(fù)雜的東西。也可能會有點抽象,但我們并非總是需要訴諸復(fù)雜的理論,來從統(tǒng)計中獲得某種價值。
統(tǒng)計學(xué)中最基本的部分通常是數(shù)據(jù)科學(xué)中最實用的部分。
今天,我們將分享5個對于數(shù)據(jù)科學(xué)有用的統(tǒng)計學(xué)方法。這些不是過分抽象的概念,而是相當(dāng)簡單、有長期適用性的技術(shù)。
一、集中趨勢(Central Tendency)
數(shù)據(jù)集或特征變量的集中趨勢是集的中心或典型值。其思想是,可能有一個單一的值可以(在某種程度上)***地描述我們的數(shù)據(jù)集。
例如,假設(shè)你有一個以x-y位置(100,100)為中心的正態(tài)分布。那么點(100,100)是集中趨勢,因為在所有可選擇的點中,它提供了對數(shù)據(jù)***的總結(jié)。
對于數(shù)據(jù)科學(xué)來說,我們可以使用集中趨勢進(jìn)行度量,來快速簡單地了解我們數(shù)據(jù)集的整體情況。我們的數(shù)據(jù)的“中心”可以是非常有價值的信息,它告訴我們數(shù)據(jù)集究竟是如何偏置的,因為數(shù)據(jù)所圍繞的任何值本質(zhì)上都是偏置。
在數(shù)學(xué)上有兩種選擇集中趨勢的常用方法。
平均數(shù)(Mean)
平均數(shù),也就是數(shù)據(jù)集的平均值,即整個數(shù)據(jù)圍繞其進(jìn)行散布的一個數(shù)字。在定義平均數(shù)時,所有用于計算平均數(shù)的值的權(quán)重都是相等的。
例如,計算以下5個數(shù)字的平均數(shù):
- (3 + 64 + 187 + 12 + 52)/ 5 = 63.6
平均數(shù)非常適合計算實際數(shù)學(xué)平均值,使用像Numpy這樣的Python庫計算速度也非???。
中位數(shù)(Median)
中位數(shù)是數(shù)據(jù)集的中間值,即我們將數(shù)據(jù)從最小值排序到***值(或從***值到最小值),然后取值集合中間的值:那就是中位數(shù)。
計算上一個例子中5個數(shù)字的中位數(shù):
- [3,12,52,64,187]→ 52
中值與平均數(shù)完全不同。它們沒有對錯優(yōu)劣之分,但我們可以根據(jù)我們的情況和目標(biāo)選擇一個。
計算中位數(shù)需要對數(shù)據(jù)進(jìn)行排序——如果數(shù)據(jù)集很大,這會有點兒不切實際。
另一方面,中位數(shù)對于異常值比平均數(shù)更穩(wěn)健,因為如果存在一些非常高的異常值,則平均值將被拉向某一個方向。
平均數(shù)和中位數(shù)可以用簡單的numpy單行計算:
- numpy.mean(array)
- numpy.median(array)
二、擴(kuò)散(Spread)
在統(tǒng)計學(xué)之下,數(shù)據(jù)的擴(kuò)散是指指數(shù)據(jù)被壓縮到一個或多個值的程度,這些值分布在更大的范圍內(nèi)。
參考下面的高斯概率分布圖——假設(shè)這些是描述真實世界數(shù)據(jù)集的概率分布。
藍(lán)色曲線的擴(kuò)散值最小,因為它的大部分?jǐn)?shù)據(jù)點都在一個相當(dāng)窄的范圍內(nèi)。紅色曲線的擴(kuò)散值***,因為大多數(shù)數(shù)據(jù)點所占的范圍要大得多。
圖例還顯示了這些曲線的標(biāo)準(zhǔn)偏差,這將在下一節(jié)中介紹。
標(biāo)準(zhǔn)偏差(Standard Deviation)
標(biāo)準(zhǔn)偏差是定量數(shù)據(jù)擴(kuò)散程度的最常見的方式。計算標(biāo)準(zhǔn)偏差需要5個步驟:
- 找到平均數(shù)。
- 對于每個數(shù)據(jù)點,求其與平均值間的距離的平方。
- 對步驟2中的值求和。
- 除以數(shù)據(jù)點的數(shù)量。
- 取平方根。
值越大,意味著我們的數(shù)據(jù)從平均數(shù)“擴(kuò)散出去”的程度越高。值越小意味著我們的數(shù)據(jù)越集中于平均數(shù)。
計算Numpy的標(biāo)準(zhǔn)偏差:numpy.std(array)
三、百分位數(shù)(Percentiles)
我們可以使用百分位數(shù)進(jìn)一步描述整個范圍內(nèi)每個數(shù)據(jù)點的位置。
百分位數(shù)根據(jù)數(shù)據(jù)點在值范圍中的位置高低來描述數(shù)據(jù)點的確切位置。
更正式地說,第p百分位數(shù)是數(shù)據(jù)集中的一個值,在該值處可以將數(shù)據(jù)集分為兩部分。下半部分包含p %個數(shù)據(jù),則稱其為第p百分位數(shù)。
例如以下11個數(shù)字的集合:
- 1,3,5,7,9,11,13,15,17,19,21
數(shù)字15就是是第70百分位數(shù),因為當(dāng)我們在數(shù)字15處將數(shù)據(jù)集分成兩部分時,有70%個數(shù)據(jù)小于15。
百分位數(shù)與平均數(shù)和標(biāo)準(zhǔn)偏差相結(jié)合,可以讓我們很好地了解特定的點在數(shù)據(jù)集的擴(kuò)散/范圍內(nèi)的位置。如果它是一個異常值,那么它的百分位數(shù)將接近于終點——小于5%或大于95%。另一方面,如果百分位數(shù)接近50那么我們就可以知道它非常接近集中趨勢。
數(shù)組的第50個百分位數(shù)在Numpy中計算:numpy.percentile(array, 50)
四、斜度(Skewness)
數(shù)據(jù)的偏斜度衡量其不對稱性。
偏度為正值,表示值集中在數(shù)據(jù)點中心的左側(cè);負(fù)偏度表示值集中在數(shù)據(jù)點中心的右側(cè)。
下圖提供了一個很好的說明。
我們可以用以下等式計算偏斜度:
偏斜度可以讓我們知道數(shù)據(jù)分布與高斯分布的距離。偏斜度越大,我們的數(shù)據(jù)集離高斯分布越遠(yuǎn)。
這很重要,因為如果我們對數(shù)據(jù)的分布有一個粗略的概念,我們就可以為特定的分布定制我們要訓(xùn)練的ML模型。此外,并非所有ML建模技術(shù)都能對非高斯數(shù)據(jù)有效。
再次提醒大家,在我們開始建模之前,統(tǒng)計數(shù)據(jù)能夠帶給我們非常富有洞察力的信息!
如何在Scipy代碼中計算偏斜度: scipy.stats.skew(array)
五、協(xié)方差(Covariance)和相關(guān)系數(shù)(Correlation)
協(xié)方差
兩個特征變量的協(xié)方差衡量它們之間的相關(guān)性。如果兩個變量有正協(xié)方差,那么當(dāng)一個變量增加時,另一個也會增加;當(dāng)協(xié)方差為負(fù)時,特征變量的值將向相反的方向變化。
相關(guān)系數(shù)
相關(guān)系數(shù)簡單來說就是標(biāo)準(zhǔn)化(縮放)的協(xié)方差,除以被分析的兩個變量的標(biāo)準(zhǔn)偏差的乘積即可得到。這有效地迫使關(guān)聯(lián)范圍始終在-1.0和1.0之間。
如果兩個特征變量的相關(guān)系數(shù)為1.0,則兩個特征變量的相關(guān)系數(shù)為正相關(guān)。這意味著,如果一個變量的變化量是給定的,那么第二個變量就會按比例向相同的方向移動。
當(dāng)正相關(guān)系數(shù)小于1時,表示正相關(guān)系數(shù)小于完全正相關(guān),且相關(guān)強度隨著數(shù)字趨近于1而增大。同樣的思想也適用于負(fù)相關(guān)值,只是特征變量的值在相反的方向變化,而不是在相同的方向變化。
了解相關(guān)性對于主成分分析(PCA)等降維技術(shù)非常有用。我們從計算一個相關(guān)矩陣開始——如果有兩個或兩個以上的變量高度相關(guān),那么它們在解釋我們的數(shù)據(jù)時實際上是冗余的,可以刪除其中一些變量以降低復(fù)雜性。