本發(fā)明涉及機器學習、人工智能以及數(shù)據(jù)挖掘領(lǐng)域。
背景技術(shù):
決策樹相關(guān)課題是數(shù)據(jù)挖掘和機器學習中的一項重要和積極的研究課題。所提出的算法被廣泛和成功地應(yīng)用于實際問題中,如ID3,CART和C4.5,決策樹此類經(jīng)典算法主要是研究準確率的問題,生成的決策樹準確率更高。在現(xiàn)有的算法中,有些只考慮測試代價,有些只考慮誤分類錯誤代價,此類被稱之為一維尺度代價敏感,其構(gòu)建的決策樹在現(xiàn)實案例中并不能解決綜合問題。例如,在代價敏感學習中除了需考慮測試代價和誤分類代價對分類的影響,還需考慮待時間代價對分類預(yù)測的影響。例如,患者可能存在測試代價約束,也有可能存在等待時間上的約束,根據(jù)不同類別需求人所具備的自身資源不同,所需的時間長短也不同,考慮各種代價單位機制不同的問題,另外在構(gòu)建決策樹過程中,采用先剪支技術(shù)來解決決策樹中過擬合問題,為了解決這種需求,本發(fā)明在之前一維和二維尺度代價基礎(chǔ)上,提出了一種多維尺度的異構(gòu)代價敏感決策樹構(gòu)建方法。
技術(shù)實現(xiàn)要素:
針對于解決同時考慮測試代價、誤分類代價以及等待時間代價影響因子來構(gòu)建多維尺度決策樹過程的問題、考慮各種代價單位機制不同的問題,提出了一種多維尺度的異構(gòu)代價敏感決策樹構(gòu)建方法。
為解決上述問題,本發(fā)明提出了以下技術(shù)方案:
一種多維尺度的異構(gòu)代價敏感決策樹構(gòu)建方法,包括如下步驟:
步驟1:設(shè)訓練集中有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、資源調(diào)節(jié)因子∝、相對等待時間代價wc(Si)。
步驟2:創(chuàng)建根節(jié)點G。
步驟3:如果訓練數(shù)據(jù)集為空,則返回節(jié)點G并標記失敗。
步驟4:如果訓練數(shù)據(jù)集中所有記錄都屬于同一類別,則該類型標記節(jié)點G。
步驟5:如果候選屬性為空,則返回G為葉子結(jié)點,標記為訓練數(shù)據(jù)集中最 普通的類。
步驟6:根據(jù)屬性Si的目標函數(shù)f(Si)從候選屬性中選擇splitSi。
目標函數(shù)f(Si):
averagegini(Si)為信息純度函數(shù),D(Si)為各種代價效度函數(shù)。當選擇屬性splitSi滿足目標函數(shù)f(Si)越大,則找到標記節(jié)點G。
當出現(xiàn)目標函數(shù)f(Si)相等時,為打破平局標準,則按照下面的優(yōu)先順序再進行選擇:
(1)更大的Dmc(Si)
(2)更小的ZTC(Si)
步驟7:標記節(jié)點G為屬性splitSi。
步驟8:由節(jié)點延伸出滿足條件為splitS=splitSi分支,同時利用先剪枝技術(shù)對葉子結(jié)點進行剪枝操作,一邊建樹一邊剪枝,如果滿足以下兩條件之一,就停止建樹。
8.1這里假設(shè)Yi為訓練數(shù)據(jù)集中splitS=splitSi的樣本集合,如果Yi為空,加上一個葉子結(jié)點,標記為訓練數(shù)據(jù)集中最普通的類。
8.2此結(jié)點中所有例子屬于同一類。
步驟9:非8.1與8.2中情況,則遞歸調(diào)用步驟6至步驟8。
步驟10:更新訓練數(shù)據(jù)集,保存新的示例數(shù)據(jù)。
本發(fā)明有益效果是:
1、構(gòu)建的決策樹有更好分類準確度,加強了分類能力,避免了當類中有稀有類時,把它當做普通類進行分類。
2、考慮了多種代價影響因子,此生成的決策樹模型應(yīng)用范圍要更廣,更符合實際的需求。
3、在決策樹構(gòu)建過程中,避免了分裂屬性信息存在因過小而被忽略的風險。
4、建樹過程中,利用了效度來度量測試代價以及待時間代價總代價能使誤分類代價得到最大力度的降低,以及解決了現(xiàn)實中把誤分類代價、測試代價以及待時間代價看成同一度量單位的不合理性,形成的決策樹具有高的分類精度和降低誤分類代價、測試代價以及待時間代價。
5、利用先剪支技術(shù)對決策樹進行剪支提高了分類學習的速率。
附圖說明
圖1為一種多維尺度的異構(gòu)代價敏感決策樹構(gòu)建的流程圖
具體實施方式
為解決同時考慮測試代價、誤分類代價以及待時間代價影響因子來構(gòu)建多維尺度決策樹過程的問題、以及考慮各種代價單位機制不同的問題,最后生成的決策樹更好的規(guī)避了過度擬合問題,結(jié)合圖1對本發(fā)明進行了詳細說明,其具體實施步驟如下:
步驟1:設(shè)訓練集中有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、資源調(diào)節(jié)因子∝、wc(Si)—相對等待時間代價值。
1)上述步驟1中所述的誤分類代價矩陣C具體設(shè)定如下:
相關(guān)領(lǐng)域用戶誤分類代價矩陣C的設(shè)定:
類別標識個數(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:如果訓練數(shù)據(jù)集為空,則返回節(jié)點G并標記失敗。
步驟4:如果訓練數(shù)據(jù)集中所有記錄都屬于同一類別,則該類型標記節(jié)點G。
步驟5:如果候選屬性為空,則返回G為葉子結(jié)點,標記為訓練數(shù)據(jù)集中最普通的類。
步驟6:根據(jù)屬性Si的目標函數(shù)f(Si)從候選屬性中選擇splitSi。
目標函數(shù)f(Si):
averagegini(Si)為信息純度函數(shù),D(Si)為代價效度函數(shù),
其中D(Si)—代價效度函數(shù)公式為:
Dmc(Si)為誤分類損失代價減少函數(shù),ZTC(Si)為測試代價與相對等待時間代 價的總代價函數(shù)。
當選擇屬性splitSi滿足目標函數(shù)f(Si)越大,,則找到標記節(jié)點G。
2)上述步驟6求解目標函數(shù)f(Si),需要先求解averagegini(Si)—信息純度函數(shù)、D(Si)—代價效度函數(shù),具體求解過程如下:
2.1)計算averagegini(Yi)—信息純度函數(shù)的具體過程如下:
基尼指數(shù)是一種不純度分裂方法,基尼指數(shù)表示為gini(Yi),定義為:
其中p(Li/Yi)為類別Li在屬性值Yi處的相對概率,當gini(Yi)=0時,即在此結(jié)
點處所有記錄都屬于同一類別,增加一葉子結(jié)點,即信息純度越大。反之,gini(Yi)最大,得到的有用信息最小,則繼續(xù)根據(jù)目標函數(shù)f(Si)候選下一個屬性。
根據(jù)gini(Yi)可以得知averagegini(Si)
這里屬性S有j個屬性值,即屬性值為(Y1,Y2,…,Yj)
信息純度函數(shù)averagegini(Si)作用:可以提高決策樹的分類精度
2.2)求解D(Si)—代價效度函數(shù)
求解D(Si)—代價效度函數(shù),需要先求解Dmc(Si)—誤分類損失代價減少函數(shù)和ZTC(Si)—測試代價與相對等待時間代價的總代價函數(shù)。
2.2.1)求解Dmc(Si)—誤分類損失代價減少函數(shù)具體過程如下:
如果對事例預(yù)測的類標簽La與真實類標簽Lb相同,則分類正確,此時的誤分類代價C(La,Lb)=0,如果La≠Lb,則C(La,Lb)≠0。在分類過程中,通常不知道事例的實際標簽,所以這里用誤分類代價的期望Emc來代替誤分類代價的值,即,把一個事例的類標簽預(yù)測為La的誤分類代價的期望為:
其中,L為數(shù)據(jù)集中所有類標簽集合,p(Lb/Si)為當前選擇屬性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(Si)—測試代價與相對等待時間代價的總代價函數(shù)具體過程如下:
ZTC(Si)=TC(Si)+∝wc(Si)
其中∝是個調(diào)節(jié)因子,不同資源∝不同,資源越多∝越大,反之也成立。TC(Si)為屬性測試代價函數(shù),wc(Si)為相對等待時間代價函數(shù),wc(Si)由專家確定。
屬性測試代價為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→∞。
等待時間同時還和當?shù)刭Y源有關(guān),同時考慮時間代價和資源約束代價。
當出現(xiàn)目標函數(shù)f(Si)相等時,為打破平局標準,則按照下面的優(yōu)先順序再進行選擇:
(1)更大的Dmc(Si)
(2)更小的ZTC(Si)
步驟7:標記節(jié)點G為屬性splitS。
步驟8:由節(jié)點延伸出滿足條件為splitS=splitSi分支,同時利用先剪支技術(shù)對葉子結(jié)點進行剪枝操作,一邊建樹一邊剪枝,如果滿足以下兩條件之一,就停止建樹。
8.1這里假設(shè)Yi為訓練數(shù)據(jù)集中splitS=splitSi的樣本集合,如果Yi為空,加上一個葉子結(jié)點,標記為訓練數(shù)據(jù)集中最普通的類。
8.2此節(jié)點中所有例子屬于同一類。
3)上述步驟8所述的先剪枝技術(shù),其判定條件具體如下:
為一個葉子結(jié)點類Lr的樣本數(shù),X為訓練集總體樣本數(shù),p為用戶基于訓練集的樣本個數(shù)百分比的最小值設(shè)定的一個適當?shù)拈撝?。剪枝條件首先要達到用戶指定條件。
步驟9:非8.1與8.2中情況,則遞歸調(diào)用步驟6至步驟8。
步驟10:更新訓練數(shù)據(jù)集,保存新的示例數(shù)據(jù)。
一種多維尺度的異構(gòu)代價敏感決策樹構(gòu)建方法,其偽代碼計算過程如下:
輸入:X個樣本訓練集,誤分類代價矩陣C、屬性Si測試代價為costi、資源調(diào)節(jié)因子∝、wc(Si)—相對等待時間代價。
輸出:一種多維尺度的異構(gòu)代價敏感決策樹構(gòu)建方法。