資料倉儲資料清洗策略的研究和實現

2021-04-19 10:45:22 字數 2849 閱讀 9874

資料探勘(data mining )常常被稱為資料庫中的知識發現( knowledge discovery in database ),通常是只從資料庫或資料倉儲中提取隱含的、未知的、潛在的和有用的資訊的非平凡過程 [5] 。一般認為,資料探勘主要包括廣義的關聯規則、分類和聚類、時序模式等主要研究領域。目前研究的熱點在於提高資料探勘的所得到知識的正確性和可理解性、數 據挖掘操作的可伸縮性和資料探勘結果的視覺化等方面。同時,隨著資料探勘技術逐漸步入商業領域,為資料探勘而進行的資料離散化、資料泛化、資料變換等資料 清洗研究也成為該研究領域研究的重點範疇。

2 亞洲語言n-gram演算法模型進行文法修正處理

n-gram 演算法是基於如下假設:語言可以假設成是由乙個 markov 信源產生,該信源的符號集就是語言的最小單位詞,信源向外源源不斷地發出符號,這些符號串形成句子,然後由句成文。整句的概率就是各個詞出現概率的乘積。 這些概率可以通過直接從語料中統計 n 個詞同時出現的次數得到。

漢語n-gram模型:設n-1階markov過程產生的詞集串,第i個詞wi的概率是由前n-1個詞的條件概率給出的,而與其它任何詞都不相關,字 w k 在第n個位置出現的概率為:

是 w k 在前n個字後的次數;是前n個字出現的總次數 。

在n-gram演算法中,n指在詞中前向和後向的字元數,一般為tri-gram和2-gram。n-gram模型中n值越大,語言理解能力就越強,且在訓練集較大的情況下,有如下公式可供參考:

,是每個詞出現的概率,(

是訓練集中出現的詞條總數)。但概率為 0 的時候,平滑處理是必要的,近似 5-gram 約束的概率平滑演算法如下:

( 6 )

公 式(1)和(2)可以認為符合hmm(hidden markov model),因此可採用baum-welch演算法來獲得優化權值 λ k [1] ,限於文章內容和篇幅,本文不再贅述。公式(6)大大降低了tri-gram演算法模型的困惑度,具有較強的適用能 力。

3 利用gdbr演算法進行資料泛化

演算法 時間複雜度

lchr

o(n log n)

aoi

o(np)

figr

o(n)

gdbr

o(n)

表 1 四種資料泛化演算法在時間複雜度上的比較

泛化是將相關資料或概念提公升到更高層次上的過程,代表性的演算法有 gdbr(generalize database relation )、 figr 、 lchr 和 aoi ,這些都是面向屬性的資料泛化演算法,表 1 是這四種演算法在時間複雜度上的比較[2]。

algorithm gdbr: generalize_database_relation

input : attr_count // 屬性的個數

attr_threshold // 屬性的臨界值(泛化概念的取值範圍)

hierarchies // 泛化概念的層次陣列

output: the prime relation

procedure generalize_database_relation( attr_coun: intenger, attr_threshold: integer, hierarchies: array[attr_count] of concepthierarchy )

var

prime_relation: relation

distinct_concepts: array[attr_coun, attr_threshold] of conceptnode

distinct_concept_counts: array[attr_coun] of integer

tuple: tuple

concept: conceptnode

gen_level: integer

prime_relation:=allocate_prime_relation( attr_coun, attr_threshold );

distinct_concepts:= allocate_distinct_relation_array( attr_coun, attr_threshold );

gen_level=0;

while (tuple:=get_next_tuple()) // 從資料庫中掃瞄 tuple ,把屬性值轉換成概念

for i:=1 to attr_coun do

concept:= get_generalized_concept (tuple.attribute[i]);// 得到當前的概念層次

if (concept.ordinal =0) then // 沒有發現當前屬性對應的概念層次

increment distinct_concept_counts[i];

if (distinct_concept_counts[i] > attr_threshold) then // 超出臨界值的處理

distinct_concept_counts[i]=

generalized_concepts (distinct_concepts[i], concept,&gen_level);

generalize_relation (prime_relation,i,gen_level);

else

concept.ordinal:=distinct_concept_counts[i];

distinct_concepts[concept.ordinal]:=concept;

end // if

end //if

end //for

insert_tuple (prime_relation, tuple);// 把 tuple 插入到 prime_relation 中

end

end

資料倉儲 資料同步策略

二.資料同步策略 一般是指乙個現實中存在的業務物件,實體表它放的資料一定是一條條客觀存在的事物資料,比如使用者,商家,商品等 某東上的某某人參丸就是乙個實體 3。一般是指業務中的一些狀態,的解釋表 也稱為碼表 維度表可以看成是使用者用來分析乙個事實的視窗,它裡面的資料應該是對事實的各個方面描述。維度...

資料倉儲之資料同步策略

一般情況下表分為三個型別,分別是實體表 維度表和事務表 1.實體表 實體表,一般是指乙個現實存在的業務物件,比如使用者,商品,商家,銷售員等等。2.維度表 維度表,一般是指對應一些業務狀態,的解釋表。也可以稱之為碼表。比如地區表,訂單型別,支付方式,審批狀態,商品分類等等。維度表可以分為兩類 一般維...

資料倉儲之資料同步策略

1.資料同步 因為我們需要每天分析的資料都是最新的!所以就涉及資料的同步 2.表的種類及其概念 一般情況下表分為三個型別,分別是實體表 維度表和事務表 2.1 實體表 實體表,一般是指乙個現實存在的業務物件,比如使用者,商品,商家,銷售員等等。2.2 維度表 維度表,一般是指對應一些業務狀態,的解釋...