專利名稱:一種基于粗糙集的海量數(shù)據(jù)分割方法
技術領域:
本發(fā)明是一種海量數(shù)據(jù)分割問題的解決方案,主要用于解決粗糙集在海量數(shù)據(jù)挖 掘中的應用問題,屬于分布式計算軟件領域。
背景技術:
粗糙集理論是波蘭數(shù)學家Z. Pawlak于1982年提出的,這一理論為處理具有模糊、 不精確或不完全信息的分類問題提供了一種新的工具。起初,由于這個理論建立在商集基 礎之上,較為復雜的數(shù)學使得這個理論未能引起人工智能研究者的注意,研究地域也僅局 限于波蘭等東歐一些國家,當時許多波蘭學者對粗糙集理論及其應用進行了堅持不懈的研 究,其中對粗糙集理論的數(shù)學性質與邏輯系統(tǒng)進行的廣泛的分析。當時大多數(shù)研究成果發(fā) 表在“Bulletin of The Polish Academic of Sciences,,上,同時,他們也開發(fā)了一些應用 系統(tǒng),但都處于萌芽階段。直到1990年前后,由于該理論在數(shù)據(jù)的決策與分析、模式識別、 機器學習與知識發(fā)現(xiàn)等方面的成功應用,才逐漸引起世界數(shù)學界和計算機界的廣泛關注。 1991年Z. Pawlak的專著《粗糙集一關于數(shù)據(jù)推理的理論》的問世,標志著粗糙集理論及其 應用的研究進入了活躍時期。粗糙集理論主要應用在對不完整、不精確信息的表達與處理上,它從新的視角出 發(fā)對知識進行了定義,把知識看作是關于論域的劃分,并引入代數(shù)學中的等價關系來討論 知識。同其它處理不完整、不精確知識的數(shù)學理論相比,粗糙集理論的主要優(yōu)勢在于它不需 要任何預備的或額外的先驗知識,比如統(tǒng)計學中的概率分布,Dempster-Shafer證據(jù)理論中 的基本概率賦值,或者Fuzzy集理論中的隸屬度等,它主要利用集合的上近似集與下近似 集,根據(jù)集合中存在的不可區(qū)分關系來解決知識的分類問題。海量數(shù)據(jù)是用來形容巨大的、空前浩瀚的數(shù)據(jù)。現(xiàn)在,在許多業(yè)務部門中都需要操 作海量數(shù)據(jù),如規(guī)劃部門有規(guī)劃方面的數(shù)據(jù),水利部門有水利方面的數(shù)據(jù),氣象部門有氣象 方面的數(shù)據(jù),測繪部門有測繪方面的數(shù)據(jù),這些部門都可能有幾百兆甚至幾百吉的數(shù)據(jù),如 僅測繪部門的全國1 25萬地形數(shù)據(jù)庫的數(shù)據(jù)量就達4. 5(ib。隨著人類信息化程度的提 高,數(shù)據(jù)已超出它原始的范疇,它包含各種空間數(shù)據(jù)、報表統(tǒng)計數(shù)據(jù)、文字、聲音、圖像、超文 本等各種環(huán)境和文化數(shù)據(jù)信息。而且隨著社會信息化程度的提高、計算機的普及,特別是數(shù) 據(jù)庫技術以及數(shù)據(jù)庫管理系統(tǒng)的快速發(fā)展,使得人們可以越來越方便地存儲和管理自己手 邊巨大的數(shù)據(jù)。同時隨著網(wǎng)絡技術和互聯(lián)網(wǎng)的迅速發(fā)展,世界各地、各行業(yè)、各部門以及個 人都能通過網(wǎng)絡達到信息共享,使得空間上分布于世界各地的海量數(shù)據(jù)能有機地聯(lián)系在一 起。將原始的海量數(shù)據(jù)集分割成為許多能夠在單機上快速處理的數(shù)據(jù)子集,然后在這 些數(shù)據(jù)子集上進行分布式處理是分布式處理海量數(shù)據(jù)的方法。分割原始數(shù)據(jù)集的質量對后 繼進行分布式處理的效果有著很深的影響,因為分割后的數(shù)據(jù)子集已經(jīng)遺失了的信息在后 繼的分布式信息處理中是無法彌補的。如果一個信息系統(tǒng)經(jīng)過分割后,可以從分割后的信息系統(tǒng)中得到與原始的信息系統(tǒng)相同的知識或者規(guī)則,則稱這樣的分割是最佳的分割。在規(guī)則提取的過程中,對于每一個 相容條件分類X e PC^p(D)都可以得到一條相應的規(guī)則dx:deS([x]P) —des([X]D)。因此 如果在分割過程中保持所有的相容條件分類不受到改變,也就是保持所有的PC^p(D)不變 (PeC),則可以保持所有的規(guī)則不變,從而可以得到最佳的分割。最佳分割的定義如下定義1給定信息系統(tǒng)S = < U,C U D,V,f >,S通過某種分割方法被分割成k個 子信息系統(tǒng)S1A2,…,S」,···,Sk,其中 =<UX,CUD,Vj,fj>,如果有V(P c C)([POS, (D)] _ 5 = (J[P05, (D)] _ Sj),
/=1其中[Ρ0 5Ρ⑶]Jj多是定義在子信息系統(tǒng)h易上的D的P正域,則這個分割是最 佳的分割。
發(fā)明內容
技術問題本發(fā)明的目的是提供一種基于粗糙集的海量數(shù)據(jù)分割方法,針對海量 數(shù)據(jù)的特點,充分發(fā)揮粗糙集的在處理不完整、不精確信息方面上的優(yōu)勢,進行高效的分 割。技術方案本方案是一種策略性的方案,首先對海量數(shù)據(jù)集通過一種基于折半查 找的最優(yōu)屬性約簡算法來查找到一個最優(yōu)約簡,再根據(jù)這個約簡,通過一個基于屬性約簡 的粗糙集海量數(shù)據(jù)分割算法對海量數(shù)據(jù)集進行最佳分割。分割后的數(shù)據(jù)可用于下一步的處 理。本方法主要應用在數(shù)據(jù)挖掘領域。該方法所包含的步驟為步驟1.讀入待處理的原始海量數(shù)據(jù)集S,定義int m = η/2;其中η為數(shù)據(jù)集條件 屬性個數(shù);m的值為η的1/2,步驟2.遍歷條件屬性集合C = Ix1, &,...,ι}中所有包含m個條件屬性子集的 約簡情況,根據(jù)樣本決策表的協(xié)調性來找到其中一個約簡,若找到約簡則轉到步驟3,若沒 有找到約簡,則轉到步驟4;步驟3.此時找到了約簡,若m等于1,則此時的約簡即為最優(yōu)約簡P,P = Reduction,轉到步驟5 ;若m等于n,則最佳約簡P = C,轉到步驟5 ;若m不等于1或者n, 則再令η = m,m = m/2,即m的大小變?yōu)樵瓉淼?/2,轉到步驟2 ;步驟4.若m = η/2沒有約簡,則令m = (m+n) /2,轉到第2步;步驟5.保存最優(yōu)約簡P,第一階段結束,步驟6.對最優(yōu)約簡P中每一個條件屬性Ai,計算該條件屬性的重要性,并按屬性 的重要性升序排列所有的條件屬性;步驟7.初始化C為步驟6中排序后的所有條件屬性的集合,令D為決策屬性,Sk 表示第k個子數(shù)據(jù)集,其中1彡K彡m,Sk|表示子數(shù)據(jù)集&中的樣本數(shù)M= S|/m, M表 示m個子數(shù)據(jù)集的平均樣本數(shù);步驟8.判斷如果條件屬性組合C不為空,則搜索條件屬性組合C下所有的沖突條 件分類,按所包含的樣本數(shù)升序排列搜索到的所有沖突條件分類,假設為=X1,&,…,&,其 中下標1,2,…,P表示沖突條件分類號,P是搜索到的沖突條件分類的個數(shù),假設IX」表 示第j個沖突條件分類中包含的樣本數(shù),則有IX11 < Ix2〈…仏丨;
步驟9.對每一個子數(shù)據(jù)集&,將沖突條件分類號j滿足K = Mod(j/m)的所有沖 突條件分類中的所有樣本從S中移除并插入子數(shù)據(jù)集&中,其中1 < j <n,Mod()為求余 數(shù)的函數(shù);步驟10.如果數(shù)據(jù)集S為空,則過程結束,否則從條件屬性組合C中移除最前面的 屬性,即當前最不重要的屬性,跳轉到步驟8 ;步驟11.如果S不為空,則針對每一個子數(shù)據(jù)集&,如果有|Sk| <M|,則從S中隨 機移出a個樣本插入子數(shù)據(jù)集&中,其中a = Min (Μ-1 Sk |,| S |),直到把S中的數(shù)據(jù)全部分 配,過程結束。有益效果本發(fā)明的目的是提供一種基于粗糙集的海量數(shù)據(jù)分割方法,針對海量 數(shù)據(jù)的特點,充分發(fā)揮粗糙集的在處理不完整、不精確信息方面上的優(yōu)勢,進行高效的分 割。通過本發(fā)明的機制,在提高數(shù)據(jù)分割效率的同時也提高了分割精確性。而且充分利用 了粗糙集的特點,可以很好地解決海量數(shù)據(jù)的挑戰(zhàn)。下面給出具體的說明(1)基于粗糙集進行數(shù)據(jù)分割,可以充分發(fā)揮粗糙集的在處理不完整、不精確信息 方面上的優(yōu)勢,為數(shù)據(jù)分割提供有力的工具,同時給科學研究領域、經(jīng)濟領域和社會生活帶 來新的發(fā)現(xiàn)和巨大的價值。(2)在進行數(shù)據(jù)分割的時候,我們采取的是一種最接近最佳分割的策略,可以從分 割后的信息系統(tǒng)中得到與原始的信息系統(tǒng)相同的知識或者規(guī)則。而且在分割之前我們對數(shù) 據(jù)集的屬性進行約簡處理,這樣大大提高了數(shù)據(jù)挖掘的效率和精確性。(3)在進行屬性約簡的時候,我們采用一個基于折半查找的最優(yōu)屬性約簡算法來 爭對原始海量數(shù)據(jù)得到一個最佳約簡。接著用這個最佳約簡來做分割,可以在保證分割機 制最接近最佳分割,在分割過程中盡可能保留原有信息。
圖1是海量數(shù)據(jù)分割功能圖。圖2是本發(fā)明方法的流程圖。
具體實施例方式一、體系結構圖1給出了基于粗糙集的海量數(shù)據(jù)分割方法的結構圖。其中包括兩個個模塊屬 性約簡模塊,數(shù)據(jù)分割模塊。本發(fā)明的主要貢獻是優(yōu)化了數(shù)據(jù)約簡模塊和數(shù)據(jù)分割模塊,使 整個數(shù)據(jù)分割過程更效率,更準確。下面給出前每個模塊的具體介紹屬性約簡模塊本機制在進行數(shù)據(jù)分割之前需要對原始數(shù)據(jù)集進行一次屬性約 簡,通過一個基于折半查找的最優(yōu)屬性約簡算法來對數(shù)據(jù)進行快速約簡得到一個最佳約簡。數(shù)據(jù)分割模塊在進行屬性約簡之后,我們根據(jù)得到的最佳約簡,對原始數(shù)據(jù)進行 分割。具體的分割塊數(shù)需要根據(jù)實際情況和網(wǎng)格節(jié)點數(shù)量而定。二、方法流程1、屬性約簡模塊
通過基于折半查找的最優(yōu)屬性約簡方法,可以對高維數(shù)據(jù)集進行有效地降維,由 于粗糙集本身的特性,這種降維處理并沒有改變原來數(shù)據(jù)集固有的特性。并且由于基于折 半查找的特定,使得本方法的約簡具有很高的效率。本模塊的主要工作流程如下Stepl.讀入待處理的原始海量數(shù)據(jù)集,定義int m = n/2,其中η為數(shù)據(jù)集條件屬 性個數(shù);St印2.遍歷條件屬性集合C= {χι;χ2, xj中所有包含m個條件屬性子集的 約簡情況,根據(jù)樣本決策表的協(xié)調性來找到其中一個約簡Reduction,則轉到Mep3,直到 找到最優(yōu)約簡為止,否則轉到乂印4 ;Step3.若m等于1,則此時的約簡即為最優(yōu)約簡bestReduction,bestReduction =Reduction,轉到 Step 5 ;若 m 等于 n, bestReduction = C,轉到 Step 5 ;否則再令 η = m, m = m/2,轉至Ij St印2 ;Step4.若 m = η/2 沒有約簡,則令 m = (m+n) /2,轉到 乂印2 ;St印5.保存最優(yōu)約簡 bestReduction ;2、數(shù)據(jù)分割模塊在整個數(shù)據(jù)分割的過程中,需要盡量保持數(shù)據(jù)集的分類能力不變。本方法首先通 過分析粗糙集的特點,闡述了什么樣的分割才是最佳分割如果一個信息系統(tǒng)經(jīng)過分割以 后,可以從分割以后的信息系統(tǒng)中得到與原始系統(tǒng)相同的知識或者規(guī)則,則稱這樣的分割 是最佳分割。但是現(xiàn)實中,最佳分割通常是不存在的。因為需要窮舉所有的條件屬性組合,而保 護了某一個條件屬性組合下的沖突條件分類不受到破壞往往又改變了另一個條件屬性組 合的沖突條件分類。而且窮舉所有的條件屬性組合通常是不現(xiàn)實的,因此在算法中,本方法 將只考慮部分的條件屬性組合。放棄其它的條件屬性組合不予考慮也意味著在分割的過程 中會人為地遺失掉一部分信息,這會導致正確率的降低。因此,數(shù)據(jù)分割的過程也是一種知 識挑選的過程,因此會比較耗時。但是具體要放棄哪些條件屬性組合呢?傳統(tǒng)的基于粗糙集的海量數(shù)據(jù)分割方法 是根據(jù)所有的條件屬性的重要性排序,再在排序的基礎上選擇條件屬性組合來計算沖突條 件分類。但對高維海量數(shù)據(jù)的分割來說,要是在分割前對每個屬性的重要性都計算一遍的 話,將耗費大量的時間。如果對上一步得到的約簡的屬性計算其重要性,算法的效率將會得 到極大的改進。本模塊的主要工作流程如下Stepl.讀取在第一個模塊獲得的最佳約簡P和原始數(shù)據(jù)S。Step2.對P中每一個條件屬性Ai,計算該條件屬性的重要性,并按屬性的重要性 升序排列所有的條件屬性。Step3.初始化C為M印2中排序后的所有條件屬性的集合,令D為決策屬性,&表 示第k個子數(shù)據(jù)集(其中1彡K彡m),IskI表示子數(shù)據(jù)集&中的樣本數(shù)M= |S|/m(M表示 m個子數(shù)據(jù)集的平均樣本數(shù))。Step4.判斷如果條件屬性組合C不為空,則搜索條件屬性組合C下所有的沖突條 件分類,按所包含的樣本數(shù)升序排列搜索到的所有沖突條件分類,假設為=X1,&,…,乂 ,其中下標1,2,…,η表示沖突條件分類號,η是搜索到的沖突條件分類的個數(shù)。假設IX」表 示第j個沖突條件分類中包含的樣本數(shù),則有=Ix1I < Ix2I〈…IxnUStep5.對每一個子數(shù)據(jù)集&,將沖突條件分類號j滿足K = Mod(j/m)的所有沖 突條件分類中的所有樣本從S中移除并插入子數(shù)據(jù)集\中,其中1 < j < η,ModO為求余 數(shù)的函數(shù);Step6.如果數(shù)據(jù)集S為空則過程結束。否則從條件屬性組合C中移除最前面的屬 性,即當前最不重要的屬性,跳轉到乂6 4。Step7.如果S不為空,則針對每一個子數(shù)據(jù)集&,如果有|Sk| <M|,則從S中隨 機移出a個樣本插入子數(shù)據(jù)集&中,其中a = Min(M-I Sk|,|S|)。直到把S中的數(shù)據(jù)全部 分配,過程結束。為了方便描述,我們假設有如下應用實例有一個待挖掘的海量數(shù)據(jù)集S,其中S中有η個條件屬性,有|S|個樣本。根據(jù)需 要我們要將這個數(shù)據(jù)集分成M份。具體的實施方案為首先數(shù)據(jù)集S輸入屬性約簡模塊進行處理,處理結果是一個最佳約簡P。在屬性約 簡模塊的處理過程為1)讀入待處理的原始海量數(shù)據(jù)集,定義int m = η/2 ;其中η為數(shù)據(jù)集條件屬性個 數(shù);m將在后面使用到;2)遍歷條件屬性集合C= Ix1, &,...,、}中所有包含m個條件屬性子集的約簡 情況,根據(jù)樣本決策表的協(xié)調性來找到其中一個約簡Reduction,則轉到第3步,直到找到 最優(yōu)約簡為止,否則轉到第4步;3)若m等于1,則此時的約簡即為最優(yōu)約簡,P = Reduction,轉到第5步;若m等 于n,P = C,轉到第5步;否則再令η = m,m = m/2,轉到第2步;4)若m = η/2沒有約簡,則令m = (m+n) /2,轉到第2步;5)保存最優(yōu)約簡P。接著把得到的最佳約簡P輸入到數(shù)據(jù)分割模塊中,將原始數(shù)據(jù)集分為m個子數(shù)據(jù) 集,并將子數(shù)據(jù)集分到各個網(wǎng)絡節(jié)點。按如下步驟進行處理6)輸入在第一個模塊獲得的最佳約簡P和原始數(shù)據(jù)S ;7)對P中每一個條件屬性Ai,計算該條件屬性的重要性,并按屬性的重要性序排 列所有的條件屬性;8)初始化C為步驟7中排序后的所有條件屬性的集合,令D為決策屬性,&表示 第k個子數(shù)據(jù)集(其中1彡K彡m),|Sk|表示子數(shù)據(jù)集&中的樣本數(shù)M= |S|/m(M表示m 個子數(shù)據(jù)集的平均樣本數(shù));9)判斷如果條件屬性組合C不為空,則搜索條件屬性組合C下所有的沖突條件分 類,按所包含的樣本數(shù)升序排列搜索到的所有沖突條件分類,假設為=X1,&,…,xn,其中下 標1,2,…,η表示沖突條件分類號,η是搜索到的沖突條件分類的個數(shù)。假設IX」表示第 j個沖突條件分類中包含的樣本數(shù),則有=Ix1I < Ix2I <··· IxnI ;10)對每一個子數(shù)據(jù)集Sk,將沖突條件分類號j滿足K = Mod (j/m)的所有沖突條 件分類中的所有樣本從S中移除并插入子數(shù)據(jù)集&中,其中1 ( j <n,Mod()為求余數(shù)的函數(shù);11)如果數(shù)據(jù)集S為空則過程結束。否則從條件屬性組合C中移除最前面的屬性, 即當前最不重要的屬性,跳轉到第9步;12)如果S不為空,則針對每一個子數(shù)據(jù)集&,如果有|Sk| <M|,則從S中隨機移 出a個樣本插入子數(shù)據(jù)集&中,其中a = Min (Μ-1 Sk |,| S |)。直到把S中的數(shù)據(jù)全部分配, 過程結束。
權利要求
1. 一種基于粗糙集的海量數(shù)據(jù)分割方法,其特征在于該方法所包含的步驟為 步驟1.讀入待處理的原始海量數(shù)據(jù)集S,定義int m = η/2 ;其中η為數(shù)據(jù)集條件屬性 個數(shù);m的值為η的1/2,步驟2.遍歷條件屬性集合C = Ix1, &,...,ι}中所有包含m個條件屬性子集的約簡 情況,根據(jù)樣本決策表的協(xié)調性來找到其中一個約簡,若找到約簡則轉到步驟3,若沒有找 到約簡,則轉到步驟4;步驟3.此時找到了約簡,若m等于1,則此時的約簡即為最優(yōu)約簡P,P = Reduction, 轉到步驟5 ;若m等于n,則最佳約簡P = C,轉到步驟5 ;若m不等于1或者n,則再令η = m,m = m/2,即m的大小變?yōu)樵瓉淼?/2,轉到步驟2 ;步驟4.若m = η/2沒有約簡,則令m= (m+n)/2,轉到第2步; 步驟5.保存最優(yōu)約簡P,第一階段結束,步驟6.對最優(yōu)約簡P中每一個條件屬性Ai,計算該條件屬性的重要性,并按屬性的重 要性升序排列所有的條件屬性;步驟7.初始化C為步驟6中排序后的所有條件屬性的集合,令D為決策屬性,&表示 第k個子數(shù)據(jù)集,其中1彡K彡m,I & I表示子數(shù)據(jù)集Sk中的樣本數(shù)M=|S I /m, M表示m個 子數(shù)據(jù)集的平均樣本數(shù);步驟8.判斷如果條件屬性組合C不為空,則搜索條件屬性組合C下所有的沖突條件分 類,按所包含的樣本數(shù)升序排列搜索到的所有沖突條件分類,假設為=X1,&,…,Xp,其中下 標1,2,…,ρ表示沖突條件分類號,ρ是搜索到的沖突條件分類的個數(shù),假設|X」表示第j 個沖突條件分類中包含的樣本數(shù),則有1 I < IX2 <···|ΧηΙ ;步驟9.對每一個子數(shù)據(jù)集&,將沖突條件分類號j滿足K = Mod (j/m)的所有沖突條 件分類中的所有樣本從S中移除并插入子數(shù)據(jù)集&中,其中1 < j <n,Mod()為求余數(shù)的 函數(shù);步驟10.如果數(shù)據(jù)集S為空,則過程結束,否則從條件屬性組合C中移除最前面的屬 性,即當前最不重要的屬性,跳轉到步驟8 ;步驟11.如果S不為空,則針對每一個子數(shù)據(jù)集&,如果有|Sk| <M|,則從S中隨機移 出a個樣本插入子數(shù)據(jù)集&中,其中a = Min (Μ-1 Sk |,| S |),直到把S中的數(shù)據(jù)全部分配, 過程結束。
全文摘要
一種基于粗糙集的海量數(shù)據(jù)分割方法,是一種針對海量數(shù)據(jù)的特點,充分發(fā)揮粗糙集的在處理不完整、不精確信息方面上的優(yōu)勢,對海量數(shù)據(jù)進行高效分割的方法。本方案是一種策略性的方案,首先對海量數(shù)據(jù)集通過一種基于折半查找的最優(yōu)屬性約簡算法來查找到一個最優(yōu)約簡,再根據(jù)這個約簡,通過一個基于屬性約簡的粗糙集海量數(shù)據(jù)分割算法對海量數(shù)據(jù)集進行最佳分割。分割后的數(shù)據(jù)可用于下一步的處理。本方法主要應用在數(shù)據(jù)挖掘領域。
文檔編號G06F17/30GK102142031SQ20111006891
公開日2011年8月3日 申請日期2011年3月18日 優(yōu)先權日2011年3月18日
發(fā)明者付雄, 任勛益, 夏奇思, 季一木, 王汝傳, 蔣凌云 申請人:南京郵電大學