1.一種基于海量不完備數(shù)據(jù)集的skyline偏好查詢方法,其特征在于:包括以下步驟:
(1)根據(jù)數(shù)據(jù)集中各屬性重要程度將不完備數(shù)據(jù)集IS進行投影,得到重要屬性投影后的數(shù)據(jù)集IS’和不重要屬性投影后的數(shù)據(jù)集IS”;
(2)針對數(shù)據(jù)集IS’和數(shù)據(jù)集IS”分別進行元組編碼;
(3)針對數(shù)據(jù)集IS’進行嚴(yán)格聚類,所述的嚴(yán)格聚類包括根據(jù)聚類編碼的定義進行嚴(yán)格聚類和聚類后每個類中被支配的數(shù)據(jù)元組被剔除兩個流程;
(4)針對數(shù)據(jù)集IS”進行松散聚類;所述的松散聚類包括根據(jù)元組編碼和每個聚類的編碼的包含關(guān)系的定義進行松散聚類和聚類后每個類中被支配的數(shù)據(jù)元組被剔除兩個流程;
(5)將步驟(3)中,嚴(yán)格聚類并完成數(shù)據(jù)剔除的數(shù)據(jù)集,執(zhí)行基于屬性值排序的skyline偏好查詢算法,得到基于嚴(yán)格聚類的skyline查詢結(jié)果集SSRS;
(6)將步驟(4)中,松散聚類并完成數(shù)據(jù)剔除的數(shù)據(jù)集,執(zhí)行基于支配程度計算的skyline偏好查詢算法,得到基于松散聚類的skyline查詢結(jié)果集RSRS;
(7)將步驟(5)、步驟(6)得到的SSRS與RSRS取交集,如果交集不為空集,那么交集中的元組就是最終的skyline查詢結(jié)果;
(8)如果步驟(7)的交集為空集,分別計算SSRS與RSRS中元組的信息熵,將SSRS和RSRS中的元組進行信息熵的計算后得出最終的skyline查詢結(jié)果反饋給用戶。
2.根據(jù)權(quán)利要求1所述的一種基于海量不完備數(shù)據(jù)集的skyline偏好查詢方法,其特征在于:所述(2)針對數(shù)據(jù)集IS’和數(shù)據(jù)集IS”進行元組編碼的過程如下:
p′i·tuple_code(p″i·tuple_code)=Mi,Mi=(m1,m,…,mk);若p′i·vk(p″i·vk)=*,Mi·mik=0;若p′i·vk(p″i·vk)≠*,Mi·mik=1,其中k∈[1,λ]([λ+1,d])
其中,IS’和IS”分別是IS在前λ維上的投影和后d-λ維上的投影,d是不完備數(shù)據(jù)集IS的維數(shù),pi′和pi″分別是元組pi前λ維上的投影和后d-λ維上的投影,Mi是元組pi的編碼,λ是維度的分割常數(shù),λ∈[1,d]。
3.根據(jù)權(quán)利要求1所述的一種基于海量不完備數(shù)據(jù)集的skyline偏好查詢方法,其特征在于:所述步驟(3)嚴(yán)格聚類中的聚類編碼過程如下:_
對于如果存在ccj≠p′i·tuple_code,那么CS′=CS′U{pi′·tuple_code}
其中,CS’是嚴(yán)格聚類編碼集合,ccj是聚類編碼。
4.根據(jù)權(quán)利要求1所述的一種基于海量不完備數(shù)據(jù)集的skyline偏好查詢方法,其特征在于:所述步驟(5)中執(zhí)行基于屬性值排序的skyline偏好查詢過程,得到嚴(yán)格聚類結(jié)果集SSRS的具體過程如下:
(5.1):對數(shù)據(jù)集IS’中的各維度按照元組屬性值非降序排序,使得更有可能支配其他元組的元組優(yōu)先被處理;每維經(jīng)過排序后都會生成一個數(shù)組Di,i∈[1,λ],對于每個數(shù)組Di都有Di[j]>=Di[j+1],j∈[1,|IS′|),其中|IS′|代表IS’中的元組個數(shù);對于在第i維上存在缺失屬性值的元組是不會加入數(shù)組Di中的,為了節(jié)省存儲空間,數(shù)組Di中存儲的只是元組id,而不是真正的元組;設(shè)立一個指向數(shù)組Di的指針ptri,經(jīng)過嚴(yán)格聚類后沒有被支配的元組都納入候選集Candidate_Set;隨機選擇一個數(shù)組Di,處理數(shù)組Di中指針ptri指向的元組;每個在候選集中的元組都會維護兩個值,一個是元組被處理的次數(shù),記為processedCount,一個是元組編碼中1的個數(shù)即非缺失屬性維數(shù),記為dimCount;
(5.2):對于當(dāng)前被選中的元組p,有以下幾種情況:
①,如果元組p′沒有被處理過且元組p′還在候選集Candidate_Set中,就將它與除自己以外沒有跟它比較過的元組pj′進行比較,即使pi′已經(jīng)被之前處理過的元組所支配;若候選集中存在元組支配p′,元組p′就被移出候選集;
②:如果元組p′沒有被處理過但是被之前處理過的元組支配,即已不在候選集Candidate_Set中,p′就只與還在候選集Candidate_Set中并且沒有與p′比較過的元組比較;在以上兩種情況下,候選集中被元組p′支配的元組會被移出候選集;
③:如果元組p′已經(jīng)被處理過了就不進行任何比較;
④:其中i≠j,p′i和p′j可比較的維度少于個,在這些可比較的維度上,若p′i在至少一維上的值比p′j“好”,剩余維度上的值不比p′j“差”就認(rèn)為p′i弱支配p′j,記為pi′>*pj′
如果兩個元組pi′與pj′之間具有弱支配關(guān)系,還需要比較這兩個元組的重量;若滿足pi′的重量大于pj′的重量,才認(rèn)為pi′支配pi′;綜合考慮非缺失屬性值及其被用戶所賦予的權(quán)重,元組重量計算公式(1),如下所示:
(5.3):當(dāng)候選集中的元組p的比較次數(shù)達到了其非缺失屬性維數(shù)dimCount,就將這個元組從候選集移到嚴(yán)格skyline結(jié)果集SSRS中;
(5.4):當(dāng)候選集為空或者所有元組都被處理過至少一次時,把候選集Candidate_Set中的其余元組都放入嚴(yán)格聚類skyline結(jié)果集SSRS中,此時基于屬性值排序的skyline偏好查詢過程結(jié)束。
5.根據(jù)權(quán)利要求1所述的一種基于海量不完備數(shù)據(jù)集的skyline偏好查詢方法,其特征在于:所述步驟(6)中執(zhí)行支配程度計算skyline偏好查詢算法,得到松散聚類結(jié)果集RSRS的具體過程如下:
(6.1):松散聚類規(guī)則是對元組編碼和聚類編碼執(zhí)行不完全匹配,凡是元組編碼與聚類編碼符合包含關(guān)系就認(rèn)為該元組可以聚于這個類中;下面是對元組編碼與聚類編碼之間包含關(guān)系的定義:
令d1=λ,pi″·tuplecode=Mi″,Mi″=(mik,mik+1,…,mid),如果并且i≠j,ccj=(cjk,cjk+1,…,cjd),對于mik≤cjk,pi″被放在聚類編碼為ccj的對應(yīng)類中,pi″與ccj之間的包含關(guān)系用pi″→ccj表示;如果對于mik>cjk,那么ccj→pi″并且這個聚類的編碼將被更新為pi″·tuple_code,ccj將被移出CS″;如果pi″·tuple_code與ccj之間沒有包含關(guān)系或者CS″是空集;除pi″將被放于聚類編碼為ccj這種情況之外,都要更新CS″;CS″=CS″∪{pi″·tuple_code},其中,CS”是松散聚類編碼集合;
當(dāng)出現(xiàn)一個元組同時滿足多個包含關(guān)系時,它可以放于多個聚類中,使得具有較大相似程度的元組盡可能充分的進行比較,進而將一些被其他元組支配的元組剔除,根據(jù)前述的元組編碼與聚類編碼之間的包含關(guān)系定義和松散聚類規(guī)則,對IS”進行松散聚類后的到了若干個聚類;
(6.2):通過元組之間支配程度計算可以減少skyline查詢結(jié)果集中的冗余數(shù)據(jù);帶有用戶偏好的數(shù)據(jù)元組之間的支配關(guān)系由它們之間的支配程度決定;支配程度的定義如下:任意兩元組之間可以比較的維屬性值之差可視作這一維上兩元組的支配距離;那么同一聚類中任意兩個元組的支配程度可記為可比較維度上支配距離與權(quán)重乘積的和;令wλ+1,wλ+2,…,wd為各維權(quán)值,元組pi的各維非缺失屬性值記為vij,j∈[λ+1,d],那么任意兩元組pi對pj的支配程度記為其中k代表元組之間可以比較的維度,如果domaini,j>0,then pi>pj,如果domaini,j<0,pj>pi,如果domaini,j=0,pi與pj不可相互支配;
根據(jù)支配程度的定義,在每個聚類中計算任意兩個元組的支配程度,將一些被支配的元組剔除后,把每個聚類中的剩余元組放入松散skyline查詢結(jié)果集RSRS。
6.根據(jù)權(quán)利要求1所述的一種基于海量不完備數(shù)據(jù)集的skyline偏好查詢方法,其特征在于:所述步驟(8)中信息熵的計算公式如下:
其中,E(pi)代表元組pi的信息熵,h′代表元組屬性標(biāo)準(zhǔn)化后的值,n代表元組的維數(shù)。