本發(fā)明涉及機器學(xué)習(xí)、人工智能以及數(shù)據(jù)挖掘領(lǐng)域。
背景技術(shù):
決策樹相關(guān)課題是數(shù)據(jù)挖掘和機器學(xué)習(xí)中的一項重要和積極的研究課題。所提出的算法被廣泛和成功地應(yīng)用于實際問題中,如ID3,CART和C4.5,決策樹此類經(jīng)典算法主要是研究準(zhǔn)確率的問題,生成的決策樹準(zhǔn)確率更高。在現(xiàn)有的算法中,有些只考慮測試代價,有些只考慮誤分類錯誤代價,此類被稱之為一維尺度代價敏感,其構(gòu)建的決策樹在現(xiàn)實案例中并不能解決綜合問題。例如,在代價敏感學(xué)習(xí)中除了需考慮測試代價和誤分類代價對分類的影響,還需考慮待時間代價對分類預(yù)測的影響。例如,患者可能存在測試代價約束,也有可能存在等待時間上的約束,根據(jù)不同類別需求人所具備的自身資源不同,所需的時間長短也不同,考慮各種代價單位機制不同的問題,另外在構(gòu)建決策樹過程中,采用先剪支技術(shù)來解決決策樹中過擬合問題,為了解決這種需求,本發(fā)明在之前一維和二維尺度代價基礎(chǔ)上,提出了一種多維尺度的異構(gòu)代價敏感決策樹構(gòu)建方法。
技術(shù)實現(xiàn)要素:
對于解決同時考慮測試代價、誤分類代價以及等待時間代價影響因子來構(gòu)建多維尺度決策樹過程的問題,以及為使測試成本更低、所構(gòu)成的決策樹擴展性更好、代價不同單位機制的問題,提出了一種改進的多維尺度異構(gòu)代價敏感決策樹構(gòu)建方法。
為解決上述問題,本發(fā)明是將通過以下技術(shù)方案實現(xiàn):
一種改進的多維尺度異構(gòu)代價敏感決策樹構(gòu)建方法,包括如下步驟:
步驟1:設(shè)訓(xùn)練集中有X個樣本,屬性個數(shù)為n,即n=(S1,S2,…Sn),同時分裂屬性Si對應(yīng)了m個類L,其中Lr∈(L1,L2…,Lm),i∈(1,2…,n),r∈(1,2…,m)。相關(guān)領(lǐng)域用戶設(shè)定好誤分類代價矩陣C、屬性Si、測試代價costi、相對等待時間代價wc(Si)、修正系數(shù)β,以及判定條件閾值p、q。
步驟2:創(chuàng)建根結(jié)點G。
步驟3:如果訓(xùn)練數(shù)據(jù)集為空,則返回節(jié)點G并標(biāo)記失敗。
步驟4:如果訓(xùn)練數(shù)據(jù)集中所有記錄都屬于同一類別,則該類型標(biāo)記節(jié)點G。
步驟5:如果候選屬性為空,則返回G為葉子結(jié)點,標(biāo)記為訓(xùn)練數(shù)據(jù)集中最普通的類。
步驟6:根據(jù)屬性Si的目標(biāo)函數(shù)f(Si)從候選屬性中選擇splitSi。
目標(biāo)函數(shù)f(Si):f(Si)=averagegain(Si)·D(Si)
averagegain(Si)為平均信息增益函數(shù),D(Si)為各種代價效度函數(shù)。當(dāng)選擇屬性splitSi滿足目標(biāo)函數(shù)f(Si)越大,則找到標(biāo)記節(jié)點G。
當(dāng)出現(xiàn)目標(biāo)函數(shù)f(Si)相等時,為打破平局標(biāo)準(zhǔn),則按照下面的優(yōu)先順序再進行選擇:
(1)更大的Dmc(Si)
(2)更小的ZTC(Si)
步驟7:標(biāo)記節(jié)點G為屬性splitSi。
步驟8:由節(jié)點延伸出滿足條件為splitS=splitSi分支,這里假設(shè)滿足條件的分支個數(shù)為k,此時在此節(jié)點再加一個空節(jié)點,即當(dāng)前節(jié)點的分支個數(shù)為k+1,同時利用先剪枝技術(shù)對節(jié)點進行剪枝操作,一邊建樹一邊剪枝,如果滿足以下兩條件之一,就停止建樹。
8.1 這里假設(shè)Yi為訓(xùn)練數(shù)據(jù)集中splitS=splitSi的樣本集合,如果Yi為空,加上一個葉子結(jié)點,標(biāo)記為訓(xùn)練數(shù)據(jù)集中最普通的類。
8.2 此結(jié)點中所有例子屬于同一類。
步驟9:非8.1與8.2中情況,則遞歸調(diào)用步驟6至步驟8。
步驟10:更新訓(xùn)練數(shù)據(jù)集,保存新的示例數(shù)據(jù)。
本發(fā)明有益效果是:
1、構(gòu)建的決策樹有更好的分類準(zhǔn)確度,加強了分類能力,避免了將稀有類作為普通類分類的情況。
2、考慮了多種代價影響因子和決策樹分支當(dāng)中生成了空節(jié)點,若未知事物分類結(jié)果不符合當(dāng)前模型,則可以通過空節(jié)點繼續(xù)進行下一步分類操作,此構(gòu)建的決策樹模型應(yīng)用范圍更廣,更符合實際需求。
3、形成的決策樹可以更好的規(guī)避分類過程中的偏置問題。
4、建樹過程中,利用了效度來度量測試代價以及待時間代價總代價能使誤分類代價得到最大力度的降低,以及解決了現(xiàn)實中把誤分類代價、測試代價以及 待時間代價看成同一度量單位的不合理性,形成的決策樹具有高的分類精度和降低誤分類代價、測試代價以及待時間代價。
5、利用先剪枝技術(shù)對決策樹進行剪枝提高了分類學(xué)習(xí)的效率。
6、采用組合測試順序,可以使得測試代價成本降到更低,靈活性更好。
附圖說明
圖1為一種改進的多維尺度異構(gòu)代價敏感決策樹構(gòu)建的流程圖
具體實施方式
針對于解決同時考慮測試代價、誤分類代價以及待時間代價影響因子來構(gòu)建多維尺度決策樹過程的問題、使達到的測試成本更低、所構(gòu)成的決策樹具有更好的擴展性、代價的不同單位機制問題最后生成的決策樹更好的規(guī)避了過度擬合問題,結(jié)合圖1對本發(fā)明進行了詳細說明,其具體實施步驟如下:
步驟1:設(shè)訓(xùn)練集中有X個樣本,屬性個數(shù)為n,即n=(S1,S2,…Sn),同時分裂屬性Si對應(yīng)了m個類L,其中Lr∈(L1,L2…,Lm),i∈(1,2…,n),r∈(1,2…,m)。相關(guān)領(lǐng)域用戶設(shè)定好誤分類代價矩陣C、屬性Si測試代價為costi、、wc(Si)—相對等待時間代價值、修正系數(shù)β,以及判定條件閾值p、q。
1)上述步驟1中所述的利用EP準(zhǔn)則對類L進行處理得到誤分類代價矩陣C’具體求解過程如下:
1.1)相關(guān)領(lǐng)域用戶誤分類代價矩陣C的設(shè)定:
類別標(biāo)識個數(shù)為m,則該數(shù)據(jù)的代價矩陣m×m方陣是:
其中cij表示第j類數(shù)據(jù)分為第i類的代價,如果i=j(luò)為正確分類,則cij=0,否則為錯誤分類cij≠0,其值由相關(guān)領(lǐng)域用戶給定,這里i,j∈(1,2,…,m)
步驟2:創(chuàng)建根結(jié)點G。
步驟3:如果訓(xùn)練數(shù)據(jù)集為空,則返回結(jié)點G并標(biāo)記失敗。
步驟4:如果訓(xùn)練數(shù)據(jù)集中所有記錄都屬于同一類別,則該類型標(biāo)記結(jié)點G。
步驟5:如果候選屬性為空,則返回G為葉子結(jié)點,標(biāo)記為訓(xùn)練數(shù)據(jù)集中最普通的類。
步驟6:根據(jù)屬性Si的目標(biāo)函數(shù)f(Si)從候選屬性中選擇splitSi。
目標(biāo)函數(shù)f(Si):f(Si)=averagegain(Si)·D(Si)
averagegain(Si)為平均信息增益函數(shù),D(Si)為代價效度函數(shù)
其中averagegain(Si)—平均信息增益函數(shù)公式為:
gain(Si)為屬性Si的信息增益,k為屬性Si對應(yīng)的屬性值個數(shù)。
其中D(Si)—代價效度函數(shù)公式為:
Dmc(Si)為誤分類損失代價減少函數(shù),ZTC(Si)為測試代價與相對等待時間代價的總代價函數(shù),這里測試方式采用的是組合測試順序來執(zhí)行的。
當(dāng)選擇屬性splitSi滿足目標(biāo)函數(shù)f(Si)越大,,則找到標(biāo)記結(jié)點G。
2)上述步驟6求解目標(biāo)函數(shù)f(Si),需要先求解averagegain(Si)—平均信息增益函數(shù)、D(Si)—代價效度函數(shù),具體求解過程如下:
2.1)計算averagegain(Si)—平均信息增益函數(shù)的具體過程如下:
信息增益函數(shù)gain(Si):gain(Si)=E(X)-E(Si)
上式E(X)為整個訓(xùn)練集的信息熵,E(Si)為屬性Si所對應(yīng)的信息熵;
上式表示為類Lr的個數(shù),為訓(xùn)練集對應(yīng)類Lr的概率,類的個數(shù)總共為m個。
上式k為屬性Si所對應(yīng)屬性值的個數(shù),ni為對應(yīng)屬性值為i的樣本數(shù),β為修正系數(shù)。
β這里為了避免在構(gòu)建決策樹中存在分類偏置的問題,即偏置到數(shù)量級更大的類問題。
所以
最后求得的averagegain(Si)—平均信息增益函數(shù)為如下所式:
2.2)求解D(Si)—代價效度函數(shù)的具體過程如下:
求解D(Si)—代價效度函數(shù),需要先求解Dmc(Si)—誤分類損失代價減少函數(shù)和ZTC(Si)—批量測試代價與相對等待時間代價的批量總代價函數(shù)。
2.2.1)求解Dmc(Si)—誤分類損失代價減少函數(shù)具體過程如下:
如果對事例預(yù)測的類標(biāo)簽La與真實類標(biāo)簽Lb相同,則分類正確,此時的誤分類代價C(La,Lb)=0,如果La≠Lb,則C(La,Lb)≠0。在分類過程中,通常不知道事例的實際標(biāo)簽,所以這里用誤分類代價的期望Emc來代替誤分類代價的值,即,把一個事例的類標(biāo)簽預(yù)測為La的誤分類代價的期望為:
其中,L為數(shù)據(jù)集中所有類標(biāo)簽集合,p(Lb/Si)為當(dāng)前選擇屬性Si中含有類Lb的概率,C(La,Lb)為把類Lb誤分為類La的代價花費。
分裂屬性的選擇還應(yīng)該以誤分類代價降低最大為基本原則,在沒有選擇屬性Si時有一個總的誤分類代價mc,選擇任何一個屬性進行測試,都有可能減少一定的誤分類代價,這里構(gòu)造出誤分類損失代價減少函數(shù)Dmc(Si)。
Dmc(Si)=mc-Emc(Si,La)
Mc為還沒有選擇分裂屬性Si前的所有誤分類代價的總和,這個可以根據(jù)用戶設(shè)定的誤分類代價矩陣很容易求得出來。
2.2.2)進行組合批量測試,求解ZTC(z)—批量測試代價與相對等待時間代價的批量總代價函數(shù)具體過程如下:
上式i為一次性進行組合測試的個數(shù),i∈(1,2…,a),DC1,2…a為組合測試的折扣代價,這個折扣代價由專家認定,為從組合測試屬性中找出相對等待時間代價的最大值。
屬性測試代價為TC(Si)設(shè)定如下:
TC(Si)=(1+costi)
其中costi為屬性Si測試代價,這個由用戶指定
以下具體介紹相對等待時間代價wc(Si):
等待時間代價與時間有關(guān),即我們可以用數(shù)值來描述這些時間敏感代價,如 果結(jié)果可以馬上得到,等待時間代價為0;如果結(jié)果要幾天,就由相應(yīng)專家確定一個數(shù)值。另外規(guī)定,如果一定要這個測試結(jié)果出來才能進行下一個測試,即使等待的時間不多,如半天或一天,都把這個等待時間代價設(shè)為一個很大的常數(shù),即m→∞。
等待時間同時還和當(dāng)?shù)刭Y源有關(guān),同時考慮時間代價和資源約束代價。
當(dāng)出現(xiàn)目標(biāo)函數(shù)f(Si)相等時,為打破平局標(biāo)準(zhǔn),則按照下面的優(yōu)先順序再進行選擇:
(1)更大的Dmc(Si)
(2)更小的ZTC(Si)
步驟7:標(biāo)記結(jié)點G為屬性splitS。
步驟8:由結(jié)點延伸出滿足條件為splitS=splitSi分支,同時利用先剪枝技術(shù)對葉子結(jié)點進行剪支操作,一邊建樹一邊剪枝,如果滿足以下兩條件之一,就停止建樹。
8.1 這里假設(shè)Yi為訓(xùn)練數(shù)據(jù)集中splitS=splitSi的樣本集合,如果Yi為空,加上一個葉子結(jié)點,標(biāo)記為訓(xùn)練數(shù)據(jù)集中最普通的類。
8.2 此結(jié)點中所有例子屬于同一類。
3)上述步驟8所述的先剪枝技術(shù),其判定條件具體如下:
(1)
(2)Dmc(Si)<q
為一個葉子結(jié)點類Lr的樣本數(shù),X為訓(xùn)練集總體樣本數(shù),p為用戶基于訓(xùn)練集的樣本個數(shù)百分比的最小值設(shè)定的一個適當(dāng)?shù)拈撝怠?/p>
剪枝條件首先要達到用戶指定的精度條件,同時又要滿足屬性的誤分類代價減損達到用戶指定的條件。
步驟9:非8.1與8.2中情況,則遞歸調(diào)用步驟6至步驟8。
步驟10:更新訓(xùn)練數(shù)據(jù)集,保存新的示例數(shù)據(jù)。
一種改進的多維尺度的異構(gòu)代價敏感決策樹構(gòu)建方法,其偽代碼計算過程如下:
輸入:X個樣本訓(xùn)練集,誤分類代價矩陣C、屬性Si測試代價為costi、wc(Si)—相對等待時間代價、修正系數(shù)β。
輸出:一種改進的多維尺度異構(gòu)代價敏感決策樹構(gòu)建方法。