
導讀:在數據清洗過程中,主要處理的是缺失值、異常值和重復值。所謂清洗,是對數據集通過丟棄、填充、替換、去重等操作,達到去除異常、糾正錯誤、補足缺失的目的。
作者:宋天龍
本文轉自:大數據DT(ID:hzdashuju)
01、數據列缺失的4種處理方法
數據缺失分為兩種:一種是行記錄的缺失,這種情況又稱數據記錄丟失;另一種是數據列值的缺失,即由于各種原因導致的數據記錄中某些列的值空缺。
不同的數據存儲和環境中對于缺失值的表示結果也不同,例如,數據庫中是Null,Python返回對象是None,Pandas或Numpy中是NaN。
在極少數情況下,部分缺失值也會使用空字符串來代替,但空字符串絕對不同于缺失值。從對象的實體來看,空字符串是有實體的,實體為字符串類型;而缺失值其實是沒有實體的,即沒有數據類型。
丟失的數據記錄通常無法找回,這里重點討論數據列類型缺失值的處理思路。通常有4種思路。
1. 丟棄
這種方法簡單明了,直接刪除帶有缺失值的行記錄(整行刪除)或者列字段(整列刪除),減少缺失數據記錄對總體數據的影響。但丟棄意味著會消減數據特征,以下任何一種場景都不宜采用該方法。
2. 補全
相對丟棄而言,補全是更加常用的缺失值處理方式。通過一定的方法將缺失的數據補上,從而形成完整的數據記錄,對于后續的數據處理、分析和建模至關重要。常用的補全方法如下。
3. 真值轉換法
在某些情況下,我們可能無法得知缺失值的分布規律,并且無法對于缺失值采用上述任何一種補全方法做處理;或者我們認為數據缺失也是一種規律,不應該輕易對缺失值隨意處理,那么還有一種缺失值處理思路—真值轉換。
該思路的根本觀點是,我們承認缺失值的存在,并且把數據缺失也作為數據分布規律的一部分,將變量的實際值和缺失值都作為輸入維度參與后續數據處理和模型計算中。但是變量的實際值可以作為變量值參與模型計算,而缺失值通常無法參與運算,因此需要對缺失值進行真值轉換。
以用戶性別字段為例,很多數據庫集都無法對會員的性別進行補足,但又舍不得將其丟棄掉,那么我們將選擇將其中的值,包括男、女、未知從一個變量的多個值分布狀態轉換為多個變量的真值分布狀態。
然后將這3列新的字段作為輸入維度替換原來的1個字段參與后續模型計算。
4. 不處理
在數據預處理階段,對于具有缺失值的數據記錄不做任何處理,也是一種思路。這種思路主要看后期的數據分析和建模應用,很多模型對于缺失值有容忍度或靈活的處理方法,因此在預處理階段可以不做處理。
常見的能夠自動處理缺失值的模型包括:KNN、決策樹和隨機森林、神經網絡和樸素貝葉斯、DBSCAN(基于密度的帶有噪聲的空間聚類)等。這些模型對于缺失值的處理思路是:
在數據建模前的數據歸約階段,有一種歸約的思路是降維,降維中有一種直接選擇特征的方法。假如我們通過一定方法確定帶有缺失值(無論缺少字段的值缺失數量有多少)的字段對于模型的影響非常小,那么我們根本就不需要對缺失值進行處理。
因此,后期建模時的字段或特征的重要性判斷也是決定是否處理字段缺失值的重要參考因素之一。
對于缺失值的處理思路是先通過一定方法找到缺失值,接著分析缺失值在整體樣本中的分布占比,以及缺失值是否具有顯著的無規律分布特征,然后考慮后續要使用的模型中是否能滿足缺失值的自動處理,最后決定采用哪種缺失值處理方法。
在選擇處理方法時,注意投入的時間、精力和產出價值,畢竟,處理缺失值只是整個數據工作的冰山一角而已。
在數據采集時,可在采集端針對各個字段設置一個默認值。以MySQL為例,在設計數據庫表時,可通過default指定每個字段的默認值,該值必須是常數。
在這種情況下,假如原本數據采集時沒有采集到數據,字段的值應該為Null,雖然由于在建立庫表時設置了默認值會導致“缺失值”看起來非常正常,但本質上還是缺失的。對于這類數據需要尤其注意。
02、不要輕易拋棄異常數據
異常數據是數據分布的常態,處于特定分布區域或范圍之外的數據通常會被定義為異?;颉霸胍簟?。產生數據“噪音”的原因很多,例如業務運營操作、數據采集問題、數據同步問題等。
對異常數據進行處理前,需要先辨別出到底哪些是真正的數據異常。從數據異常的狀態看分為兩種:
大多數數據挖掘或數據工作中,異常值都會在數據的預處理過程中被認為是噪音而剔除,以避免其對總體數據評估和分析挖掘的影響。但在以下幾種情況下,我們無須對異常值做拋棄處理。
1. 異常值正常反映了業務運營結果
該場景是由業務部門的特定動作導致的數據分布異常,如果拋棄異常值將導致無法正確反饋業務結果。
例如:公司的A商品正常情況下日銷量為1000臺左右。由于昨日舉行優惠促銷活動導致總銷量達到10000臺,由于后端庫存備貨不足導致今日銷量又下降到100臺。在這種情況下,10000臺和100臺都正確地反映了業務運營的結果,而非數據異常案例。
2. 異常檢測模型
異常檢測模型是針對整體樣本中的異常數據進行分析和挖掘,以便找到其中的異常個案和規律,這種數據應用圍繞異常值展開,因此異常值不能做拋棄處理。
異常檢測模型常用于客戶異常識別、信用卡欺詐、貸款審批識別、藥物變異識別、惡劣氣象預測、網絡入侵檢測、流量作弊檢測等。在這種情況下,異常數據本身是目標數據,如果被處理掉將損失關鍵信息。
如果數據算法和模型對異常值不敏感,那么即使不處理異常值也不會對模型本身造成負面影響。例如在決策樹中,異常值本身就可以作為一種分裂節點。
提示:除了拋棄和保留,還有一種思路可對異常值進行處理,例如使用其他統計量、預測量進行替換。但這種方法不推薦使用,原因是這會將其中的關鍵分布特征消除,從而改變原始數據集的分布規律。
03、數據重復就需要去重嗎
數據集中的重復值包括以下兩種情況:
去重是重復值處理的主要方法,主要目的是保留能顯示特征的唯一數據記錄。但當遇到以下幾種情況時,請慎重(不建議)執行數據去重。
1. 重復的記錄用于分析演變規律
以變化維度表為例。例如在商品類別的維度表中,每個商品對應的同1個類別的值應該是唯一的,例如蘋果iPhone7屬于個人電子消費品,這樣才能將所有商品分配到唯一類別屬性值中。但當所有商品類別的值重構或升級時(大多數情況下隨著公司的發展都會這么做),原有的商品可能被分配了類別中的不同值。如下表所示展示了這種變化。
此時,我們在數據中使用Full join做跨重構時間點的類別匹配時,會發現蘋果iPhone7會同時匹配到個人電子消費品和手機數碼2條記錄。對于這種情況,需要根據具體業務需求處理。
變化維度表是數據倉庫中的概念。維度表類似于匹配表,用來存儲靜態的維度、屬性等數據,而這些數據一般都不會改變。但是變與不變是一個相對的概念,隨著企業的不斷發展,很多時候維度也會隨著發生變化。因此在某個時間內的維度是不變的,而從整體來看維度也是變化的。
對于維度的變化,有3種方式進行處理:
具體到企業內使用哪種方式,通常由數據庫管理員根據實際情況來決定。
注意:真正的變化維度表或維度表不會以中文做主鍵,通常都會使用數字或字符串類作為唯一關聯ID,本節的示例僅做說明之用。
2. 重復的記錄用于樣本不均衡處理
在開展分類數據建模工作時,樣本不均衡是影響分類模型效果的關鍵因素之一。解決分類方法的一種方法是對少數樣本類別做簡單過采樣,通過隨機過采樣,采取簡單復制樣本的策略來增加少數類樣本。
經過這種處理方式后,也會在數據記錄中產生相同記錄的多條數據。此時,我們不能對其中的重復值執行去重操作。
3. 重復的記錄用于檢測業務規則問題
對于以分析應用為主的數據集而言,存在重復記錄不會直接影響實際運營,畢竟數據集主要是用來做分析的。
但對于事務型的數據而言,重復數據可能意味著重大運營規則問題,尤其當這些重復值出現在與企業經營中與金錢相關的業務場景時,例如:重復的訂單、重復的充值、重復的預約項、重復的出庫申請等。
這些重復的數據記錄通常是由于數據采集、存儲、驗證和審核機制的不完善等問題導致的,會直接反映到前臺生產和運營系統。以重復訂單為例:
因此,這些問題必須在前期數據采集和存儲時就通過一定機制解決和避免。如果確實產生了此類問題,那么數據工作者或運營工作者可以基于這些重復值來發現規則漏洞,并配合相關部門,最大限度地降低由此而帶來的運營風險。
關于作者:宋天龍,大數據技術專家,觸脈咨詢合伙人兼副總裁,前Webtrekk中國區技術和咨詢負責人(Webtrekk,德國的在線數據分析服務提供商)。擅長數據挖掘、建模、分析與運營,精通端到端數據價值場景設計、業務需求轉換、數據結構梳理、數據建模與學習以及數據工程交付。
直播預告
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25在當今數字化時代,數據分析師的重要性與日俱增。但許多人在踏上這條職業道路時,往往充滿疑惑: 如何成為一名數據分析師?成為 ...
2025-04-24以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《劉靜:10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda ...
2025-04-23