箱式图 添加异常值平均值_什么是脏数据?怎样用箱形图分析异常值?终于有人讲明白了...
導讀:數據質量分析是數據挖掘中數據準備過程的重要一環,是數據預處理的前提,也是數據挖掘分析結論有效性和準確性的基礎。沒有可信的數據,數據挖掘構建的模型將是空中樓閣。
數據質量分析的主要任務是檢查原始數據中是否存在臟數據。臟數據一般是指不符合要求以及不能直接進行相應分析的數據。在常見的數據挖掘工作中,臟數據包括:缺失值、異常值、不一致的值、重復數據及含有特殊符號(如#、¥、*)的數據。
本文將主要對數據中的缺失值、異常值和一致性進行分析。
作者:張良均 譚立云 劉名軍 江建明
來源:華章科技
01 缺失值分析
數據的缺失主要包括記錄的缺失和記錄中某個字段信息的缺失,兩者都會造成分析結果不準確。下面從缺失值產生的原因及影響等方面展開分析。
1. 缺失值產生的原因
缺失值產生的原因主要有以下3點:
2. 缺失值的影響
缺失值會產生以下的影響:
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.000000mean???2755.214700std?????751.029772min??????22.00000025%????2451.97500050%????2655.85000075%????3026.125000max????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數據分析與挖掘實戰》
推薦語:暢銷書全新升級,第1版銷售超過10萬冊,被國內100余所高等院校采用為教材,同時被廣大數據科學工作者奉為經典,是該領域公認的事實標準。作者在大數據挖掘與分析等領域有10余年的工程實踐、教學和創辦企業的經驗,不僅掌握行業的最新技術和實踐方法,而且洞悉學生和老師的需求與痛點。
總結
以上是生活随笔為你收集整理的箱式图 添加异常值平均值_什么是脏数据?怎样用箱形图分析异常值?终于有人讲明白了...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用了fastapi还需要nginx_ng
- 下一篇: 华为硬件工程师社招机考题库_干货:201