一種基于函數(shù)依賴的數(shù)據(jù)清洗方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于大數(shù)據(jù)處理領(lǐng)域,更具體地,設(shè)及一種基于函數(shù)依賴的數(shù)據(jù)清洗方法
【背景技術(shù)】
[0002] 隨著移動互聯(lián)網(wǎng)和信息技術(shù)的高速發(fā)展,政府、企業(yè)和各行業(yè)領(lǐng)域的數(shù)據(jù)WTB/s 的速度增長,人們生活、企業(yè)決策和精準服務(wù)對數(shù)據(jù)的依賴越來越重,對數(shù)據(jù)質(zhì)量的要求也 越來越高,任何"臟數(shù)據(jù)"都將對數(shù)據(jù)分析和目標(biāo)決策產(chǎn)生影響。隨著"數(shù)據(jù)驅(qū)動運營"的意 識在各行各業(yè)得到廣泛認識和普及,人們在數(shù)據(jù)分析和挖掘中花費的精力越來越大。其中 花費在"臟數(shù)據(jù)"處理上的時間超過80%。
[0003] 導(dǎo)致"臟數(shù)據(jù)"的原因包括系統(tǒng)故障、跨系統(tǒng)、多源數(shù)據(jù)、數(shù)據(jù)標(biāo)準變遷、錄入差錯 和數(shù)據(jù)稀疏等,最終導(dǎo)致數(shù)據(jù)缺失、數(shù)據(jù)錯誤、數(shù)據(jù)不一致等數(shù)據(jù)質(zhì)量問題。鑒于此,近年 來,數(shù)據(jù)質(zhì)量提升的研究和應(yīng)用逐漸增多。有采用預(yù)設(shè)規(guī)則來清洗不同域數(shù)據(jù),基于權(quán)重和 類別排序進行清洗,基于闊值和倍率為參數(shù)的橫向清洗,基于時空因素的軌跡數(shù)據(jù)清洗。
[0004] 然而,上述運些研究和方法在應(yīng)用場景方面具有一定的局限性,要么受制于數(shù)據(jù) 本身的時空特性和重要程度,要么受專家經(jīng)驗影響較多。
【發(fā)明內(nèi)容】
[0005] 針對現(xiàn)有技術(shù)的W上缺陷或改進需求,本發(fā)明提供了一種基于函數(shù)依賴的數(shù)據(jù)清 洗方法,其目的在于,通過依靠數(shù)據(jù)本身特征,先將待分析數(shù)據(jù)通過聯(lián)合集成,然后提取不 同屬性間的函數(shù)依賴關(guān)系,根據(jù)函數(shù)依賴關(guān)系挖掘待清洗屬性,并對此屬性進行清洗和修 復(fù),同時能夠解決大數(shù)據(jù)中"臟數(shù)據(jù)"問題,為后續(xù)的大數(shù)據(jù)分析挖掘提供高質(zhì)量的數(shù)據(jù)。
[0006] 為實現(xiàn)上述目的,按照本發(fā)明的一個方面,提供了一種基于函數(shù)依賴的數(shù)據(jù)清洗 方法,包括W下步驟:
[0007] (1)對原始數(shù)據(jù)進行數(shù)據(jù)轉(zhuǎn)換,W將其不同類型的屬性全部轉(zhuǎn)換為數(shù)值型屬性; [000引(2)對于數(shù)據(jù)轉(zhuǎn)換后的原始數(shù)據(jù),提取其屬性的自依賴函數(shù)特征;
[0009] (3)對于數(shù)據(jù)轉(zhuǎn)換后的原始數(shù)據(jù),提取其屬性之間的互依賴函數(shù);
[0010] (4)根據(jù)步驟(2)的自依賴函數(shù)特征和步驟(3)的互依賴函數(shù)確定需要進行清洗及 待清洗的屬性及樣本,并根據(jù)該屬性及樣本形成相關(guān)清洗決策依據(jù)。
[0011] (5)判斷待清洗的屬性對象是采用自依賴函數(shù)清洗還是采用互依賴函數(shù)進行清 洗,若采用自依賴函數(shù)清洗,則將不符合條件的樣本根據(jù)自依賴函數(shù)確定的多項式進行校 準修復(fù),并加上白噪聲作為隨機擾動;若采用互依賴函數(shù)清洗,則將不符合條件的樣本根據(jù) 互依賴函數(shù)確定的相關(guān)函數(shù),W已校準的屬性為基礎(chǔ)對另一屬性進行校準恢復(fù)。
[0012] 優(yōu)選地,步驟(1)包括W下子步驟:
[0013] (1-1)從原始二維表中任選一屬性列X,該屬性列中的樣本總數(shù)為N,將該樣本按依 次順序均勻分為3個集合{Xi,X2,X3},從Ξ個集合中分別隨機選取min {N/9,100}個數(shù)據(jù)樣 本;
[0014] (1-2)采用正則表達式"r(-?\\d+)(\\.\\d+)?$T'分別對Ξ個集合進行數(shù)據(jù)類型 識別,并判斷是否所有樣本都滿足正則匹配,若是則進入步驟(2),否則進入步驟(1-3);
[0015] (1-3)提取Ξ個集合中不重復(fù)的值Xni,W及該值在本集合中獨立數(shù)值的個數(shù)Nni, 并判斷是否有Nni。,若是則進入步驟(1-4),否則進入步驟(1-5),其中0含η含min (N/9,100);
[001 W (1 -4)將Xni離散化為0,1,若Nni = 3,將Xni離散化為-1,0和1,然后進入步驟(2);
[0017] (1-5)進一步統(tǒng)計Ξ個集合中不重復(fù)值Xni出現(xiàn)的頻次Xnij,其中j如ni;
[0018] (1-6)將Ξ個集合中不重復(fù)值Xni更換為·
完成初步量化;
[0019] (1-7)判斷Ξ個集合的唯一值是否不存在交集,若不存在交集則直接進入步驟 (2),否則進入步驟(1-8);
[0020] 步驟1-8:對不同集合的Xnu求其平均值;
[0021] 步驟1-9:對求平均值之后的Ξ個集合進行合并,將合并后的集合中剩余無交集的 數(shù)值修正為
[0022] 優(yōu)選地,步驟(2)包括W下子步驟:
[0023] (2-1)任意選擇某屬性列并連續(xù)抽取該列中的N個值,W形成新的序列Xi;
[0024] (2-2)將序列Xi移動1位,W形成序列y,i;
[0025] (2-3)獲得序列Xi與;的差值序列0,1,并判斷該差值序列80%的樣本是否趨近某 一固定常數(shù)或0,若是則將本屬性列定義為線性自依賴函數(shù),并跳轉(zhuǎn)至步驟(4),否則進入步 驟(2-4);
[00%] (2-4)將差值序列巧移動1位,形成序列巧1,求其差值序列并判斷該差值序列 80%的樣本是否趨近某一固定常數(shù)或0,若是則將本屬性列定義為二次曲線自依賴函數(shù),并 跳轉(zhuǎn)至步驟(4),否則進入步驟(2-5);
[0027] (2-5)迭代執(zhí)行步驟(2-4),迭代次數(shù)為n,若η ^5,且80% W上的樣本差值為常數(shù) 或0,則自依賴函數(shù)為?·(χ)=3χη+6χη-ι+...+αχ+β,并跳轉(zhuǎn)至步驟(4),否則進入步驟(2-6); [002引 (2-6)求序列Xi的最大值maxXi和最小值minXi,并W此為基礎(chǔ)對Xi進行歸一化處 理,從而將Xi轉(zhuǎn)換為
[0029] (2-7)?
為步進長度,統(tǒng)計屬性樣本出現(xiàn)在10個區(qū)間的概率 分布,概率密度函數(shù),并判斷10個區(qū)間中所有區(qū)間的概率密度是否低于口限值ε = 1〇Λ若是 則認為該屬性樣本的該部分區(qū)間數(shù)需被清洗,然后進入步驟(4),否則進入步驟(3)。
[0030] 優(yōu)選地,步驟(3)包括W下子步驟:
[0031] (3-1)抽取任兩屬性列X和Υ,提取兩列的概率密度函數(shù)f(x)和f(y),判斷兩者概率 密度分布趨勢是否趨同,若趨同則認為此兩屬性為相似屬性f (x)Simf (y),并進入步驟(4), 否則進入步驟(3-2);
[0032] (3-2)計算列X和Y的化arson相關(guān)系數(shù)p(x,y)和Spearman相關(guān)系數(shù)s(x,y),判斷是 否滿足條件0.5^ |p(x,y)ors(x,y)| ^1,若滿足則表明兩者強相關(guān),可互相進行清洗,直接 進入步驟(4),否則進入步驟(3-3);
[0033] (3-3)對屬性列Χ、Υ,分別采用加、減、乘、除算術(shù)算子形成新的列Z,針對列Z,采用 步驟(2)所述方式建立自依賴函數(shù)。
[0034] 優(yōu)選地,步驟(4)包括W下子步驟:
[0035] (4-1)判斷屬性序列是否滿足自依賴函數(shù)特征,且存在不滿足自依賴函數(shù)的樣本 占比不超過ε = 10-2,若屬性序列滿足上述條件則確定該屬性為待清洗對象并且將不滿足自 依賴函數(shù)的樣本作為待清洗樣本,進入步驟(5),否則進入步驟(4-2);
[0036] (4-2)判斷屬性序列是否滿足步驟(3)確定的互依賴函數(shù),并且判斷屬性序列中其 中某一屬性是否為步驟(4-1)中已確定為不用清洗或待清洗的單屬性對象,若是則將另一 屬性確定為互依賴函數(shù)待清洗對象,并且進入步驟(5),否則進入步驟(4-3);
[0037] (4-3)選取屬性序列中的復(fù)合屬性,并判斷選取的復(fù)合屬性是否與步驟(4-2)中的 兩屬性存在互依賴函數(shù)關(guān)系,若存在,則W此復(fù)合屬性作為另外兩屬性的清洗依據(jù),進入步 驟(5),否則進入步驟(4-4);
[0038] (4-4)采用橫向的樣本算術(shù)運算、裝箱和積分方面對樣本規(guī)約,形成新的屬性序列 X',Υ',并進行該屬性的函數(shù)依賴關(guān)系提取。
[0039] 總體而言,通過本發(fā)明所構(gòu)思的W上技術(shù)方案與現(xiàn)有技術(shù)相比,能夠取得下列有 益效果:
[0040] 1、普適性好:本發(fā)明的清洗方法依賴于屬性間的函數(shù)關(guān)系,對于二值數(shù)據(jù)和命名 數(shù)據(jù)可轉(zhuǎn)換為方便構(gòu)造函數(shù)的數(shù)值屬性。該方法相對其他清洗方法來說,更加客觀,具備更 好地普適性;
[0041] 2、擴展性好:本發(fā)明隨著樣本數(shù)量的自適應(yīng)地學(xué)習(xí)函數(shù)及參數(shù),避免了傳統(tǒng)清洗 方法隨樣本空間而改變或調(diào)整數(shù)據(jù)清洗方法的缺點。
【附圖說明】
[0042] 圖1是本發(fā)明基于函數(shù)依賴的數(shù)據(jù)清洗方法的總體流程圖。
[0043] 圖2是本發(fā)明的屬性轉(zhuǎn)換流程圖。
[0044] 圖3是本發(fā)明的自依賴函數(shù)特征提取流程圖。
[0045] 圖4是自相關(guān)概率分布函數(shù)。
[0046] 圖5是互依賴函數(shù)提取流程。
[0047] 圖6是確定清洗屬性和樣本流程。
【具體實施方式】
[0048] 為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,W下結(jié)合附圖及實施例,對 本發(fā)明進行進一步詳細說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用W解釋本發(fā)明,并 不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個實施方式中所設(shè)及到的技術(shù)特征只要 彼此之間未構(gòu)成沖突就可W相互組合。
[0049] 本發(fā)明包括屬性變換、屬性自依賴函數(shù)提取、屬性互依賴函數(shù)提取、待清洗屬性決 策及函數(shù)依賴清洗等五個部分。如圖1所示,本發(fā)明基于函數(shù)依賴的數(shù)據(jù)清洗方法包括W下 步驟:
[0050] 步驟1:對原始數(shù)據(jù)進行數(shù)據(jù)轉(zhuǎn)換,W將其不同類型的屬性全部轉(zhuǎn)換為數(shù)值型屬 性;本步驟的目的在于,便于數(shù)據(jù)清洗和數(shù)據(jù)挖掘,尤其是為了便于建立原始數(shù)據(jù)屬性的自 依賴函數(shù)和互依賴函數(shù)。如圖2所示,本步驟包括W下子步驟:
[0051] 步驟1-1:從原始二維表中任選一屬性列X,該屬性列中的樣本總數(shù)為N,將該樣本 按依次順序均勻分為3個集合巧1,《2,《3},從^個集合中分別隨機選取111111陽/9,100}(即取 N/9和100中的最小值)個數(shù)據(jù)樣本;
[0052] 步驟1-2:采用正則表達式"Γ (-?\\d+) (\\. \\d+) ?$r分別對Ξ個集合進行數(shù)據(jù) 類型識別,并判斷是否所有樣本都滿足正則匹配,若是則進入步驟2,否則進入步驟1-3;
[0053] 步驟1-3:提取Ξ個集合中不重復(fù)的值Xni,W及該值在本集合中獨立數(shù)值的個數(shù) Nni,并判斷是否有Nni < 3,若是則進入步驟1-4,否則進入步驟1-5,其中0 < η < 2,0 < i < min (N/9,100);
[0054] 步驟1-4:將Xni離散化為0,1,若Nni = 3,將Xni離散化為-1,0和1,然后進入步驟2;
[0化5] 步驟1-5:進一步統(tǒng)計Ξ個集合中不重復(fù)值Xni出現(xiàn)的頻次Xnij,其中0 < η < 2,0 < i < min(N/9, !00),0< j <Nni;
[0化6]步驟1-6 :將Ξ個集合中不重復(fù)值Xni更換夫
完成初步量化;
[0057]步驟1-7:判斷Ξ個集合的唯一值是否不存在交集,若不存在交集則直接進入步驟 2,否則進入1-8;
[005引步驟1-8:對不同集合的XnU求其平均值;
[0059] 步驟1-9:對求平均值之后的Ξ個集合進行合并,將合并后的集合中剩余無交集的 數(shù)值修正為
[0060] 步驟2:對于數(shù)據(jù)轉(zhuǎn)換后的原始數(shù)據(jù),提取其屬性的自依賴函數(shù)特征