㈠ 一文看懂數據清洗:缺失值、異常值和重復值的處理
作者:宋天龍
如需轉載請聯系華章 科技
數據缺失分為兩種:一種是 行記錄的缺失 ,這種情況又稱數據記錄丟失;另一種是 數據列值的缺失 ,即由於各種原因導致的數據記錄中某些列的值空缺。
不同的數據存儲和環境中對於缺失值的表示結果也不同,例如,資料庫中是Null,Python返回對象是None,Pandas或Numpy中是NaN。
在極少數情況下,部分缺失值也會使用空字元串來代替,但空字元串絕對不同於缺失值。從對象的實體來看,空字元串是有實體的,實體為字元串類型;而缺失值其實是沒有實體的,即沒有數據類型。
丟失的數據記錄通常無法找回,這里重點討論數據列類型缺失值的處理思路。通常有4種思路。
1. 丟棄
這種方法簡單明了,直接刪除帶有缺失值的行記錄(整行刪除)或者列欄位(整列刪除),減少缺失數據記錄對總體數據的影響。 但丟棄意味著會消減數據特徵 ,以下任何一種場景都不宜採用該方法。
2. 補全
相對丟棄而言,補全是更加常用的缺失值處理方式。通過一定的方法將缺失的數據補上,從而形成完整的數據記錄,對於後續的數據處理、分析和建模至關重要。常用的補全方法如下。
3. 真值轉換法
在某些情況下,我們可能無法得知缺失值的分布規律,並且無法對於缺失值採用上述任何一種補全方法做處理;或者我們認為數據缺失也是一種規律,不應該輕易對缺失值隨意處理,那麼還有一種缺失值處理思路—真值轉換。
該思路的根本觀點是, 我們承認缺失值的存在,並且把數據缺失也作為數據分布規律的一部分 ,將變數的實際值和缺失值都作為輸入維度參與後續數據處理和模型計算中。但是變數的實際值可以作為變數值參與模型計算,而缺失值通常無法參與運算,因此需要對缺失值進行真值轉換。
以用戶性別欄位為例,很多資料庫集都無法對會員的性別進行補足,但又捨不得將其丟棄掉,那麼我們將選擇將其中的值,包括男、女、未知從一個變數的多個值分布狀態轉換為多個變數的真值分布狀態。
然後將這3列新的欄位作為輸入維度替換原來的1個欄位參與後續模型計算。
4. 不處理
在數據預處理階段,對於具有缺失值的數據記錄不做任何處理,也是一種思路。這種思路主要看後期的數據分析和建模應用, 很多模型對於缺失值有容忍度或靈活的處理方法 ,因此在預處理階段可以不做處理。
常見的能夠自動處理缺失值的模型包括:KNN、決策樹和隨機森林、神經網路和樸素貝葉斯、DBSCAN(基於密度的帶有雜訊的空間聚類)等。這些模型對於缺失值的處理思路是:
在數據建模前的數據歸約階段,有一種歸約的思路是 降維 ,降維中有一種直接選擇特徵的方法。假如我們通過一定方法確定帶有缺失值(無論缺少欄位的值缺失數量有多少)的欄位對於模型的影響非常小,那麼我們根本就不需要對缺失值進行處理。
因此,後期建模時的欄位或特徵的重要性判斷也是決定是否處理欄位缺失值的重要參考因素之一。
對於缺失值的處理思路是先通過一定方法找到缺失值,接著分析缺失值在整體樣本中的分布佔比,以及缺失值是否具有顯著的無規律分布特徵,然後考慮後續要使用的模型中是否能滿足缺失值的自動處理,最後決定採用哪種缺失值處理方法。
在選擇處理方法時,注意投入的時間、精力和產出價值,畢竟,處理缺失值只是整個數據工作的冰山一角而已。
在數據採集時,可在採集端針對各個欄位設置一個默認值。以MySQL為例,在設計資料庫表時,可通過default指定每個欄位的默認值,該值必須是常數。
在這種情況下,假如原本數據採集時沒有採集到數據,欄位的值應該為Null,雖然由於在建立庫表時設置了默認值會導致「缺失值」看起來非常正常,但本質上還是缺失的。對於這類數據需要尤其注意。
異常數據是數據分布的常態,處於特定分布區域或范圍之外的數據通常會被定義為異常或「噪音」。產生數據「噪音」的原因很多,例如業務運營操作、數據採集問題、數據同步問題等。
對異常數據進行處理前,需要先辨別出到底哪些是真正的數據異常。從數據異常的狀態看分為兩種:
大多數數據挖掘或數據工作中,異常值都會在數據的預處理過程中被認為是噪音而剔除,以避免其對總體數據評估和分析挖掘的影響。但在以下幾種情況下,我們無須對異常值做拋棄處理。
1. 異常值正常反映了業務運營結果
該場景是由業務部門的特定動作導致的數據分布異常,如果拋棄異常值將導致無法正確反饋業務結果。
例如:公司的A商品正常情況下日銷量為1000台左右。由於昨日舉行優惠促銷活動導致總銷量達到10000台,由於後端庫存備貨不足導致今日銷量又下降到100台。在這種情況下,10000台和100台都正確地反映了業務運營的結果,而非數據異常案例。
2. 異常檢測模型
異常檢測模型是針對整體樣本中的異常數據進行分析和挖掘,以便找到其中的異常個案和規律,這種數據應用圍繞異常值展開,因此異常值不能做拋棄處理。
異常檢測模型常用於客戶異常識別、信用卡欺詐、貸款審批識別、葯物變異識別、惡劣氣象預測、網路入侵檢測、流量作弊檢測等。在這種情況下,異常數據本身是目標數據,如果被處理掉將損失關鍵信息。
3. 包容異常值的數據建模
如果數據演算法和模型對異常值不敏感,那麼即使不處理異常值也不會對模型本身造成負面影響。例如在決策樹中,異常值本身就可以作為一種分裂節點。
數據集中的重復值包括以下兩種情況:
去重是重復值處理的主要方法,主要目的是保留能顯示特徵的唯一數據記錄。但當遇到以下幾種情況時,請慎重(不建議)執行數據去重。
1. 重復的記錄用於分析演變規律
以變化維度表為例。例如在商品類別的維度表中,每個商品對應的同1個類別的值應該是唯一的,例如蘋果iPhone7屬於個人電子消費品,這樣才能將所有商品分配到唯一類別屬性值中。但當所有商品類別的值重構或升級時(大多數情況下隨著公司的發展都會這么做),原有的商品可能被分配了類別中的不同值。如下表所示展示了這種變化。
此時,我們在數據中使用Full join做跨重構時間點的類別匹配時,會發現蘋果iPhone7會同時匹配到個人電子消費品和手機數碼2條記錄。對於這種情況,需要根據具體業務需求處理。
2. 重復的記錄用於樣本不均衡處理
在開展分類數據建模工作時,樣本不均衡是影響分類模型效果的關鍵因素之一。解決分類方法的一種方法是對少數樣本類別做簡單過采樣,通過隨機過采樣,採取簡單復制樣本的策略來增加少數類樣本。
經過這種處理方式後,也會在數據記錄中產生相同記錄的多條數據。此時,我們不能對其中的重復值執行去重操作。
3. 重復的記錄用於檢測業務規則問題
對於以分析應用為主的數據集而言,存在重復記錄不會直接影響實際運營,畢竟數據集主要是用來做分析的。
但對於事務型的數據而言, 重復數據可能意味著重大運營規則問題 ,尤其當這些重復值出現在與企業經營中與金錢相關的業務場景時,例如:重復的訂單、重復的充值、重復的預約項、重復的出庫申請等。
這些重復的數據記錄通常是由於數據採集、存儲、驗證和審核機制的不完善等問題導致的,會直接反映到前台生產和運營系統。以重復訂單為例:
因此,這些問題必須在前期數據採集和存儲時就通過一定機制解決和避免。如果確實產生了此類問題,那麼數據工作者或運營工作者可以基於這些重復值來發現規則漏洞,並配合相關部門,最大限度地降低由此而帶來的運營風險。
本文摘編自《Python數據分析與數據化運營》(第2版),經出版方授權發布。
㈡ 數據丟失是什麼意思
在電腦的使用過程中,經常會遇到一些有驚無險的事,譬如軟體設置錯誤、系統感染病毒、文件意外刪除等等都會導致我們電腦中的數據損壞或丟失。如果上天還給你一個機會,你知道怎麼去拯救這些重要數據嗎?來來來,看下面就清楚了。
數據怎麼丟失的?
不幸之一:誤格式化、誤刪除引起的數據丟失。
在這種情況下,只要你沒有向丟失數據所在的分區上寫入新的數據,那麼利用數據恢復軟體對數據恢復的成功率很高,恢復率接近100%。但如果你最開始是使用的專業的數據刪除軟體來刪除數據,且反復刪除覆蓋了數據,那麼這些數據基本上是無望恢復了。
不幸之二:由病毒引起的數據丟失。
由於病毒破壞硬碟的方式實在太多,而且大部分破壞都無法用一般軟體輕易恢復,所以……碰到病毒破壞硬碟的情況你就祈禱吧,恢復數據的成功率大約只有30%。
不幸之三:分區表丟失/出錯。
因感染病毒盤符突然消失、無法打開盤符,或被人為操作將分區表丟失,如從新分區、合並、轉換、擴縮、工作過程中突然斷電導致分區表丟失等等。一般人為操作所導致的數據丟失100%都可以恢復。如果你備份了分區表,那麼恢復數據的成功率就會大大地提高了(參見E3、E5)。
不幸之四:系統重裝或誤「Ghost」後數據丟失。
這類問題一般由於已經寫入數據覆蓋掉源文件,恢復率不如人意,大約只有30%。
不幸之五:操作時斷電引起的數據丟失。
這類的數據恢復要視情況而定,如果數據沒有保存,而且所使用的程序不具備自動保存功能,一般難以恢復。像Office XP以上版本的程序,一般會自動備份,自動恢復。
數據丟失了該怎麼辦?
條件反射之一:如果你沒有安裝數據恢復軟體,那麼在數據丟失後,千萬不要在硬碟上再進行其他讀寫操作。不要在硬碟上安裝或存儲任何文件和程序,否則它們就會把要恢復的文件覆蓋掉,給數據的恢復帶來很大的難度,也影響到修復的成功率。
特別提醒:在安裝Windows系統時就應該安裝好數據恢復軟體,並在出現文件誤刪除後立刻執行恢復操作,這樣一般可以將刪除的文件恢復回來。
條件反射之二:如果丟失的數據在系統分區,那麼請立即關機,把硬碟拿下來,掛到別的電腦上作為第二硬碟,在上面進行恢復操作。如果你的數據十分重要,尤其是格式化後又寫了數據進去的,最好不要冒險自己修復,還是請專業的數據恢復公司來恢復。
條件反射之三:在修復損壞的數據時,一定要先備份源文件再進行修復。如果是誤格式化的磁碟分區、誤刪除的文件,則建議先用Ghost克隆誤格式化的分區和誤刪除文件所在的分區,把原先的磁碟分區狀態給備份下來,以便日後再次進行數據恢復。
數據恢復利器
現在有很多數據恢復軟體都各有特點,數據恢復率也有所差異。這里就介紹一些典型的數據恢復軟體,供大家各取所需。
軟體名:FinalData2.1v
特點:不但能恢復本機誤刪除文件,還能恢復網路上其他計算機的數據。
軟體名:File Scavenger
特點:它是NTFS分區數據恢復高手,還提供了找尋文件類型功能。
軟體名:Recover My Files
特點:可以恢復由於冒失刪除的文檔,甚至是磁碟格式化後的文件恢復工具,它可以自定義搜索的文件夾、文件類型。
軟體名:Search and Recover
特點:可以恢復Outlook等郵件程序中刪除的郵件信息。附帶一個安全刪除工具和一個驅動器映像工具,可以對某一驅動器進行克隆。
軟體名:OnBelay
特點:是一款多功能的數據拯救工具,能夠拯救圖像、照片、數字電影等文件。
軟體名:Acronis Recovery
特點:除了支持FAT16、FAT32、NTFS分區外,還支持HPFS、Linux Ext2、Ext3、ReiserFS、Linux Swap等分區,支持大硬碟。
軟體名:FindBack
特點:能進行數據恢復、被刪文件的修復、系統恢復、硬碟恢復、注冊表恢復、修改注冊表、自動備份並能清除病毒、蠕蟲和木馬。
軟體名:PC Inspector Smart Recovery
特點:獨特的數碼設備存儲器數據恢復工具,支持主流的數碼設備存儲器,能快速恢復誤刪的圖片、影片和聲音文件。
實戰數據恢復
1、從格式化的分區中恢復文件
恢復數據的軟體很多,有FinalData、EasyRecovery、DataRecovery、PC Inspector File Recovery等,這里筆者推薦EasyRecovery,成功率比較高,掃描速度也快。
軟體名:EasyRecovery Professional
啟動EasyRecovery Professional,點擊「Data Recovery」,在右邊的界面點擊「FormatRecovery」,然後在彈出的對話框中選擇被格式化的分區,按「Next」。硬碟便開始狂讀(狂讀的時間視你被格式化的分區大小而定,EasyRecovery掃描筆者的一個40GB分區就花了近半小時),掃描搜索完成後,就會羅列出搜索到的文件,你可以在上面找到你要恢復的文件,然後點擊「Next」選擇你所希望恢復的文件的保存位置(保存的位置千萬不要選擇被格式化的分區,一定要選擇其他的分區,以免覆蓋掉源文件)。之後直接點擊「Next」,軟體就會自動進行恢復了,恢復完成後點擊彈出對話框的Done按鈕退出。
對於利用Ghost克隆分區時誤操作,覆蓋錯分區的情況,也可以利用此法進行修復,不過修復的成功率很低,讀者朋友可要有心理准備。
2、恢復由病毒感染、非正常關機引起的數據損壞
這種情況下,你可以啟動EasyRecovery Professional,點擊「Data Recovery→Deleted Recovery」選項,在打開的數據恢復對話框中選擇丟失/誤刪除數據所在的分區。
在默認情況下,EasyRecovery Professional將對所選的分區執行一次快速掃描,使用已存在的目錄結構查找已刪除的目錄和文件。如果文件損壞的症狀很嚴重,那麼你要選中「Complete Scan」執行完全掃描。掃描完成後,你所要做的就是找到你的數據,盡情恢復就是了。利用這種方法,還可以恢復U盤的數據。
3、修復Office文件、OE郵件
啟動EasyRecovery Professional後,點擊「File Repair」鍵。它的內容還挺豐富,有修復Mdb文件的「Access Repair」、修復XLS文件的「Excel Repair」、修復PPT文件的「PowerPoint Repair」、修復DOC文件的「Word Repair」和修復ZIP壓縮文件的「Zip Repair」等。
它們的使用方法大同小異。這里就以修復Word的DOC文件為例加以說明,選中「Word Repair」,在彈出的對話框上點擊「Browse for File」按鈕找到想要修復的DOC文件。然後點擊「Next」,稍等一會兒,EasyRecovery Professionaly就會在損壞文件所在目錄下生成文件名為「修復的文件的文件名_BAK」的恢復文件。
小貼士:在修復相應的文件前,大家要記住關閉相應的程序。比如修復XLS文件,要記住關閉Excel。同時還要記住備份受損的文件。如果還是修復不了的時候,就可以用別的修復程序來進行修復,如專業的Word文件修復工具DocRepair。
4、誤刪相片不用愁
隨著數碼相機的普及,用數碼相機拍照帶來的問題越來越多,譬如誤執行刪除操作或者數碼相機電池不足等情況就會導致DC中存儲卡的相片丟失。鑒於此,這里筆者有必要向大家介紹一味「後悔葯」──MediaRecover。
軟體名:MediaRecover
MediaRecover的使用很簡單,首先將你的存儲卡插入讀卡器,然後啟動MediaRecover,點擊Recovery,在右邊的界面選擇讀卡器的盤符,然後點擊「Next」按鈕進入下一步,設置恢復的相片的存放位置,設置好就點擊「Next」進入掃描界面,點擊「Start」按鈕後,稍等一段時間,它就會幫你把丟失、誤刪除/格式化的相片給救回來。
小貼士:如果你發現你的相片丟失或者誤刪除、誤格式化,請立即把存儲卡從數碼相機上取出來,不要使用這張存儲卡來存儲新拍攝的相片,以免將有用數據的簇占滿導致相片的恢復難度加大。
5、拯救光碟中的數據
CD、CD-RW、CD-R、DVD光碟是我們平時最常見、常用的移動存儲介質,但如果我們因為保存不當或因為潮濕、劃傷造成光碟無法被光碟機讀取,你可以試試使用BadCopy Pro。
軟體名:BadCopy Pro
請將不容易讀/拷貝出來的光碟放進去,啟動BadCopy Pro後,選中程序主界面左邊的「CD-ROM CD-RW/DVD」,然後在左邊的驅動器列表中選擇相應的光碟機,選擇文件讀取後,將所要讀取的數據備份出來就OK。
小貼士:Recovery Mode下拉菜單中有三個選項,如果你的光碟損壞情況不是那麼嚴重,你可以選擇第一個選項「Rescue Corrupted Files」,恢復速度快;損壞嚴重的話可以選擇第二或第三個選項。除了拯救光碟的數據外,它還可以拯救軟盤、ZIP/JAZ/MO磁碟、數字媒體CF/SM/MMC卡的數據。
㈢ 臨床試驗,數據統計中的 數據刪失 是什麼意思指什麼情況
指由於某種原因被截斷了的數據。
刪失(censoring)生物統計學的基本概念之一該詞源於心理學,也就是說,當刺激太強時,感覺就沒有反應。統計用來描述某些人不太可能觀察到的現象。
例如,在臨床觀察中,病人失去隨訪或死亡是無關的;工業生命試驗對象沒有受損,即停止觀察等,最常見的是右刪失;個人死亡時間為t,刪失時間為c,觀察值為min(t,c),如果c是隨機變數,則稱為隨機刪失;此外,還有左刪失和區間刪失。
就審查機制而言,審查次數和定時審查次數分別稱為第一類和第二類。丟失的數據也可以看作是特殊的截尾,截尾的數據又稱為不完全信息。
(3)什麼是數據缺失的情況擴展閱讀:
審查類型
1、右刪失(Rightcensored)
在隨訪觀察中,觀察開始時間已知,但終點時間未知,無法獲得具體存活時間。只有存活時間比觀察時間長,這種生存時間稱為正確的審查。
2、左刪失(Leftcensored)
假設研究對象在某個觀察點開始進入研究,但在此之前,研究所的關注時間點已經出現,但具體時間無法確定,此類型是左刪失數據。