日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
數(shù)據(jù)清理中存在的問題及對策

本文轉(zhuǎn)載自微信公眾號「數(shù)倉寶貝庫」,作者趙志強 等。轉(zhuǎn)載本文請聯(lián)系數(shù)倉寶貝庫公眾號。

站在用戶的角度思考問題,與客戶深入溝通,找到鄉(xiāng)寧網(wǎng)站設(shè)計與鄉(xiāng)寧網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站建設(shè)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、虛擬主機、企業(yè)郵箱。業(yè)務(wù)覆蓋鄉(xiāng)寧地區(qū)。

現(xiàn)實世界中的數(shù)據(jù)量越來越大,也越來越容易受到噪聲、缺失值和不一致數(shù)據(jù)等的影響。數(shù)據(jù)庫太大,如若有不同的來源,那么臟數(shù)據(jù)問題一定會存在,這是不可避免的。為了使數(shù)據(jù)中的各種問題對我們的建模影響最小化,需要對數(shù)據(jù)進行預(yù)處理。

在實際操作中,數(shù)據(jù)預(yù)處理通常分為兩大步,一是數(shù)據(jù)清洗,二是數(shù)據(jù)的基本分析。這兩步并不一定是按先后順序進行的,通常也會相互影響。比如,有的錯誤數(shù)據(jù)(不可能出現(xiàn)的極值),必須通過基本的統(tǒng)計分析才能發(fā)現(xiàn)。

有一種說法,數(shù)據(jù)的預(yù)處理會占據(jù)絕大部分的工作量,有的甚至?xí)_到所有工作量的80%,建模和算法真正的工作量其實只有20%。這個結(jié)論在互聯(lián)網(wǎng)或者傳統(tǒng)IT領(lǐng)域,特別是面對大量的非結(jié)構(gòu)化數(shù)據(jù)時,確實是事實。

所以第一步,也是非常關(guān)鍵的一步,就是數(shù)據(jù)清理。為了清理數(shù)據(jù),我們必須要知道可能存在的問題,才能針對相應(yīng)的問題設(shè)計相應(yīng)的方法。

原始數(shù)據(jù)可能存在如下三種問題。

  • 數(shù)據(jù)缺失:數(shù)據(jù)缺失的問題在高頻數(shù)據(jù)里面特別常見。而且由于很多投資者是自己實時下載的數(shù)據(jù),因此即使之后發(fā)現(xiàn)也很難彌補。
  • 噪聲或者離群點:由于系統(tǒng)或者人為的失誤,導(dǎo)致數(shù)據(jù)出現(xiàn)明顯的錯誤,比如某支股票的價格本應(yīng)在12元左右,結(jié)果突然出現(xiàn)了100元的價格數(shù)據(jù)。
  • 數(shù)據(jù)不一致:很多投資者,為了確保數(shù)據(jù)正確性,會使用多個數(shù)據(jù)源進行交叉驗證,這時往往會出現(xiàn)數(shù)據(jù)不一致的問題。即使是同一個數(shù)據(jù)源,有時候也會出現(xiàn)數(shù)據(jù)不一致的問題。比如期貨行情數(shù)據(jù),Wind、文華、MC的數(shù)據(jù)都有可能出現(xiàn)不一致的問題,數(shù)據(jù)頻率越高,不一致的可能性就越大。

01缺失值

針對缺失值,實際操作中,需要兩套程序:一套程序是檢查缺失值,一套程序是填補缺失值。一般流程是,先檢查缺失值,研究缺失值,選擇填補方法,進行填補,然后再次檢查。這樣迭代循環(huán),直到將數(shù)據(jù)缺失控制在可接受范圍內(nèi)。

缺失值,也有多種類型,一種是“正常缺失”,比如股票在某一天停牌,那么這一天的交易數(shù)據(jù)就是沒有的。一種是“非正常缺失”,比如明明有交易,但就是沒有交易數(shù)據(jù)。

舉個例子,在下載5分鐘數(shù)據(jù)的時候,發(fā)現(xiàn)20160104的數(shù)據(jù)都有缺失,但Wind上的數(shù)據(jù)又顯示當(dāng)天的交易情況為“交易”。實際情況是當(dāng)天發(fā)生了“熔斷”,因為是新的機制,所以Wind還沒來得及準(zhǔn)備一個字段用于表示當(dāng)天的交易狀態(tài)。這種情況就屬于數(shù)據(jù)的“正常缺失”,只是交易狀態(tài)與數(shù)據(jù)不一致而已。Wind的交易狀態(tài)字段如下圖所示。

在檢查缺失值時,這兩種缺失需要分辨清楚,因為不同的缺失值,處理方法也不一樣。檢查好缺失值之后,就需要進行處理了。先處理“非正常缺失”,一般流程具體如下。

