本發(fā)明屬于信息
技術(shù)領(lǐng)域:
,具體地說,尤其設(shè)計一種基于ID3的決策樹實現(xiàn)方法及裝置。
背景技術(shù):
:隨著信息技術(shù)的飛速發(fā)展,數(shù)據(jù)收集和數(shù)據(jù)存儲技術(shù)的快速進步使得各組織機構(gòu)可以積累海量數(shù)據(jù)。這就導(dǎo)致從海量數(shù)據(jù)中提取有用的信息成為巨大的挑戰(zhàn)。由于數(shù)據(jù)量太大,無法使用傳統(tǒng)的數(shù)據(jù)分析工具和技術(shù)處理。有時,即使數(shù)據(jù)量相對較小,但由于數(shù)據(jù)本身具有一些非傳統(tǒng)特點,也不能使用傳統(tǒng)的方法處理。在另外一些情況下,面臨的問題是不能使用已有的數(shù)據(jù)分析技術(shù)來解決。因此,需要開發(fā)新的方法來進行數(shù)據(jù)處理。數(shù)據(jù)挖掘是一種技術(shù),其將傳統(tǒng)的數(shù)據(jù)分析方法與處理大量數(shù)據(jù)的復(fù)雜算法相結(jié)合,從這些大量的數(shù)據(jù)里面挖掘信息。目前,決策樹已經(jīng)成為一種重要的數(shù)據(jù)挖掘方法。在決策樹構(gòu)造中,ID3算法是最具有影響力的一種決策樹生成算法,是1986年由Quinlan提出的。Quinlan詳細闡述了決策樹和ID3算法的相關(guān)理論,其后很多專家學(xué)者對決策樹進行了深入的研究。但在實際具體的應(yīng)用過程中,ID3算法在處理不完整的訓(xùn)練數(shù)據(jù)或有歧義的訓(xùn)練數(shù)據(jù)時具有一定的缺陷。技術(shù)實現(xiàn)要素:為解決以上問題,本發(fā)明提供了一種基于ID3的決策樹實現(xiàn)方法及裝置,用于充分、高效、實用、可靠的獲取決策知識,從而實現(xiàn)數(shù)據(jù)挖掘。根據(jù)本發(fā)明的一個方面,提供了一種基于ID3的決策樹實現(xiàn)方法,包括:矩陣構(gòu)建步驟,讀入數(shù)據(jù)以構(gòu)建屬性矩陣和數(shù)據(jù)矩陣;當(dāng)前節(jié)點確定步驟,選擇根據(jù)數(shù)據(jù)矩陣計算的屬性矩陣中當(dāng)前信息增益最大值對應(yīng)的屬性作為當(dāng)前節(jié)點;子一級節(jié)點確定步驟,去除當(dāng)前節(jié)點屬性后重構(gòu)屬性矩陣,選擇屬性矩陣重構(gòu)后計算得到的信息增益最大值對應(yīng)的屬性作為當(dāng)前的子一級節(jié)點,并以該子一級節(jié)點為當(dāng)前節(jié)點重復(fù)子一級節(jié)點確定步驟;決策樹實現(xiàn)步驟,根據(jù)當(dāng)前節(jié)點及對應(yīng)的所有子一級節(jié)點實現(xiàn)決策樹。根據(jù)本發(fā)明的一個實施例,所述子一級節(jié)點確定步驟進一步包括:判斷當(dāng)前的子一級節(jié)點是否為葉節(jié)點步驟,如是則判斷該葉節(jié)點是否為有效葉節(jié)點,否則剔除該子一級節(jié)點后重構(gòu)屬性矩陣并返回子一級節(jié)點確定步驟;如該葉節(jié)點為有效葉節(jié)點,則形成決策樹的一個分支,否則剔除該子一級節(jié)點后重構(gòu)屬性矩陣并返回子一級節(jié)點確定步驟。根據(jù)本發(fā)明的一個實施例,當(dāng)判斷當(dāng)前的子一級節(jié)點為有效葉節(jié)點時還包括計算該葉節(jié)點對應(yīng)分支的支持度。根據(jù)本發(fā)明的一個實施例,剔除掉的子一級節(jié)點在并行平級的子一級節(jié)點計算完成后,剔除計算完成的子一級節(jié)點后重構(gòu)屬性矩陣并返回子一級節(jié)點確定步驟。根據(jù)本發(fā)明的一個實施例,所述決策樹實現(xiàn)步驟進一步包括:遍歷完成確定所有的并行平級的子一級節(jié)點;遍歷完成確定所有的并行平級的當(dāng)前節(jié)點,其中,如當(dāng)前節(jié)點對應(yīng)是最后屬性,則根據(jù)所有的子一級節(jié)點和當(dāng)前節(jié)點形成決策樹,否則,剔除該當(dāng)前節(jié)點屬性后重構(gòu)屬性矩陣并返回當(dāng)前節(jié)點確定步驟。根據(jù)本發(fā)明的另一個方面,還提供了一種基于ID3的決策樹實現(xiàn)裝置,包括:矩陣構(gòu)建模塊,讀入數(shù)據(jù)以構(gòu)建屬性矩陣和數(shù)據(jù)矩陣;當(dāng)前節(jié)點確定模塊,選擇根據(jù)數(shù)據(jù)矩陣計算的屬性矩陣中當(dāng)前信息增益最大值對應(yīng)的屬性作為當(dāng)前節(jié)點;子一級節(jié)點確定模塊,去除當(dāng)前節(jié)點屬性后重構(gòu)屬性矩陣,選擇屬性矩陣重構(gòu)后計算得到的信息增益最大值對應(yīng)的屬性作為當(dāng)前的子一級節(jié)點,并以該子一級節(jié)點為當(dāng)前節(jié)點在子一級節(jié)點確定模塊重復(fù)運行;決策樹實現(xiàn)模塊,根據(jù)當(dāng)前節(jié)點及對應(yīng)的所有子一級節(jié)點實現(xiàn)決策樹。根據(jù)本發(fā)明的一個實施例,所述子一級節(jié)點確定模塊通過以下方式確定子一級節(jié)點:判斷當(dāng)前的子一級節(jié)點是否為葉節(jié)點步驟,如是則判斷該葉節(jié)點是否為有效葉節(jié)點,否則剔除該子一級節(jié)點后重構(gòu)屬性矩陣并返回子一級節(jié)點確定模塊;如該葉節(jié)點為有效葉節(jié)點,則形成決策樹的一個分支,否則剔除該子一級節(jié)點后重構(gòu)屬性矩陣并返回子一級節(jié)點確定模塊。根據(jù)本發(fā)明的一個實施例,所述子一級節(jié)點確定模塊當(dāng)判斷當(dāng)前的子一級節(jié)點為有效葉節(jié)點時還包括計算該葉節(jié)點對應(yīng)分支的支持度。根據(jù)本發(fā)明的一個實施例,所述子一級節(jié)點確定模塊剔除掉的子一級節(jié)點在并行平級的子一級節(jié)點計算完成后,剔除計算完成的子一級節(jié)點后重構(gòu)屬性矩陣并返回子一級節(jié)點確定模塊。根據(jù)本發(fā)明的一個實施例,所述決策樹實現(xiàn)模塊通過以下方式實現(xiàn)決策樹:遍歷完成確定所有的并行平級的子一級節(jié)點;遍歷完成確定所有的并行平級的當(dāng)前節(jié)點,其中,如當(dāng)前節(jié)點對應(yīng)是最后屬性,則根據(jù)所有的子一級節(jié)點和當(dāng)前節(jié)點形成決策樹,否則,剔除該當(dāng)前節(jié)點屬性后重構(gòu)屬性矩陣并返回當(dāng)前節(jié)點確定模塊。本發(fā)明的有益效果:本發(fā)明一方面運用過程剪枝的思想剔除掉不完整的決策知識以及有歧義的決策知識,另一方面運用過程運算的思想在過程中完成對每條決策知識支持度的計算,具有時間和空間利用效率更高、所挖掘的知識收斂有效、更貼合實際應(yīng)用等特點,可充分、高效、實用、可靠的獲取決策知識,從而實現(xiàn)數(shù)據(jù)挖掘。本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在說明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。附圖說明為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要的附圖做簡單的介紹:圖1是根據(jù)本發(fā)明的一個實施例的方法流程圖;圖2是根據(jù)本發(fā)明的一個實施例的算法實現(xiàn)流程圖;圖3是根據(jù)本發(fā)明的一個實施例的屬性矩陣和數(shù)據(jù)矩陣程序?qū)嶋H運行截面示意圖;圖4是根據(jù)本發(fā)明的一個實施例的熵計算結(jié)果截面示意圖;圖5是根據(jù)本發(fā)明的一個實施例的矩陣重構(gòu)結(jié)果截面示意圖;圖6是根據(jù)本發(fā)明的一個實施例的另一矩陣重構(gòu)結(jié)果截面示意圖;圖7是根據(jù)本發(fā)明的一個實施例的決策輸出結(jié)果截面示意圖;圖8是根據(jù)本發(fā)明的一個實施例的另一決策輸出結(jié)果截面示意圖;圖9是根據(jù)本發(fā)明的一個實施例的又一決策輸出結(jié)果截面示意圖;圖10是根據(jù)本發(fā)明的一個實施例的未采用過程運算計算支持度所得到的結(jié)果示意圖;圖11是根據(jù)本發(fā)明的一個實施例的采用了過程運算計算支持度得到的結(jié)果示意圖。具體實施方式以下將結(jié)合附圖及實施例來詳細說明本發(fā)明的實施方式,借此對本發(fā)明如何應(yīng)用技術(shù)手段來解決技術(shù)問題,并達成技術(shù)效果的實現(xiàn)過程能充分理解并據(jù)以實施。需要說明的是,只要不構(gòu)成沖突,本發(fā)明中的各個實施例以及各實施例中的各個特征可以相互結(jié)合,所形成的技術(shù)方案均在本發(fā)明的保護范圍之內(nèi)。經(jīng)典ID3算法的核心思想是采用信息增益來度量屬性選擇,選擇分裂后信息增益最大的屬性進行分裂。該算法采用自頂向下的貪婪搜索遍歷可能的決策樹空間。具體來說,ID3算法的關(guān)鍵在于如何從訓(xùn)練樣本中確定決策樹的每個分支結(jié)點,在ID3算法中,每個結(jié)點的屬性測試標準采用信息增益的方法,利用該方法選擇信息增益最高的屬性作為當(dāng)前結(jié)點的分裂屬性測度。在ID3決策樹分類過程中,一般用多個屬性(或稱作特征)來刻畫每個實體,而每個屬性限于在數(shù)據(jù)集中相互獨立的值。ID3決策樹算法方法簡單、分類能力強,適于處理大規(guī)模的機器學(xué)習(xí)問題,是數(shù)據(jù)挖掘和機器學(xué)習(xí)領(lǐng)域中的一個有效手段。ID3算法的優(yōu)點總結(jié)如下:1)ID3決策樹算法基于信息論思想,以信息增益選擇分裂屬性結(jié)點,算法簡單,易于實現(xiàn),可以形成結(jié)點數(shù)最少的分類決策樹,并且在搜索空間上也是完備的;2)ID3決策樹算法由于基于自頂向下的遞推策略,并且算法的時間復(fù)雜度與訓(xùn)練樣本數(shù)量、屬性數(shù)量以及結(jié)點數(shù)量三者的乘積成線性關(guān)系,所以該算法的分類速度較快;3)ID3決策樹算法使用樹型結(jié)構(gòu),具有層次結(jié)構(gòu)特點,可以很容易地從數(shù)據(jù)中歸納出易于用戶理解的“如果-那么”分類規(guī)則。但是,ID3決策樹算法也存在固有的缺點:1)ID3決策樹算法的思想是基于一種貪心策略,不能增量地接受訓(xùn)練數(shù)據(jù),不適合于漸進式機器學(xué)習(xí)任務(wù);2)ID3決策樹算法在搜索過程中不進行回溯,在構(gòu)建決策樹過程中,可以收斂到局部最優(yōu),但很難收斂到全局最優(yōu);3)ID3決策樹算法基于信息論思想,該計算方式對數(shù)據(jù)中屬性值數(shù)目較多的屬性有所依賴,而屬性值較多的屬性在分類性能上不一定最好;4)當(dāng)訓(xùn)練數(shù)據(jù)不完整或是訓(xùn)練數(shù)據(jù)有歧義時,ID3決策樹算法存在一定的瑕疵,所以其在實際應(yīng)用中也受到一定限制,例如,如表1所示的訓(xùn)練數(shù)據(jù)樣本,其第13行和第14行數(shù)據(jù)除決策項之外所有的條件項全部相同,此時,使用經(jīng)典的ID3算法將會出現(xiàn)決策判決異常的現(xiàn)象,對于后續(xù)形成決策知識將會形成干擾。表1LonRanAziTypJudge1101201301401120210120130140212031012013014031204102201301401110510220130140311061032023014011207103202301403120810320130240111091032013024021201010120230140112011101202301403120121032023024011201310320230240312014103202302403110151012023024021101610220230140211017102202301403110181022013024011101910320230140212020102201302403110目前,國內(nèi)外大多針對第1)、2)、3)項缺點進行改進,在一定程度上忽視了針對第4)項缺點的研究。歸納起來,針對第4)項缺點主要采取的方法是剪枝的方法,包括先剪枝和后剪枝。其中先剪枝方法是通過提前停止樹的構(gòu)造而對樹剪枝,一旦停止,節(jié)點則成為樹葉,該樹葉持有子集樣本中出現(xiàn)最頻繁的類,但由于該樹葉不是判決條件的葉節(jié)點,因此該決策條件在很多實際應(yīng)用中是無意義的;而后剪枝方法是由完全生長的樹剪去分枝,效率較低。因此,本發(fā)明提供了一種基于ID3的決策樹實現(xiàn)方法,用于充分、高效、實用、可靠的獲取決策知識,實現(xiàn)數(shù)據(jù)挖掘。如圖1所示為根據(jù)本發(fā)明的一個實施例的方法流程圖,如圖2所示為根據(jù)本發(fā)明的一個實施例的算法流程圖,以下參考圖1和圖2來對本發(fā)明進行詳細說明。首先是步驟S110矩陣構(gòu)建步驟,讀入數(shù)據(jù)以構(gòu)建屬性矩陣和數(shù)據(jù)矩陣。具體的,在該步驟中,首先從數(shù)據(jù)源讀入數(shù)據(jù),根據(jù)讀入的數(shù)據(jù)構(gòu)建屬性矩陣和數(shù)據(jù)矩陣。如圖3所示為構(gòu)建屬性矩陣和數(shù)據(jù)矩陣的實際運行截圖,其中,Azi、Lon、Ran、Tye表示屬性矩陣中的屬性,<Azi,0>、<Lon,0>、<Ran,0>、<Tye,0>、即為屬性矩陣,<Azi,301>、<Judge,120>、<Lon,101>、<Ran,201>、<Tye,401>…………表示數(shù)據(jù)矩陣,相當(dāng)于將屬性名稱和屬性值匹配,決策項和決策值匹配,并共同構(gòu)成一個大的數(shù)據(jù)矩陣,為后續(xù)的程序運行做好數(shù)據(jù)的預(yù)處理工作。接著是步驟S120當(dāng)前節(jié)點確定步驟,選擇根據(jù)數(shù)據(jù)矩陣計算的屬性矩陣中當(dāng)前信息增益最大值對應(yīng)的屬性作為當(dāng)前節(jié)點。具體的,根據(jù)數(shù)據(jù)矩陣計算屬性矩陣中每個屬性的信息增益。部分程序?qū)嶋H運行截圖如圖4所示,在該實例中,屬性Azi的熵為0.932751,屬性Lon的熵為0.519518,屬性Ran的熵為0.966097,屬性Tye的熵為0.987567。根據(jù)計算得到的各屬性的熵值,選取熵最小的屬性,也就是選取信息增益最大的屬性Lon作為當(dāng)前節(jié)點Nd。需注意的是,決策樹是有順序的(樹干、大樹枝、小樹枝、樹葉),也就是說每次經(jīng)過信息增益的判斷排序后Azi,Lon,Ran,Tye這四個屬性項之間的順序是不能隨意更改的。接著是步驟S130子一級節(jié)點確定步驟,去除當(dāng)前節(jié)點屬性后重構(gòu)屬性矩陣,選擇屬性矩陣重構(gòu)后計算得到的信息增益最大值對應(yīng)的屬性作為當(dāng)前的子一級節(jié)點,并以該子一級節(jié)點為當(dāng)前節(jié)點重復(fù)子一級節(jié)點確定步驟。具體的,去除當(dāng)前節(jié)點屬性后重構(gòu)屬性矩陣,計算重構(gòu)后屬性矩陣中各屬性的信息增益,并選擇信息增益最大值對應(yīng)的屬性作為子一級節(jié)點。子一級節(jié)點屬性對應(yīng)的部分程序?qū)嶋H運行截圖如圖5和圖6所示,在該實例中,屬性Lon為101、102、103的數(shù)據(jù)矩陣分別如圖中所示,并選擇其中信息增益最大值所對應(yīng)的屬性作為子一級節(jié)點。部分程序?qū)嶋H運行截圖如圖4所示,在該實例中,Lon的下一級屬性Azi的熵為0,屬性Ran的熵為0.459148,屬性Tye的熵為0.333333。選取熵最小的屬性,也就是信息增益最大的屬性Azi作為下一級節(jié)點(子一級節(jié)點)。在該子一級節(jié)點確定步驟中還進一步包括判斷當(dāng)前的子一級節(jié)點是否為葉節(jié)點步驟,如是則進一步判斷該葉節(jié)點是否為有效葉節(jié)點。否則剔除該子一級節(jié)點后重構(gòu)屬性矩陣并返回子一級節(jié)點確定步驟,即該子一級節(jié)點還可以繼續(xù)分為下一級節(jié)點。如該葉節(jié)點為有效葉節(jié)點,則形成決策樹的一個分支,即該節(jié)點已經(jīng)是葉節(jié)點,那么該決策樹分支已經(jīng)形成,就不需要浪費處理器資源了。否則,即該子一級節(jié)點還可以繼續(xù)分支,則剔除該子一級節(jié)點后重構(gòu)屬性矩陣并返回子一級節(jié)點確定步驟。剔除掉的節(jié)點并不是無用節(jié)點,而是單獨保存在緩存中,不參與后續(xù)的計算,這樣可以減少后續(xù)的計算輸入,提升計算效率,等到后續(xù)的計算完成后,再將該節(jié)點前置,從而形成完成的決策樹分支。也就是剔除掉的子一級節(jié)點在并行平級的子一級節(jié)點計算完成后,剔除計算完成的子一級節(jié)點后重構(gòu)屬性矩陣并返回子一級節(jié)點確定步驟。有效葉節(jié)點就是說一方面最后的決策項是否能對應(yīng)到Judge的值,如果不能那么就肯定不是葉節(jié)點,因為決策樹最終的目的(樹葉)必須是結(jié)論項;另一方面就是后面提到的葉節(jié)點是否沖突的問題,也就是說條件A=x能夠到B=-1同時條件A=x還能得到B=1,顯然這個條件A=x是無意義的,因為它導(dǎo)致了一個沖突的結(jié)論。當(dāng)判斷當(dāng)前的子一級節(jié)點為有效葉節(jié)點時還包括計算該葉節(jié)點對應(yīng)分支的支持度。判斷子一級節(jié)點是否為葉節(jié)點及有效葉節(jié)點的過程,也即過程剪枝與否的判斷。如表1中的第13行和第14行的數(shù)據(jù)由于會產(chǎn)生矛盾決策,在程序運行的判斷過程中會直接得到判決結(jié)果無效的標志,因此直接不予錄取該條決策信息,即過程剪枝。通過過程剪枝,不僅可以大大減少數(shù)據(jù)處理的數(shù)量,還可以剔除掉不完整的決策知識以及有歧義的決策知識。最后是步驟S140決策樹實現(xiàn)步驟,根據(jù)當(dāng)前節(jié)點及對應(yīng)的所有子一級節(jié)點實現(xiàn)決策樹。如圖2所示,包括遍歷完成確定所有的并行平級的子一級節(jié)點和遍歷完成確定所有的并行平級的當(dāng)前節(jié)點,其中,如當(dāng)前節(jié)點對應(yīng)是最后屬性,則根據(jù)所有的子一級節(jié)點和當(dāng)前節(jié)點形成決策樹,否則,剔除該當(dāng)前節(jié)點屬性后重構(gòu)屬性矩陣并返回當(dāng)前節(jié)點確定步驟。具體包括以下步驟,首先判斷當(dāng)前節(jié)點的子一級節(jié)點是否遍歷完成,即判斷對所有的子一級節(jié)點均進行了以上的葉節(jié)點及有效葉節(jié)點的判斷。如是,則繼續(xù)判斷當(dāng)前節(jié)點Nd對應(yīng)的屬性是否是最后一個屬性,如是最后一個屬性則形成決策樹(部分程序?qū)嶋H運行截圖如圖7、圖8和圖9所示),否則刪除當(dāng)前節(jié)點Nd對應(yīng)的屬性,重構(gòu)屬性矩陣后返回信息增益計算步驟。如判斷子一級屬性沒有遍歷完成,則刪除該子一級屬性并重構(gòu)屬性矩陣后重新計算每個屬性的信息增益。在遍歷子一級節(jié)點形成決策樹過程中,通過判斷判斷子一級節(jié)點是否遍歷完成,可以剔除掉進行葉節(jié)點及有效葉節(jié)點判斷的子一級節(jié)點,只對剩下的子一級節(jié)點進行屬性重構(gòu)和葉節(jié)點及有效葉節(jié)點判斷,從而減少數(shù)據(jù)運算量。對當(dāng)前節(jié)點Nd對應(yīng)的屬性是否是最后一個屬性進行判斷,可以剔除掉該當(dāng)前節(jié)點Nd對應(yīng)的屬性及其子一級節(jié)點對應(yīng)的屬性,對與當(dāng)前節(jié)點Nd等級別的并行平級的其他節(jié)點屬性進行分析,從而減少數(shù)據(jù)運算量。在本發(fā)明的一個實施例中,在判斷子一級節(jié)點為有效葉節(jié)點后還包括該分支的支持度計算步驟。在形成決策樹的一個分支后,同步得到該分支的支持度,即過程運算。部分程序?qū)嶋H運行截圖如圖4所示,在該實例中,輸出的第一條決策知識,也即第一條從決策樹的根節(jié)點到葉節(jié)點的支路為0、101、301->120;各節(jié)點在決策樹中的等級分別為0、1、2;該條分支的支持度計數(shù)值為5。本發(fā)明以表1所示的訓(xùn)練數(shù)據(jù)樣本為例,采用本發(fā)明在CPU3.4GHz,內(nèi)存4GB,WindowsXPSP3,VC2008的開發(fā)環(huán)境下進行測試,并添加計時程序?qū)\行結(jié)果進行計時。其中附圖10為未采用過程運算計算支持度所得到的結(jié)果,附圖11為采用了過程運算計算支持度所得到的結(jié)果。對比圖10和圖11可知,本發(fā)明運用過程剪枝的思想有效的剔除掉了不完整的決策知識以及有歧義的決策知識;同時,運用過程運算的思想在過程中準確高效的完成對每條決策知識支持度的計算。由于本實例受數(shù)據(jù)量所限,當(dāng)數(shù)據(jù)量更大時,本發(fā)明的運行效率較傳統(tǒng)方法有明顯提升。另外,本發(fā)明具有與外部數(shù)據(jù)進行融合的接口與能力,從而可以支持多種挖掘手段的數(shù)據(jù)融合。本發(fā)明可廣泛應(yīng)用于國防體系中的預(yù)警探測、識別、監(jiān)視以及民航和通用航空領(lǐng)域的監(jiān)視、流量控制等方面,通過對歷史數(shù)據(jù)和實時的挖掘分析,優(yōu)化區(qū)域內(nèi)的管理監(jiān)視以及為作戰(zhàn)指揮控制提供決策支持。此外,本發(fā)明還可應(yīng)用于醫(yī)學(xué)、商務(wù)智能、WEB搜索等國民經(jīng)濟的各行各業(yè),為相關(guān)人員制定更加合理、明確、明智的決策提供參考。根據(jù)本發(fā)明的另一個方面,還提供了一種基于ID3的決策樹實現(xiàn)裝置,包括矩陣構(gòu)建模塊、當(dāng)前節(jié)點確定模塊、子一級節(jié)點確定模塊和決策樹實現(xiàn)模塊。其中,矩陣構(gòu)建模塊讀入數(shù)據(jù)以構(gòu)建屬性矩陣和數(shù)據(jù)矩陣;當(dāng)前節(jié)點確定模塊選擇根據(jù)數(shù)據(jù)矩陣計算的屬性矩陣中當(dāng)前信息增益最大值對應(yīng)的屬性作為當(dāng)前節(jié)點;子一級節(jié)點確定模塊去除當(dāng)前節(jié)點屬性后重構(gòu)屬性矩陣,選擇屬性矩陣重構(gòu)后計算得到的信息增益最大值對應(yīng)的屬性作為當(dāng)前的子一級節(jié)點,并以該子一級節(jié)點為當(dāng)前節(jié)點在子一級節(jié)點確定模塊重復(fù)運行;決策樹實現(xiàn)模塊根據(jù)當(dāng)前節(jié)點及對應(yīng)的所有子一級節(jié)點實現(xiàn)決策樹。在本發(fā)明的一個實施例中,子一級節(jié)點確定模塊通過以下方式確定子一級節(jié)點:判斷當(dāng)前的子一級節(jié)點是否為葉節(jié)點步驟,如是則判斷該葉節(jié)點是否為有效葉節(jié)點,否則剔除該子一級節(jié)點后重構(gòu)屬性矩陣并返回子一級節(jié)點確定模塊;如該葉節(jié)點為有效葉節(jié)點,則形成決策樹的一個分支,否則剔除該子一級節(jié)點后重構(gòu)屬性矩陣并返回子一級節(jié)點確定模塊。在本發(fā)明的一個實施例中,子一級節(jié)點確定模塊當(dāng)判斷當(dāng)前的子一級節(jié)點為有效葉節(jié)點時還包括計算該葉節(jié)點對應(yīng)分支的支持度。在本發(fā)明的一個實施例中,子一級節(jié)點確定模塊剔除掉的子一級節(jié)點在并行平級的子一級節(jié)點計算完成后,剔除計算完成的子一級節(jié)點后重構(gòu)屬性矩陣并返回子一級節(jié)點確定模塊。在本發(fā)明的一個實施例中,決策樹實現(xiàn)模塊通過以下方式實現(xiàn)決策樹:遍歷完成確定所有的并行平級的子一級節(jié)點;遍歷完成確定所有的并行平級的當(dāng)前節(jié)點,其中,如當(dāng)前節(jié)點對應(yīng)是最后屬性,則根據(jù)所有的子一級節(jié)點和當(dāng)前節(jié)點形成決策樹,否則,剔除該當(dāng)前節(jié)點屬性后重構(gòu)屬性矩陣并返回當(dāng)前節(jié)點確定模塊。雖然本發(fā)明所公開的實施方式如上,但所述的內(nèi)容只是為了便于理解本發(fā)明而采用的實施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬
技術(shù)領(lǐng)域:
內(nèi)的技術(shù)人員,在不脫離本發(fā)明所公開的精神和范圍的前提下,可以在實施的形式上及細節(jié)上作任何的修改與變化,但本發(fā)明的專利保護范圍,仍須以所附的權(quán)利要求書所界定的范圍為準。當(dāng)前第1頁1 2 3