[發明專利]一種基于CUDA的屬性約簡方法有效
| 申請號: | 201810006829.0 | 申請日: | 2018-01-04 |
| 公開(公告)號: | CN108197656B | 公開(公告)日: | 2020-07-28 |
| 發明(設計)人: | 李天瑞;胡云蒙;陳紅梅;胡節 | 申請(專利權)人: | 西南交通大學 |
| 主分類號: | G06K9/62 | 分類號: | G06K9/62 |
| 代理公司: | 成都盈信專利代理事務所(普通合伙) 51245 | 代理人: | 崔建中 |
| 地址: | 610031 四川省成都市高新*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 cuda 屬性 方法 | ||
1.一種基于CUDA的屬性約簡方法,其特征在于,包括
步驟1:去除數據集中含有缺失值的數據對象,離散化連續的屬性,生成決策表S=(U,C∪D),其中U={x1,x2,…,xn}代表對象集,C={c1,c2,…,cm}代表條件屬性集,D代表決策屬性集,n為對象的數量,m為條件屬性的數量;
步驟2:計算U關于決策D的劃分U/Ind(D)={D1,D2,...Dd},Ind(D)表示對象在決策屬性集D上的不可分辨關系,fa(x)和fa(y)分別是對象x和對象y在決策屬性a上的取值;將U/Ind(D)={D1,D2,...Dd}映射到決策布爾矩陣,生成n行d列的決策布爾矩陣Fn×d=(dij)n×d∈{0,1},其中
步驟3:設定候選的條件屬性集計算B的條件布爾矩陣Ee×n,其中B={b1,b2,…bp}且p≤m;包括
步驟3.1:分配GPU顯存空間,將CPU端的決策表S=(U,C∪D)拷貝到GPU;
步驟3.2:在GPU端采用CUDA的Thrust庫,將對象集U={x1,x2,…,xn}按照B={b1,b2,…bp}的取值在GPU端并行排序,生成排序后的序列T={x1′,x2′,…,xn′}和排序后的對象標號L={l1,l2,…,ln},其中li∈{1,2,…n}表示xi′唯一的標識號;
步驟3.3:在GPU端啟動CUDA的kernel核函數,使用多線程并行掃描排序后的序列T,判斷相鄰對象是否在候選的條件屬性集B上滿足不可分辨關系,生成T={x1′,x2′,…,xn′}關于B的布爾向量G={g1,g2,…,gn},其中
其中fc(x)和fc(y)分別是對象x和對象y在條件屬性c上的取值;
步驟3.4:將布爾向量G={g1,g2,…,gn}和對象標號L={l1,l2,…,ln}從GPU端拷貝到CPU端;
步驟3.5:在CPU端計算U關于候選的條件屬性集B的劃分U/Ind(B)={E1,E2,…,Ee},生成關于候選的條件屬性集B的e行n列的條件布爾矩陣Ee×n=(eij)e×n∈{0,1},其中
步驟4:計算候選的條件屬性集B的屬性重要度評價函數Θ(D|B),包括
步驟4.1:分配GPU顯存空間,將條件布爾矩陣Ee×n和決策布爾矩陣Fn×d從CPU端拷貝到GPU端;在GPU端采用CUDA的cuSPARSE稀疏矩陣運算庫,并行計算相交矩陣Ke×d=Ee×n×Fn×d=(kij)e×d,其中kij=|Ei∩Dj|,|·|表示集合的基數;
步驟4.2:將屬性重要度評價函數分解為的形式,在GPU端啟動CUDA的kernel核函數,使用多線程并行計算每個評價子函數θ(ij),包括基于正域θPR(ij)、基于Shannon熵θSCE(ij)、基于互補熵θLCE(ij)和基于組合熵θCCE(ij)評價子函數,如下:
其中Kij=Ei∩Dj,|·|表示集合的基數,d表示決策屬性的取值數量;
步驟4.3:在GPU端啟動CUDA的kernel核函數,使用多線程對所有的評價子函數θ(ij)進行并行求和操作,得到候選的條件屬性集B的屬性重要度評價函數
步驟5:初始化約簡集CAttr=C,其中CAttr為中間局部變量;對任意的條件屬性ci∈C,計算屬性重要度評價函數Θ(D|C-{ci});對任意的條件屬性ci∈C,計算條件屬性ci的內部屬性重要度Siginner(ci,C,D);如果Siginner(ci,C,D)>0,則將條件屬性ci添加到約簡集Reduct中,并且從CAttr中刪除條件屬性ci,即Reduct=Reduct∪{ci},CAttr=CAttr-{ci};
步驟6:計算屬性重要度評價函數Θ(D|Reduct),如果||Θ(D|Reduct)-Θ(D|C)||<ε,則得到最終的約簡集Reduct,否則繼續;其中ε為預先設定的閾值;
步驟7:對任意的條件屬性ci∈CAttr,計算屬性重要度評價函數Θ(D|Reduct∪{ci});對任意的條件屬性ci∈CAttr,計算條件屬性ci的外部屬性重要度Sigouter(ci,Reduct,D);選擇外部屬性重要度最高的作為最優屬性cj=argmax{Sigouter(ci,Reduct,D)};將最優屬性cj添加到約簡集Reduct中,并且從CAttr中刪除最優屬性cj對應的條件屬性ci,即Reduct=Reduct∪{ci},CAttr=CAttr-{ci},之后跳轉到步驟6。
2.如權利要求1所述的一種基于CUDA的屬性約簡方法,其特征在于,所述步驟3.5還包括,將條件布爾矩陣Ee×n保存為CSR壓縮存儲格式。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于西南交通大學,未經西南交通大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810006829.0/1.html,轉載請聲明來源鉆瓜專利網。





