本發(fā)明涉及機(jī)器學(xué)習(xí)、人工智能以及數(shù)據(jù)挖掘領(lǐng)域,具體涉及一種改進(jìn)的不確定連續(xù)屬性決策樹的構(gòu)建方法。
背景技術(shù):
決策樹研究是數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)中的一項(xiàng)重要和積極的研究課題。其所提出的算法被廣泛地應(yīng)用于實(shí)際問題當(dāng)中,如ID3,CART和C4.5,此類算法主要是研究準(zhǔn)確率的問題。隨著科學(xué)技術(shù)的進(jìn)步,近年來,不確定數(shù)據(jù)頻繁地出現(xiàn)在現(xiàn)實(shí)應(yīng)用中,包括無線傳感器網(wǎng)絡(luò)、無線射頻識(shí)別、隱私保護(hù)等領(lǐng)域。其數(shù)據(jù)特點(diǎn)是數(shù)據(jù)值并非是確定的,即表示一個(gè)數(shù)據(jù)點(diǎn),其表示方式是將多種取值作為一個(gè)整體,按照某種概率分布作為每個(gè)取值對(duì)應(yīng)出現(xiàn)可能性,其越來越頻繁的出現(xiàn)促使相關(guān)的研究得到了廣泛關(guān)注和快速發(fā)展。而傳統(tǒng)數(shù)據(jù)挖掘技術(shù)中往往忽略了數(shù)據(jù)中的不確定性,其研究模型與客觀世界不符。所以不確定數(shù)據(jù)挖掘技術(shù)對(duì)數(shù)據(jù)挖掘技術(shù)的實(shí)際應(yīng)用有著重要意義。屬性的不確定性包括離散屬性和連續(xù)屬性,在訓(xùn)練和測(cè)試的過程中,為了保證有效的評(píng)估模型,驗(yàn)證分類器的性能,數(shù)據(jù)集中的類別都是已知的。這里主要是針對(duì)于不確定連續(xù)屬性的分類與預(yù)測(cè),另外由于測(cè)量?jī)x器受精度的影響,采集的數(shù)據(jù)往往包含一定的誤差,不是完全準(zhǔn)確的。
在樹的生長過程中,一個(gè)不確定連續(xù)用例在節(jié)點(diǎn)屬性上測(cè)試時(shí)被分配到多個(gè)節(jié)點(diǎn)中,覆蓋了多個(gè)分支,然而確定用例只會(huì)按照屬性取值被確定地分配到相應(yīng)的分支,另外在建樹過程中,為了更好的避免決策樹中存在的過度擬合問題,本發(fā)明提出了一種改進(jìn)的不確定連續(xù)屬性決策樹的構(gòu)建方法。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)于解決不確定連續(xù)屬性分類與預(yù)測(cè)的問題以及提高對(duì)其分類、預(yù)測(cè)的準(zhǔn)確率問題、類的判定問題以及決策樹中過度擬合問題,提出了一種改進(jìn)的不確定連續(xù)屬性決策樹的構(gòu)建方法。
為解決上述問題,本發(fā)明是通過以下技術(shù)方案實(shí)現(xiàn)的:
一種改進(jìn)的不確定連續(xù)屬性決策樹的構(gòu)建方法,包括如下步驟:
步驟1:設(shè)不確定連續(xù)屬性訓(xùn)練集中有X個(gè)樣本,屬性個(gè)數(shù)為n,即n=(S1,S2,…Sn),同時(shí)分裂屬性Si對(duì)應(yīng)了m個(gè)類L,其中Lr∈(L1,L2…,Lm),i∈(1,2…,n),r∈(1,2…,m)。Si∈(S1,S2,…Sn),其中屬性值具有連續(xù)不確定性。
步驟2:把不確定連續(xù)數(shù)據(jù)屬性Si的屬性值Sij合并排序,根據(jù)類對(duì)不確定性數(shù)據(jù)屬性Si進(jìn)行屬性值Sij運(yùn)算,記為概率和P(Sij),對(duì)類進(jìn)行處理得每一分支屬性值的概率勢(shì)P(Sij,Lr)。
步驟3:創(chuàng)建根節(jié)點(diǎn)G。
步驟4:如果訓(xùn)練數(shù)據(jù)集為空,則返回節(jié)點(diǎn)G并標(biāo)記失敗。
步驟5:如果訓(xùn)練數(shù)據(jù)集中所有記錄都屬于同一類別,則該類型標(biāo)記節(jié)點(diǎn)G。
步驟6:如果候選屬性為空,則返回G為葉子結(jié)點(diǎn),標(biāo)記為訓(xùn)練數(shù)據(jù)集中最普通的類。
步驟7:由于連續(xù)屬性值的不確定性,根據(jù)目標(biāo)函數(shù)f(Si)從候選屬性中選擇splitSi。
步驟8:標(biāo)記節(jié)點(diǎn)G為屬性splitSi。
步驟9:由節(jié)點(diǎn)延伸出滿足條件為splitS=splitSi分支以及splitSi=splitSij子分支,如果滿足以下兩條件之一,就停止建樹,同時(shí)利用先剪支技術(shù)對(duì)決策樹實(shí)施進(jìn)一步優(yōu)化操作。
9.1這里假設(shè)Yi為訓(xùn)練數(shù)據(jù)集中splitS=splitSi的樣本集合,如果Yi為空,加上一個(gè)葉子結(jié)點(diǎn),根據(jù)設(shè)定的算法將此葉子結(jié)點(diǎn)標(biāo)記為訓(xùn)練數(shù)據(jù)集中最普通的類。
9.2此節(jié)點(diǎn)中所有例子屬于同一類。
步驟10:非9.1與9.2中情況,則遞歸調(diào)用步驟7至步驟9。
步驟11:保存改進(jìn)的連續(xù)不確定性屬性的決策樹分類器。
本發(fā)明的有益效果是:
1、構(gòu)成的決策樹更好的規(guī)避了信息偏置為數(shù)量級(jí)大的問題。
2、可以實(shí)現(xiàn)對(duì)象為不確定連續(xù)屬性的歸類和預(yù)測(cè)功能。
3、此構(gòu)建的決策樹相比較之前技術(shù)具有更高的分類精度。
4、此構(gòu)建的決策樹更適用于對(duì)實(shí)際數(shù)據(jù)挖掘問題的應(yīng)用。
5、構(gòu)建的決策樹可以更好判定不確定屬性多分支下的從屬類。
6、構(gòu)建的決策樹更好的避免了過渡擬合問題。
附圖說明
圖1為一種改進(jìn)的不確定連續(xù)屬性決策樹的構(gòu)建流程圖。
具體實(shí)施方式
為解決不確定連續(xù)屬性分類與預(yù)測(cè)的問題以及提高對(duì)其分類、預(yù)測(cè)的準(zhǔn)確率問題、類的判定問題以及決策樹中過渡擬合問題,結(jié)合圖1對(duì)本發(fā)明進(jìn)行了詳細(xì)說明,其具體實(shí)施步驟如下:
步驟1:設(shè)不確定連續(xù)屬性訓(xùn)練集中有X個(gè)樣本,屬性個(gè)數(shù)為n,即n=(S1,S2,…Sn),同時(shí)分裂屬性Si對(duì)應(yīng)了m個(gè)類L,其中Lr∈(L1,L2…,Lm),i∈(1,2…,n),r∈(1,2…,m)。Si∈(S1,S2,…Sn),其中屬性值具有不確定性。
步驟2:把不確定連續(xù)數(shù)據(jù)屬性Si的屬性值Sij合并排序,根據(jù)類對(duì)不確定連續(xù)數(shù)據(jù)屬性Si進(jìn)行屬性值Sij運(yùn)算,記為概率和P(Sij),對(duì)類進(jìn)行處理得每一分支屬性值的概率勢(shì)P(Sij,Lr)。其具體運(yùn)算過程如下:
不確定連續(xù)屬性Si,其取值P(Sij)為一個(gè)概率向量,記為
P(Sij)∈(P(Si1),P(Si2),…,P(Sik)),且所以之前那些確定的連續(xù)屬性可以看作為這一特殊情況,即屬性Si中屬性值P(Sij)=1,其他概率為0的情形。
不確定連續(xù)屬性值在每個(gè)區(qū)間上都存在最大值和最小值端點(diǎn)。這種數(shù)值表示方式是出于保護(hù)客戶隱私為目的。不確定連續(xù)屬性的處理過程是將所有出現(xiàn)的關(guān)鍵點(diǎn)按升序排列,合并重復(fù)點(diǎn),這樣屬性整個(gè)取值區(qū)間就被分割成多個(gè)子區(qū)間。每個(gè)用例的取值區(qū)間會(huì)覆蓋一個(gè)或多個(gè)子區(qū)間。
假設(shè)任意一子集區(qū)間為[α,β],則其在區(qū)間[α,β]的概率分布為:
上式f(x)為此事件發(fā)生的概率分布,具體事件具體分析,這個(gè)由相應(yīng)的專家確定,每個(gè)不確定連續(xù)屬性的概率分布函數(shù)普遍相同。
屬性Si在區(qū)間[α,β]的概率和P(Sij)為:
上式j(luò)∈(1,2,…,k),k為屬性Si對(duì)應(yīng)的屬性值個(gè)數(shù)。
根據(jù)屬性值Sij對(duì)應(yīng)的類Lr在區(qū)間[α,β]的概率勢(shì)P(Sij,Lr)為:
上式為屬性值Sij對(duì)應(yīng)的類的種類,為在屬性值Sij對(duì)應(yīng)的類中為Lr類。
P(Sij)為屬性值Sij根據(jù)類來取概率和,類L總共為m個(gè)。
步驟3:創(chuàng)建根節(jié)點(diǎn)G。
步驟4:如果訓(xùn)練數(shù)據(jù)集為空,則返回節(jié)點(diǎn)G并標(biāo)記失敗。
步驟5:如果訓(xùn)練數(shù)據(jù)集中所有記錄都屬于同一類別,則該類型標(biāo)記節(jié)點(diǎn)G。
步驟6:如果候選屬性為空,則返回G為葉子結(jié)點(diǎn),標(biāo)記為訓(xùn)練數(shù)據(jù)集中最普通的類。
步驟7:由于連續(xù)屬性值的不確定性,根據(jù)下面目標(biāo)函數(shù)f(Si)從候選屬性中選擇splitSi。其具體計(jì)算過程如下:
目標(biāo)函數(shù)f(Si):
上式Lr∈(L1,L2,…,Lc),c<m。P(Sij,Lr)為步驟2中屬性Si的屬性值Sij對(duì)應(yīng)類為Lr的概率勢(shì),j為屬性值個(gè)數(shù)。
當(dāng)選擇屬性splitSi滿足目標(biāo)函數(shù)f(Si)越大時(shí),則找到標(biāo)記節(jié)G。
步驟8:標(biāo)記節(jié)點(diǎn)G為屬性splitSi。
步驟9:由節(jié)點(diǎn)延伸出滿足條件為splitS=splitSi分支以及splitSi=splitSij子分支,如果滿足以下兩條件之一,就停止建樹,同時(shí)利用先剪支技術(shù)對(duì)決策樹實(shí)施進(jìn)一步優(yōu)化操作,其具體計(jì)算過程如下:
在建樹過程中,順序利用下列規(guī)則對(duì)樹進(jìn)行剪枝操作:
(1)
(2)P(Sij,Lr)<ε
上式為屬性值Sij中類為L的個(gè)數(shù),10%、ε為用戶設(shè)定的一個(gè)閾值,只有滿足用戶需求,才能更好的提高決策樹模型分類以及預(yù)測(cè)精度。
9.1這里假設(shè)Yi為訓(xùn)練數(shù)據(jù)集中splitS=splitSi的樣本集合,如果Yi為空,加上一個(gè)葉子結(jié)點(diǎn),根據(jù)設(shè)定的算法將此葉子結(jié)點(diǎn)標(biāo)記為訓(xùn)練數(shù)據(jù)集中最普通的類,其具體實(shí)現(xiàn)算法如下:
對(duì)于不確定連續(xù)屬性最終樹中類的確定算法:
根據(jù)步驟2中得到的P(Sij,Lr),對(duì)splitSi=splitSij子分支按P(Sij,Lr)值從大到小進(jìn)行從右到左排序,從右至左進(jìn)行下列運(yùn)算,
上式h為樹的深度,h<k,c<k。
9.2此節(jié)點(diǎn)中所有例子屬于同一類,其具體實(shí)現(xiàn)過程如下:
分支葉子節(jié)點(diǎn)的確定先對(duì)比訓(xùn)練集再由P(Sij,Lr)值大小確定,即
通過上式就可以確定葉子節(jié)點(diǎn)。
步驟10:非9.1與9.2中情況,則遞歸調(diào)用步驟7至步驟9。
步驟11:保存改進(jìn)的連續(xù)不確定性屬性的決策樹分類器。
一種改進(jìn)的不確定連續(xù)屬性決策樹的構(gòu)建方法,其偽代碼計(jì)算過程如下:
輸入:不確定連續(xù)數(shù)據(jù)訓(xùn)練樣本集X。
輸出:一種改進(jìn)的不確定連續(xù)屬性決策樹分類器。