1)檢查提取數(shù)據(jù)是否出錯。有時候,數(shù)據(jù)源本身是完整的,然而自己在提取數(shù)據(jù)的時候出現(xiàn)了問題。比如,筆者在使用市場上某家的金融高頻數(shù)據(jù)的時候,下載5分鐘數(shù)據(jù)計算高頻波動率,發(fā)現(xiàn)存在很多缺失的數(shù)據(jù)。經(jīng)該公司后臺查詢后發(fā)現(xiàn),他們的數(shù)據(jù)庫其實是有這個數(shù)據(jù)的,這說明是在下載數(shù)據(jù)的過程中出現(xiàn)了問題。

2)從其他數(shù)據(jù)源提取。有的數(shù)據(jù)源本身就缺失了數(shù)據(jù),對于這種情況可以再尋找另外一個數(shù)據(jù)源進行補充。

算法填充。有的時候,我們沒有辦法使用多數(shù)據(jù)源進行補充,而且有的數(shù)據(jù)本身就有空缺,無法補充。這個時候,可以退而求其次,使用算法填充。

常用算法有向前填充和向后填充兩種。所謂向前填充是指使用之前最近的一個數(shù)據(jù)對空值進行填充。向后填充是指使用之后最近的一個數(shù)據(jù)對空值進行填充。

Pandas提供了一個函數(shù)用于數(shù)據(jù)填充。示例代碼如下:

 
 
 
 
  1. df = pd.DataFrame([[np.nan, 2, np.nan, 0], 
  2.  
  3. ...                    [3, 4, np.nan, 1], 
  4.  
  5. ...                    [np.nan, np.nan, np.nan, 5], 
  6.  
  7. ...                    [np.nan, 3, np.nan, 4]], 
  8.  
  9. ...                    columns=list('ABCD')) 
  10.  
  11. df 
  12.  
  13.      A    B   C  D 
  14.  
  15. 0  NaN  2.0 NaN  0 
  16.  
  17. 1  3.0  4.0 NaN  1 
  18.  
  19. 2  NaN  NaN NaN  5 

向前填充的示例代碼如下:

 
 
 
 
  1. df.fillna(method='ffill') 
  2.  
  3.     A   B   C   D 
  4.  
  5. 0   NaN 2.0 NaN 0 
  6.  
  7. 1   3.0 4.0 NaN 1 
  8.  
  9. 2   3.0 4.0 NaN 5 
  10.  
  11. 3   3.0 3.0 NaN 4 

除了向前填充,該函數(shù)也支持向后填充,不過,要使用特定的值進行填充。

有的數(shù)據(jù)發(fā)生了缺失,無法使用簡單的向前填充或向后填充來處理。比如,使用Wind下載a股復(fù)權(quán)數(shù)據(jù),會發(fā)現(xiàn)交易狀態(tài)trade_status在1999年之前都是空值,雖然實際上是有交易的,但如果直接按照trade_status=‘交易’這個條件來篩選,將會把1999年之前的所有數(shù)據(jù)都去掉。這個時候就需要根據(jù)邏輯設(shè)計一個算法來進行填充,比如將成交量volume>0的都填充為“交易”。

02 噪聲或者離群點

噪聲或離群點的問題一般有兩種情況,一種是數(shù)據(jù)錯誤導(dǎo)致的,比如本來應(yīng)該是10.0的數(shù)據(jù),錯誤顯示為10000;另一種則是其本身是真實數(shù)據(jù),但就是離群點,比如金融危機中的收益率或者波動率,可能就非常極端,成為離群點。

一般的處理步驟具體如下。

1)通過一定的算法識別出離群點。一般是使用該數(shù)據(jù)標(biāo)準(zhǔn)差的多少倍來判斷。比如正太分布中,正負(fù)標(biāo)準(zhǔn)差3倍以上的概率是99.7%,可以將其認(rèn)定為可疑離群點。

2)人工判斷離群點是屬于錯誤數(shù)據(jù)導(dǎo)致的,還是正常的離群點。

3)對離群點進行處理。一般來說,錯誤的離群點需要更正或者刪除。正常的離群點則需要另外建模進行分析。

03數(shù)據(jù)不一致

為了確保數(shù)據(jù)的準(zhǔn)確性,有時候需要使用多種數(shù)據(jù)源進行交叉驗證。比如,在研究港股的時候,對比了Wind和Bloomberg的后復(fù)權(quán)數(shù)據(jù)之后,發(fā)現(xiàn)兩者存在很大的差別,這就是數(shù)據(jù)不一致的問題,但我們并不能確定哪一個才是正確的,于是又加入了同花順和CSMAR的數(shù)據(jù)進行對比,發(fā)現(xiàn)后者與Wind的數(shù)據(jù)是一致的。所以可以確認(rèn)是Bloomberg的問題,因而采用Wind的數(shù)據(jù)。

當(dāng)然,在實際工作中,數(shù)據(jù)清理的問題要遠(yuǎn)遠(yuǎn)多于這里介紹的幾種,需要系統(tǒng)性地、仔細(xì)地去處理。

本書摘編自《Python量化投資:技術(shù)、模型與策略》,經(jīng)出版方授權(quán)發(fā)布。


當(dāng)前名稱:數(shù)據(jù)清理中存在的問題及對策
文章出自:http://www.5511xx.com/article/copicjj.html