李俊達(dá) 吳昊 毛秋宇 張復(fù)生
摘 要:數(shù)據(jù)質(zhì)量問(wèn)題會(huì)給數(shù)據(jù)分析和挖掘帶來(lái)致命的影響,因此需要對(duì)存在質(zhì)量問(wèn)題的數(shù)據(jù)進(jìn)行清洗。數(shù)據(jù)清洗的方法和策略與具體的數(shù)據(jù)質(zhì)量問(wèn)題有關(guān),本文以工業(yè)物料系統(tǒng)中的數(shù)據(jù)為實(shí)驗(yàn)對(duì)象,提出了一套簡(jiǎn)易高效的數(shù)據(jù)清洗流程,將通用的數(shù)據(jù)清洗的方法和策略實(shí)現(xiàn)具體化并加以改進(jìn)。實(shí)驗(yàn)結(jié)果表明,該流程具有良好的應(yīng)用價(jià)值。
關(guān)鍵詞:數(shù)據(jù)質(zhì)量;數(shù)據(jù)清洗;工業(yè)物料系統(tǒng)
中圖分類號(hào):TP311.13 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2018)03-0022-03
The Process of the Data Cleaning Based on Industrial Material System
LI Junda1,WU Hao1,MAO Qiuyu1,ZHANG Fusheng2
(1.School of Computer Science and Technology,Jilin University,Changchun 130012,China;
2.Shanxi Youbai Information Technology Co.,Ltd.,Xian 710065,China)
Abstract:Data quality issues will result in lethal effects of the analysis and excavation of data,so it is needed to clean the data with the problem of data quality. Data cleaning techniques are related to specific data quality issues,this study takes the data of industrial material system as the experimental object,put forward a simple and efficient data cleaning process,externalizes and improves the methods and policies of general data cleaning. The experimental results show that the process has good application value.
Keywords:data quality;data cleaning;industrial material system
0 引 言
在早期建設(shè)的企業(yè)信息化系統(tǒng)中,企業(yè)不同部門一般擁有各自的數(shù)據(jù)庫(kù)。由于沒(méi)有嚴(yán)格的數(shù)據(jù)模式,即使是描述同一實(shí)體的數(shù)據(jù)對(duì)象在相同屬性上的值也可能存在不同的表示形式。例如,對(duì)“電流互感器”這一實(shí)體,在其他數(shù)據(jù)庫(kù)中可能表示為“電流互感組件”或者“電流互感器組件”。在統(tǒng)計(jì)物料數(shù)量時(shí),如果把同一物料的不同描述當(dāng)作是不同物料,會(huì)導(dǎo)致統(tǒng)計(jì)數(shù)量少于物料的實(shí)際數(shù)量。為了有效利用企業(yè)信息系統(tǒng)來(lái)支持決策,需要正確識(shí)別出數(shù)據(jù)庫(kù)中描述同一實(shí)體的元組。另外,早期企業(yè)信息化系統(tǒng)中的數(shù)據(jù)錄入多數(shù)采取人工的方式,會(huì)出現(xiàn)大量的異常數(shù)據(jù)。這里的異常數(shù)據(jù)即不一致、無(wú)效或數(shù)值缺失的數(shù)據(jù),例如拼寫錯(cuò)誤、不合法值、空值、沖突、簡(jiǎn)寫、重復(fù)等,也稱為“臟數(shù)據(jù)”。
本文從某一國(guó)有企業(yè)的工業(yè)物料系統(tǒng)數(shù)據(jù)入手,來(lái)進(jìn)行數(shù)據(jù)清洗。通過(guò)檢測(cè)數(shù)據(jù)集合中存在的不符合規(guī)范的數(shù)據(jù),并進(jìn)行數(shù)據(jù)修復(fù),將原數(shù)據(jù)庫(kù)的數(shù)據(jù)提取、轉(zhuǎn)換并存儲(chǔ)到新的數(shù)據(jù)庫(kù)中,以提高數(shù)據(jù)質(zhì)量。
1 數(shù)據(jù)清洗技術(shù)
1.1 清洗技術(shù)介紹
數(shù)據(jù)清洗的目的是檢測(cè)數(shù)據(jù)集合中存在的不符合規(guī)范的數(shù)據(jù),并進(jìn)行數(shù)據(jù)修復(fù),提高數(shù)據(jù)質(zhì)量[1]。數(shù)據(jù)清洗技術(shù)主要應(yīng)用于數(shù)據(jù)倉(cāng)庫(kù)領(lǐng)域。在數(shù)據(jù)倉(cāng)庫(kù)領(lǐng)域中,數(shù)據(jù)清洗的主要任務(wù)是清洗錯(cuò)誤和不一致的數(shù)據(jù)。另外,有時(shí)候還需要整合和分解數(shù)據(jù)。
1.2 數(shù)據(jù)清洗對(duì)象及方法
數(shù)據(jù)質(zhì)量問(wèn)題通常分為兩種類型,一種類型為模式層存在的問(wèn)題,而另外一種類型為實(shí)例層存在的問(wèn)題[2]。
本文的研究對(duì)象是實(shí)例層臟數(shù)據(jù)。在實(shí)例層中,研究重點(diǎn)主要集中在數(shù)據(jù)本身的表現(xiàn)形式上,主要包括臟數(shù)據(jù)檢測(cè)、重復(fù)數(shù)據(jù)檢測(cè)和孤立點(diǎn)檢測(cè)三個(gè)方面。
臟數(shù)據(jù)檢測(cè)、重復(fù)數(shù)據(jù)檢測(cè)是實(shí)例層數(shù)據(jù)清洗的兩個(gè)核心問(wèn)題[3]。屬性值的臟數(shù)據(jù)檢測(cè)主要針對(duì)屬性錯(cuò)誤值和空值兩個(gè)方面[4]。屬性錯(cuò)誤值檢測(cè)主要包括統(tǒng)計(jì)學(xué)算法和數(shù)據(jù)挖掘算法,如關(guān)聯(lián)規(guī)則、聚類算法。重復(fù)數(shù)據(jù)檢測(cè)涉及到實(shí)體識(shí)別技術(shù),主要包括基于字段以及基于記錄的重復(fù)檢測(cè)。基于記錄的重復(fù)檢測(cè)算法主要包括排序鄰居算法、優(yōu)先隊(duì)列算法[5]。排序鄰居算法對(duì)關(guān)鍵字的依賴較強(qiáng),關(guān)鍵字的選取對(duì)算法的結(jié)果影響較大;優(yōu)先隊(duì)列算法能夠更好地適應(yīng)更多的數(shù)據(jù)類型,但是匹配閾值的設(shè)置往往需要多次測(cè)試才能得到平衡點(diǎn)。
2 數(shù)據(jù)清洗流程
本文設(shè)計(jì)的數(shù)據(jù)清洗流程如圖1所示,主要由兩個(gè)模塊組成,包括數(shù)據(jù)檢測(cè)和數(shù)據(jù)清洗[6]兩個(gè)部分。其中,本文系統(tǒng)處理的數(shù)據(jù)源所在的數(shù)據(jù)集來(lái)源于文件,而非傳統(tǒng)的數(shù)據(jù)庫(kù)中的數(shù)據(jù)集,如圖1所示。
圖1 數(shù)據(jù)清洗流程圖
2.1 數(shù)據(jù)檢測(cè)
數(shù)據(jù)檢測(cè)模塊的主要功能是確定目標(biāo)數(shù)據(jù)存在的問(wèn)題,此模塊提供了現(xiàn)成的檢測(cè)方法,同時(shí)用戶也可以自定義方法[7]。下面是幾個(gè)常用的檢測(cè)方法。
2.1.1 統(tǒng)計(jì)學(xué)方法
較為典型的方法有切比雪夫定理、貝葉斯推理、對(duì)數(shù)回歸等。現(xiàn)實(shí)中經(jīng)常用到切比雪夫定理,計(jì)算某個(gè)字段值的平均值、標(biāo)準(zhǔn)差、取值范圍、空值出現(xiàn)的數(shù)量和頻率、最大值、最小值等。根據(jù)這些統(tǒng)計(jì)值和相關(guān)的啟發(fā)式規(guī)則可以發(fā)現(xiàn)數(shù)據(jù)中的異常字段。
2.1.2 模式識(shí)別法
此類方法基于數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)算法來(lái)查找異常數(shù)據(jù),是把劃分、分類和聚類等技術(shù)組合起來(lái)的模式,能發(fā)現(xiàn)相當(dāng)數(shù)量的異常數(shù)據(jù),一個(gè)模式被定義為數(shù)據(jù)集中的一組記錄具有P%相似的字段,P是根據(jù)實(shí)際情況取的值,通常取90以上。如果把該算法應(yīng)用在根據(jù)領(lǐng)域知識(shí)生成記錄的子集,而不是整個(gè)數(shù)據(jù)集上,發(fā)現(xiàn)一個(gè)模式的機(jī)率將會(huì)增加。
2.2 數(shù)據(jù)清洗
高效準(zhǔn)確地清洗數(shù)據(jù)是數(shù)據(jù)清洗流程的核心。本模塊針對(duì)不同類型的異常數(shù)據(jù)提供不同的清洗策略,主要的清洗策略如下所述。
2.2.1 標(biāo)準(zhǔn)化
此策略主要針對(duì)語(yǔ)義定義不一致的數(shù)據(jù),如數(shù)據(jù)類型不一致和計(jì)量單位不一致等。當(dāng)對(duì)多個(gè)不同的數(shù)據(jù)源進(jìn)行整合數(shù)據(jù)時(shí),數(shù)據(jù)結(jié)構(gòu)標(biāo)準(zhǔn)的差異會(huì)使數(shù)據(jù)不一致的問(wèn)題更加突出。針對(duì)這一問(wèn)題,首先應(yīng)該把數(shù)據(jù)結(jié)構(gòu)標(biāo)準(zhǔn)化,依據(jù)數(shù)據(jù)定義生成一個(gè)替換表,然后對(duì)異常數(shù)據(jù)按照相應(yīng)規(guī)則加以清洗,并按照統(tǒng)一后的標(biāo)準(zhǔn)對(duì)不一致數(shù)據(jù)進(jìn)行轉(zhuǎn)換。
2.2.2 錯(cuò)缺項(xiàng)處理
錯(cuò)缺項(xiàng)害處大而且處理麻煩,但是在實(shí)際情況中卻很常見(jiàn)。合理地填補(bǔ)缺值和修正錯(cuò)值就顯得尤為重要。常見(jiàn)的處理方法有:(1)使用全局常量填充。例如,某人口表中的兵役狀況,使用“unknown”填充;(2)對(duì)某一類屬性值進(jìn)行簡(jiǎn)單計(jì)算或推斷后填充錯(cuò)缺項(xiàng)。常見(jiàn)方法有使用形式值(名詞變量)、平均值(連續(xù)變量)、數(shù)據(jù)的分布特征(統(tǒng)計(jì)規(guī)律)等;(3)用其他字段屬性值來(lái)推測(cè)錯(cuò)缺值項(xiàng),比如從公民身份證號(hào)可以推斷年齡和地域等。
2.2.3 重復(fù)數(shù)據(jù)處理
數(shù)據(jù)庫(kù)中有多條記錄反應(yīng)同一現(xiàn)實(shí)實(shí)體,這些記錄可能是重復(fù)記錄。重復(fù)記錄清洗一直以來(lái)都是數(shù)據(jù)清洗領(lǐng)域里最重要的內(nèi)容,其核心內(nèi)容涉及到兩條記錄對(duì)應(yīng)字段屬性值的匹配問(wèn)題。此流程需要經(jīng)過(guò)若干個(gè)階段進(jìn)行處理:第一階段,我們對(duì)數(shù)據(jù)集進(jìn)行預(yù)處理操作,主要工作是為數(shù)據(jù)記錄屬性字段分配權(quán)重;第二階段,對(duì)賦予了權(quán)重的屬性字段進(jìn)行排序,然后對(duì)整個(gè)文件數(shù)據(jù)集按照屬性權(quán)重大小依次進(jìn)行排序;第三階段,進(jìn)行字段匹配以及基于改進(jìn)的層次聚類算法進(jìn)行數(shù)據(jù)歸類[8]。下面簡(jiǎn)單介紹各個(gè)階段的工作內(nèi)容:
第一階段,記錄屬性字段分配權(quán)重。數(shù)據(jù)集的每條記錄由多個(gè)屬性組成,每個(gè)屬性在記錄中的作用不同。越容易區(qū)分記錄的屬性其分配權(quán)值應(yīng)越大。當(dāng)進(jìn)行記錄之間的相似度比較時(shí),優(yōu)先檢測(cè)屬性權(quán)重較大的字段。
第二階段,按屬性權(quán)重值對(duì)文件數(shù)據(jù)集排序。對(duì)數(shù)據(jù)記錄字段屬性權(quán)重排序之后,生成數(shù)據(jù)集字段屬性權(quán)重排序序列。為了方便后續(xù)計(jì)算記錄相似性,我們選擇按照屬性大小來(lái)排序。對(duì)最大權(quán)重的屬性優(yōu)先排序,然后再排第二大權(quán)重的屬性,依次進(jìn)行下去。這樣,最后得到相似記錄聚集的文件數(shù)據(jù)集序列。
第三階段,基于層次聚類算法進(jìn)行數(shù)據(jù)歸并[9]。對(duì)數(shù)據(jù)源文件進(jìn)行分割,設(shè)定數(shù)據(jù)記錄總條數(shù)為m,每個(gè)小數(shù)據(jù)源文件記錄條數(shù)為n,那么就可以劃分為([m/n]+1)個(gè)小數(shù)據(jù)源文件。讀取第一個(gè)文件對(duì)n條記錄進(jìn)行聚類運(yùn)算,生成若干個(gè)聚類代表項(xiàng)以及所在聚類代表簇。在讀取剩余文件時(shí)將記錄與上述聚類代表項(xiàng)進(jìn)行相似記錄檢測(cè),將其歸并到聚類當(dāng)中或者重新寫入原文件。通過(guò)增加每層聚類的閾值,重復(fù)上述步驟,直到達(dá)到合理的閾值。
2.2.4 孤立點(diǎn)的處理
在文件處理的最后會(huì)出現(xiàn)一些孤立點(diǎn)數(shù)據(jù)。這些數(shù)據(jù)不符合常規(guī),一般情況下,如果確認(rèn)其為噪聲,可以將其消除。可采用平滑數(shù)據(jù)消除噪聲,根據(jù)平滑規(guī)則將同一箱中的數(shù)據(jù)用相應(yīng)數(shù)據(jù)替換。
3 實(shí)驗(yàn)結(jié)果
本系統(tǒng)在Windows平臺(tái)上運(yùn)行,實(shí)驗(yàn)數(shù)據(jù)來(lái)源于某國(guó)有企業(yè)提供的物料系統(tǒng)存儲(chǔ)的物料數(shù)據(jù)。對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行清洗,從實(shí)驗(yàn)結(jié)果中取得部分?jǐn)?shù)據(jù)如下表1所示:
上表中數(shù)據(jù)記錄1和2,3和4,5、6和7分別屬于三個(gè)類目。從實(shí)驗(yàn)效果可以看出,系統(tǒng)的清洗效果是良好的。
4 結(jié) 論
本文在研究數(shù)據(jù)清洗方法的基礎(chǔ)上,提出了簡(jiǎn)單高效的數(shù)據(jù)清洗流程。首先,對(duì)數(shù)據(jù)質(zhì)量問(wèn)題的內(nèi)容作出了闡述,然后簡(jiǎn)要介紹了數(shù)據(jù)清洗技術(shù)、方法和對(duì)象。并在此基礎(chǔ)上簡(jiǎn)化了數(shù)據(jù)清洗的流程,實(shí)現(xiàn)流程的具體化并改進(jìn)了數(shù)據(jù)清洗的方法和策略,使之能夠?qū)I(yè)物料數(shù)據(jù)進(jìn)行數(shù)據(jù)處理。本文在很多方面還未能考慮周全,僅僅對(duì)清洗流程的主脈絡(luò)進(jìn)行了刻畫,希望能夠?yàn)閿?shù)據(jù)清洗領(lǐng)域貢獻(xiàn)一些價(jià)值。
參考文獻(xiàn):
[1] 葉歐,張璟,李軍懷.中文數(shù)據(jù)清洗研究綜述 [J].計(jì)算機(jī)工程與應(yīng)用,2012,48(14):121-129.
[2] 郭志懋,周傲英.數(shù)據(jù)質(zhì)量和數(shù)據(jù)清洗研究綜述 [J].軟件學(xué)報(bào),2012,13(11):2076-2081.
[3] 陳孟婕.數(shù)據(jù)質(zhì)量管理與數(shù)據(jù)清洗技術(shù)的研究與應(yīng)用 [D].北京郵電大學(xué),2013.
[4] 王銘軍,潘巧明,劉真,陳為.可視數(shù)據(jù)清洗綜述 [J].中國(guó)圖象圖形學(xué)報(bào),2015,20(4):0468-0482.
[5] 黎玲利.實(shí)體識(shí)別關(guān)鍵技術(shù)的研究 [D].哈爾濱工業(yè)大學(xué),2015.
[6] 武小平,左春.基于工作流程的數(shù)據(jù)清洗系統(tǒng) [J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(8):1878-1880.
[7] 包從劍,李星毅,施化吉.可擴(kuò)展和可交互的數(shù)據(jù)清洗系統(tǒng) [J].計(jì)算機(jī)技術(shù)與發(fā)展,2007,17(7):84-90.
[8] 楊東華,李寧寧,王宏志,等.基于任務(wù)合并的并行大數(shù)據(jù)清洗過(guò)程優(yōu)化 [J].計(jì)算機(jī)學(xué)報(bào),2016,39(1):97-108.
[9] 劉芳,何飛.基于聚類分析技術(shù)的數(shù)據(jù)清洗研究 [J].計(jì)算機(jī)工程與科學(xué),2005,27(6):71-77.
[10] 包從劍.數(shù)據(jù)清洗的若干關(guān)鍵技術(shù)研究 [D].江蘇大學(xué),2007.
[11] 王雪英.離群點(diǎn)預(yù)處理及檢測(cè)算法研究 [D].西南交通大學(xué),2009.
[12] 鄧莎莎,陳松喬.基于異構(gòu)數(shù)據(jù)抽取清洗模型的元數(shù)據(jù)的研究 [J].計(jì)算機(jī)工程與應(yīng)用,2004(30):175-177.
作者簡(jiǎn)介:李俊達(dá)(1998.04-),男,漢族,山東臨沂人,本科在讀。研究方向:計(jì)算機(jī)科學(xué)與技術(shù)。