導(dǎo)讀:大多數(shù)情況下,數(shù)據(jù)分析的過程必須包括數(shù)據(jù)探索的過程。數(shù)據(jù)探索可以有兩個層面的理解:一是僅利用一些工具,對數(shù)據(jù)的特征進行查看;二是根據(jù)數(shù)據(jù)特征,感知數(shù)據(jù)價值,以決定是否需要對別的字段進行探索,或者決定如何加工這些字段以發(fā)揮數(shù)據(jù)分析的價值。字段的選取既需要技術(shù)手段的支撐,也需要數(shù)據(jù)分析者的經(jīng)驗和對解決問題的深入理解。
作者:彭鴻濤 張宗耀 聶磊
如需轉(zhuǎn)載請聯(lián)系華章科技
01 數(shù)值類型
在進行數(shù)據(jù)分析時,往往需要明確每個字段的數(shù)據(jù)類型。數(shù)據(jù)類型代表了數(shù)據(jù)的業(yè)務(wù)含義,分為3個類型:
1. 區(qū)間型數(shù)據(jù)(Interval)
數(shù)值型數(shù)據(jù)的取值都是數(shù)值類型,其大小代表了對象的狀態(tài)。比如,年收入的取值,其大小代表了其收入狀態(tài)。
2. 分類型數(shù)據(jù)(Categorical)
分類型數(shù)據(jù)的每一個取值都代表了一個類別,如性別,兩個取值代表了兩個群體。
3. 序數(shù)型數(shù)據(jù)(Ordinal)
和分類型數(shù)據(jù)非常相似,每個取值代表了不同的類別。但是,序數(shù)型的數(shù)據(jù)還有另外一層含義就是每個取值是有大小之分的。比如,如果將年收入劃分為3個檔次:高、中、低,則不同的取值既有類別之分,也有大小之分。
如果不了解字段的實際業(yè)務(wù)含義,數(shù)據(jù)分析人員可能會出現(xiàn)數(shù)據(jù)類型判斷失誤。比如字段的取值為“1”“2”“3”等,并不意味著是一個數(shù)值類型,它的業(yè)務(wù)含義還可以是一個分類型的字段,“1”“2”“3”分別代表了一個類別,其大小沒有任何含義。所以,充分了解字段的含義是很重要的。
很多的數(shù)據(jù)分析工具會根據(jù)數(shù)據(jù)中的字段的實際取值,做出類型的自動判斷:如字符型的數(shù)據(jù),一般都認(rèn)定為分類型數(shù)據(jù);如某個字段的所有取值只有“1”“2”“3”,則判斷其為分類型變量,然后經(jīng)過用戶的再次判斷,其很可能是序數(shù)型變量。
不同的數(shù)據(jù)類型,在算法進行模型訓(xùn)練時,處理和對待的方式是不同的。區(qū)間型數(shù)據(jù)是直接進行計算的;分類型數(shù)據(jù)是先將其轉(zhuǎn)換為稀疏矩陣:每一個類別是一個新的字段,然后根據(jù)其取值“1”“0”進行計算。
在很多場景下,人們習(xí)慣將分類型數(shù)據(jù)和序數(shù)型數(shù)據(jù)統(tǒng)稱為分類型數(shù)據(jù),即數(shù)據(jù)類型可以是兩個:數(shù)值型數(shù)據(jù)(區(qū)間型數(shù)據(jù))和分類型數(shù)據(jù)(分類型數(shù)據(jù)和序數(shù)型數(shù)據(jù))。
02 連續(xù)型數(shù)據(jù)的探索
連續(xù)型數(shù)據(jù)的探索,其關(guān)注點主要是通過統(tǒng)計指標(biāo)來反映其分布和特點。典型的統(tǒng)計指標(biāo)有以下幾個:
4. 缺失值
取值為空的值即為缺失值。缺失值比例是確定該字段是否可用的重要指標(biāo)。一般情況下,如果缺失率超過50%,則該字段就完全不可用。
在很多情況下,我們需要區(qū)別對待null和0的關(guān)系。Null為缺失值,0是有效值。這個區(qū)別很重要,要小心區(qū)別對待。例如,某客戶在銀行內(nèi)的某賬戶余額為null,意味著該客戶可能沒有該賬戶。但是如果將null改為0,則是說用戶有該賬戶,且賬戶余額為零。
5. 均值(Mean)
顧名思義,均值即平均值。其大小反映了整體的水平。一個數(shù)學(xué)平均成績是95分的班級,肯定比平均成績是80分的班級的數(shù)學(xué)能力要好。
6. 最大值和最小值
最大值和最小值即每個數(shù)據(jù)集中的最大數(shù)和最小數(shù)。
7. 方差
方差反映各個取值距平均值的離散程度。雖然有時兩組數(shù)據(jù)的平均值大小可能是相同的,但是各個觀察量的離散程度卻很少能相同。方差取值越大,說明離散程度越大。比如,平均成績是80分的班級,其方差很小,說明這個班級的數(shù)學(xué)能力比較平均:沒有多少過高的成績,也沒有多少過低的成績。
8. 標(biāo)準(zhǔn)差
標(biāo)準(zhǔn)差是方差的開方,其含義與方差類似。
9. 中位數(shù)(Median)
中位數(shù)是將排序后的數(shù)據(jù)集分為兩個數(shù)據(jù)集,這兩個數(shù)據(jù)集分別是取值高的數(shù)據(jù)集和取值低的數(shù)據(jù)集。比如,數(shù)據(jù)集{3,4,5,7,8}的中位數(shù)是5,在5之下和5之上分別是取值低和取值高的數(shù)據(jù)集。數(shù)據(jù)集{2,4,5,7}的中位數(shù)應(yīng)當(dāng)是(4 + 5)/2=4.5。
10. 眾數(shù)(Mode)
眾數(shù)是數(shù)據(jù)集中出現(xiàn)頻率最高的數(shù)據(jù)。眾數(shù)最常用的場景是分類型數(shù)據(jù)的統(tǒng)計,但是其也反映了數(shù)值型數(shù)據(jù)的“明顯集中趨勢點的數(shù)值”。
均值、中位數(shù)、眾數(shù)的計算方式各有不同,假設(shè)有一組數(shù)據(jù):
1,2,2,3,4,7,9
- 均值:(1 + 2 + 2 + 3 + 4 + 7 + 9)/7=4
- 中位數(shù):3
- 眾數(shù):2
11. 四分位數(shù)(Quartile)
四分位數(shù),即用三個序號將已經(jīng)排序過的數(shù)據(jù)等分為四份,如表2-2所示。
▲表2-2 四分位的例子
第二四分位數(shù)(Q2)的取值和中位數(shù)的取值是相同的。
12. 四分位距(Interquartile Range,IQR)
四分位距通過第三四分位數(shù)和第一四分位數(shù)的差值來計算,即IQR=Q3-Q1。針對上表,其IQR=61-34=27。
四分位距是進行離群值判別的一個重要統(tǒng)計指標(biāo)。一般情況下,極端值都在Q1-1.5×IQR之下,或者Q3 + 1.5×IQR之上。著名的箱形圖就是借助四分位數(shù)和四分位距的概念來畫的,如圖2-1所示。
▲圖2-1 箱形圖及IQR
箱形圖中的上下兩條橫線,有可能是離群值分界點(Q3 + 1.5×IQR或Q1-1.5×IQR),也有可能是最大值或最小值。這完全取決于最大值和最小值是否在分界點之內(nèi)。
13. 偏斜度(Skewness)
偏斜度是關(guān)于表現(xiàn)數(shù)據(jù)分布的對稱性的指標(biāo)。如果其值是0,則代表一個對稱性的分布;若其值是正值,代表分布的峰值偏左;若其值是負(fù)值,代表分布的峰值偏右。在圖2-2中給出了偏斜度的示例。
▲圖2-2 Skewness的含義
Skewness的絕對值(不論是正值還是負(fù)值)如果大于1是個很明顯的信號,你的數(shù)據(jù)分布有明顯的不對稱性。很多數(shù)據(jù)分析的算法都是基于數(shù)據(jù)的分布是類似于正態(tài)分布的鐘型分布,并且數(shù)據(jù)都是在均值的周圍分布。如果Skewness的絕對值過大,則是另一個信號:你要小心地使用那些算法!
不同的偏斜度下,均值、中位數(shù)、眾數(shù)的取值是有很大不同的:
▲圖2-3 眾數(shù)、均值及中位數(shù)在不同分布下的比較
由圖2-3可見,在數(shù)據(jù)取值范圍相同的情況下,中位數(shù)是相同的。但是均值和眾數(shù)卻有很大的不同。所以,除了偏斜度指標(biāo)可以直接反映分布特征外,還可以通過中位數(shù)和均值的差異來判斷分布的偏斜情況。
- 中位數(shù)<均值:偏左分布
- 中位數(shù)、均值相差無幾:對稱分布
- 中位數(shù)>均值:偏右分布
14. 峰態(tài)(Kurtosis)
標(biāo)準(zhǔn)正態(tài)分布的峰態(tài)的值是3,但是在很多數(shù)據(jù)分析工具中對峰態(tài)值減去3,使得:0代表是正態(tài)分布;正值代表數(shù)據(jù)分布有個尖尖的峰值,高于正態(tài)分布的峰值;負(fù)值代表數(shù)據(jù)有個平緩的峰值,且低于正態(tài)分布的峰值。
峰態(tài)指標(biāo)的主要作用是體現(xiàn)數(shù)值分布的尾巴厚度,尖峰對應(yīng)著厚尾,即Kurtosis大于0時,意味著有一個厚尾巴。尖峰厚尾也就是說,在峰值附近取值較集中,但在非峰值附近取值較分散。圖2-4所示為一個峰態(tài)的例子。
▲圖2-4 峰態(tài)的例子
在連續(xù)型數(shù)據(jù)的探索中,需要重點關(guān)注的指標(biāo)首先是缺失率,然后是均值、中位數(shù)等指標(biāo),這些指標(biāo)能幫助數(shù)據(jù)分析者對數(shù)據(jù)的特征有很好的了解。偏斜度是另外一個非常重要的指標(biāo),但其絕對值接近1或大于1時,必須對其進行l(wèi)og轉(zhuǎn)換才能使用,否則該指標(biāo)的價值將大打折扣。
Python Pandas中DataFrame的describe方法默認(rèn)只統(tǒng)計連續(xù)性字段的最大值、最小值、均值、標(biāo)準(zhǔn)差、四分位數(shù),如果想獲取其他的特征值,需要調(diào)用相應(yīng)的函數(shù)來獲得。下面是一段示例代碼,其運行結(jié)果通過表2-4來展示。
List_of_series = [bank.var().rename('方差'), bank.median().rename('中位數(shù)'), bank.skew().rename('偏斜度'), bank.kurt().rename('峰態(tài)')] df = pd.DataFrame(list_of_series) mode = bank.mode(numeric_only=True).rename({0: '眾數(shù)'}) pd.concat([df, mode])
▲表2-4 連續(xù)型變量數(shù)據(jù)探索示例代碼的運行結(jié)果
03 分類型數(shù)據(jù)的探索
分類型數(shù)據(jù)的探索主要是從分類的分布等方面進行考察。常見的統(tǒng)計指標(biāo)有以下幾個:
15. 缺失值
缺失值永遠(yuǎn)是需要關(guān)心的指標(biāo),不論是連續(xù)型數(shù)據(jù),還是分類型數(shù)據(jù)。過多的缺失值,會使得指標(biāo)失去意義。
16. 類別個數(shù)
依據(jù)分類型數(shù)據(jù)中類別的個數(shù),可以對指標(biāo)是否可用有一個大致的判斷。例如,從業(yè)務(wù)角度來看,某指標(biāo)應(yīng)當(dāng)有6個類別,但實際樣本中只出現(xiàn)了5個類別,則需要重新考慮樣本的質(zhì)量。再如,某個分類型變量只有一個類別時,對數(shù)據(jù)分析是完全不可用的。
17. 類別中個體數(shù)量
在大多數(shù)情況下,如果某些類別中個體數(shù)量太少,如只有1%的比例,可以認(rèn)為該類別是個離群值。關(guān)于分類型變量離群值的研究比較多,但是如果脫離業(yè)務(wù)來談分類型變量的離群值,是不妥當(dāng)?shù)摹?/p>
不平衡數(shù)據(jù)就是一個典型的與業(yè)務(wù)有關(guān)的例子。比如,從業(yè)務(wù)角度來看,購買黃金的客戶只占銀行全量客戶的很小的一個部分,如果采取簡單隨機抽樣的方式,“是否購買”列的值將只有極少的“是”的取值。
但是,不能將“是”直接判斷為離群值,反而“是”有極其重要的業(yè)務(wù)含義。所以,數(shù)據(jù)分析者需要靈活地認(rèn)識和對待類別中個體數(shù)量的問題。
18. 眾數(shù)
和連續(xù)型數(shù)據(jù)的含義一樣,眾數(shù)是數(shù)據(jù)集中出現(xiàn)頻率最高的數(shù)據(jù)。比如,針對某個分類型取值A(chǔ)、B、C、D中C的出現(xiàn)次數(shù)最多,則C就是眾數(shù)。
以下是一段分類型變量數(shù)據(jù)探索示例代碼,其運行結(jié)果通過表2-5來展示。
bank.describe(include=[np.object])
▲表2-5 分類型變量數(shù)據(jù)探索示例代碼的運行結(jié)果
應(yīng)用Python Pandas的相關(guān)函數(shù)能夠非常容易得到分類型變量的探索結(jié)果,表2-5所示就是數(shù)據(jù)探索示例代碼的運行結(jié)果。
關(guān)于作者:彭鴻濤,德勤企業(yè)咨詢總監(jiān)兼首席數(shù)據(jù)科學(xué)家,德勤全球AI團隊核心成員,德勤數(shù)字化轉(zhuǎn)型、智慧營銷、智慧風(fēng)控、客戶體驗等核心咨詢服務(wù)方案的資深顧問。
張宗耀,上海全應(yīng)科技有限公司資深數(shù)據(jù)科學(xué)家,前華為企業(yè)智能部門資深數(shù)據(jù)科學(xué)家,前IBM SPSS 算法組件團隊資深算法工程師。
聶磊,陜西萬禾數(shù)字科技有限公司CTO,前IBM SPSS 資深數(shù)據(jù)科學(xué)家,前IBM Watson Analytics數(shù)據(jù)分析引擎技術(shù)主管及架構(gòu)師。