什么是脏数据?怎样用箱形图分析异常值?终于有人讲明白了
導讀:數據質量分析是數據挖掘中數據準備過程的重要一環,是數據預處理的前提,也是數據挖掘分析結論有效性和準確性的基礎。沒有可信的數據,數據挖掘構建的模型將是空中樓閣。
數據質量分析的主要任務是檢查原始數據中是否存在臟數據。臟數據一般是指不符合要求以及不能直接進行相應分析的數據。在常見的數據挖掘工作中,臟數據包括:缺失值、異常值、不一致的值、重復數據及含有特殊符號(如#、¥、*)的數據。
本文將主要對數據中的缺失值、異常值和一致性進行分析。
作者:張良均 譚立云 劉名軍 江建明
來源:大數據DT(ID:hzdashuju)
01 缺失值分析
數據的缺失主要包括記錄的缺失和記錄中某個字段信息的缺失,兩者都會造成分析結果不準確。下面從缺失值產生的原因及影響等方面展開分析。
1. 缺失值產生的原因
缺失值產生的原因主要有以下3點:
有些信息暫時無法獲取,或者獲取信息的代價太大。
有些信息是被遺漏的。可能是因為輸入時認為該信息不重要、忘記填寫或對數據理解錯誤等一些人為因素而遺漏,也可能是由于數據采集設備故障、存儲介質故障、傳輸媒體故障等非人為原因而丟失。
屬性值不存在。在某些情況下,缺失值并不意味著數據有錯誤。對一些對象來說某些屬性值是不存在的,如一個未婚者的配偶姓名、一個兒童的固定收入等。
2. 缺失值的影響
缺失值會產生以下的影響:
數據挖掘建模將丟失大量的有用信息。
數據挖掘模型所表現出的不確定性更加顯著,模型中蘊含的規律更難把握。
包含空值的數據會使建模過程陷入混亂,導致不可靠的輸出。
3. 缺失值的分析
對缺失值的分析主要從以下兩方面進行:
使用簡單的統計分析,可以得到含有缺失值的屬性的個數以及每個屬性的未缺失數、缺失數與缺失率等。
對于缺失值的處理,從總體上來說分為刪除存在缺失值的記錄、對可能值進行插補和不處理3種情況。
02 異常值分析
異常值分析是檢驗數據是否有錄入錯誤,是否含有不合常理的數據。忽視異常值的存在是十分危險的,不加剔除地將異常值放入數據的計算分析過程中,會對結果造成不良影響;重視異常值的出現,分析其產生的原因,常常成為發現問題進而改進決策的契機。
異常值是指樣本中的個別值,其數值明顯偏離其他的觀測值。異常值也稱為離群點,異常值分析也稱為離群點分析。
1. 簡單統計量分析
在進行異常值分析時,可以先對變量做一個描述性統計,進而查看哪些數據是不合理的。最常用的統計量是最大值和最小值,用來判斷這個變量的取值是否超出了合理范圍。如客戶年齡的最大值為199歲,則判斷該變量的取值存在異常。
2. 3σ原則
如果數據服從正態分布,在3σ原則下,異常值被定義為一組測定值中與平均值的偏差超過3倍標準差的值。在正態分布的假設下,距離平均值3σ之外的值出現的概率為P(|x-μ|>3σ)≤0.003,屬于極個別的小概率事件。
如果數據不服從正態分布,也可以用遠離平均值的標準差倍數來描述。
3. 箱型圖分析
箱型圖提供了識別異常值的一個標準:異常值通常被定義為小于QL -1.5IQR或大于QU +1.5IQR的值。
QL稱為下四分位數,表示全部觀察值中有四分之一的數據取值比它小;
QU稱為上四分位數,表示全部觀察值中有四分之一的數據取值比它大;
IQR稱為四分位數間距,是上四分位數QU與下四分位數QL之差,其間包含了全部觀察值的一半。
箱型圖依據實際數據繪制,對數據沒有任何限制性要求,如服從某種特定的分布形式,它只是真實直觀地表現數據分布的本來面貌;另一方面,箱型圖判斷異常值的標準以四分位數和四分位距為基礎,四分位數具有一定的魯棒性:多達25%的數據可以變得任意遠而不會嚴重擾動四分位數,所以異常值不能對這個標準施加影響。
由此可見,箱型圖識別異常值的結果比較客觀,在識別異常值方面有一定的優越性,如圖3-1所示。
▲圖3-1 箱型圖檢測異常值
餐飲系統中的銷量數據可能出現缺失值和異常值,例如表3-1中數據所示。
▲表3-1 餐飲日銷額數據示例
分析餐飲系統日銷額數據可以發現,其中有部分數據是缺失的,但是如果數據記錄和屬性較多,使用人工分辨的方法就不切實際,所以這里需要編寫程序來檢測出含有缺失值的記錄和屬性以及缺失率個數和缺失率等。
在Python的pandas庫中,只需要讀入數據,然后使用describe()方法即可查看數據的基本情況,如代碼清單3-1所示。
代碼清單3-1 使用describe()方法查看數據的基本情況
代碼清單3-1的運行結果如下:
???????????銷量 count???200.000000 mean???2755.214700 std?????751.029772 min??????22.000000 25%????2451.975000 50%????2655.850000 75%????3026.125000 max????9106.440000其中count是非空值數,通過len(data)可以知道數據記錄為201條,因此缺失值數為1。另外,提供的基本參數還有平均值(mean)、標準差(std)、最小值(min)、最大值(max)以及1/4、1/2、3/4分位數(25%、50%、75%)。
更直觀地展示這些數據并且可以檢測異常值的方法是使用箱型圖。其Python檢測代碼如代碼清單3-2所示。
代碼清單3-2 餐飲日銷額數據異常值檢測
運行代碼清單3-2,可以得到圖3-2所示的箱型圖。
▲圖3-2 異常值檢測箱型圖
從圖3-2可以看出,箱型圖中超過上下界的7個日銷售額數據可能為異常值。結合具體業務可以把865.0、4060.3、4065.2歸為正常值,將22.0、51.0、60.0、6607.4、9106.44歸為異常值。最后確定過濾規則為日銷額在400元以下或5000元以上則屬于異常數據,編寫過濾程序,進行后續處理。
03 一致性分析
數據不一致性是指數據的矛盾性、不相容性。直接對不一致的數據進行挖掘,可能會產生與實際相違背的挖掘結果。
在數據挖掘過程中,不一致數據的產生主要發生在數據集成的過程中,可能是由于被挖掘數據來自于不同的數據源、對于重復存放的數據未能進行一致性更新造成的。
例如,兩張表中都存儲了用戶的電話號碼,但在用戶的電話號碼發生改變時只更新了一張表中的數據,那么這兩張表中就有了不一致的數據。
關于作者:張良均,資深大數據挖掘與分析專家、模式識別專家、AI技術專家。有10余年大數據挖掘與分析經驗,擅長Python、R、Hadoop、Matlab等技術實現的數據挖掘與分析,對機器學習等AI技術驅動的數據分析也有深入研究。
本文摘編自《Python數據分析與挖掘實戰》(第2版),經出版方授權發布。
延伸閱讀《Python數據分析與挖掘實戰》
點擊上圖了解及購買
轉載請聯系微信:DoctorData
推薦語:暢銷書全新升級,第1版銷售超過10萬冊,被國內100余所高等院校采用為教材,同時被廣大數據科學工作者奉為經典,是該領域公認的事實標準。作者在大數據挖掘與分析等領域有10余年的工程實踐、教學和創辦企業的經驗,不僅掌握行業的最新技術和實踐方法,而且洞悉學生和老師的需求與痛點。
劃重點????
干貨直達????
月薪15k起,想進入這個行業有哪些書值得讀?
手把手教你用Python給小姐姐美個顏
學Python半年,56歲的潘叔叔曬出99分成績單,你呢?
一個地方越有錢,人們就越不想結婚?
更多精彩????
在公眾號對話框輸入以下關鍵詞
查看更多優質內容!
PPT?|?讀書?|?書單?|?硬核?|?干貨?
大數據?|?揭秘?|?Python?|?可視化
AI?|?人工智能?|?5G?|?中臺
機器學習?|?深度學習?|?神經網絡
合伙人?|?1024?|?大神?|?數學
據統計,99%的大咖都完成了這個神操作
????
新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!總結
以上是生活随笔為你收集整理的什么是脏数据?怎样用箱形图分析异常值?终于有人讲明白了的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Flink的设计与实现:集群资源管理
- 下一篇: 盘点3款黑马小众数据库:适合的才是最好的