程一芳
(山西國際商務職業學院,山西 太原 030031)
C4.5分類算法在我國是應用相對較早的分類算法之一,并且應用非常廣泛,所以為了確保其能夠滿足在對規模相對較大的數據集進行處理的過程中有更好的實用性能,對C4.5分類算法也進行了相應的改進。C4.5分類算法是假如設一個訓練集為T,在對這個訓練集建造相應的決策樹的過程中,則可以根據In-formation Gain值選擇合理的分裂節點,并且根據分裂節點的具體屬性和標準,可以將訓練集分為多個子級,然后分別用不同的字母代替,每一個字母中所含有的元組的類別一致。而分裂節點就成為了整個決策樹的葉子節點,因而將會停止再進行分裂過程,對于不滿足訓練集中要求條件的其他子集來說,仍然需要按照以上方法繼續進行分裂,直到子集所有的元組都屬于一個類別,停止分裂流程。
決策樹分類算法與統計方法和神經網絡分類算法相比較具備以下優點:首先,通過決策樹分類算法進行分類,出現的分類規則相對較容易理解,并且在決策樹中由于每一個分支都對應不同的分類規則,所以在最終進行分類的過程中,能夠說出一個更加便于了解的規則集。其次,在使用決策樹分類算法對數據挖掘中的數據進行相應的分類過程中,與其他分類方法相比,速率更快,效率更高。最后,決策樹分類算法還具有較高的準確度,從而確保在分類的過程中能夠提高工作效率和工作質量。決策樹分類算法與其他分類算法相比,雖然具備很多優點,但是也存在一定的缺點,其缺點主要體現在以下幾個方面:首先,在進行決策樹的構造過程中,由于需要對數據集進行多次的排序和掃描,因此導致在實際工作過程中工作量相對較大,從而可能會使分類算法出現較低能效的問題。其次,在使用C4.5進行數據集分類的過程中,由于只是用于駐留于內存的數據集進行使用,所以當出現規模相對較大或者不在內存的程序及數據即時無法進行運行和使用,因此,C4.5決策樹分類算法具備一定的局限性。通過對C4.5分類算法的簡介和分析可知,在使用C4.5分類算法的過程中,一定要明確數據集的具體使用特征,然后再選擇相應的分類算法,防止由于分類算法選擇不正確,而導致在后期對數據進行分類使用的過程中,出現工作效率低,工作質量差的問題,同時負責C4.5分類算法和決策樹分類算法的研究的工作人員,還應該明確現階段決策樹分類算法中存在的劣勢,并且針對這些劣勢進行相應的改進。確保C4.5決策樹分類算法能夠具備更好的適用性。
SLIQ算法是在C4.5決策樹分類算法的基礎上進行了相應改進的算法。在使用SLIQ算法的過程中,主要針對決策樹的構造階段進行了合理的改進,這里使用了預排序技術和廣度優先技術。其中,預排序技術的主要工作原理是,對于連續性的屬性來說,由于在內部的節點可以找到最好的分裂標準,因此,可以根據這一特性對訓練集進行屬性的取值和排序。但是,由于排序的過程中工作量相對較大,并且需要浪費很多的時間,所以通過SLIQ算法中的預排序技術和預排序功能,能夠減少在決策樹節點對數據進行排序過程中所需要做的工作量。預排序技術可以針對數據集中不同屬性進行相應的取值,然后根據時間的先后順序或者從小到大的順序進行合理的排序。在具體實現的過程中,必須要針對數據集中的所有數據,根據不同的屬性創立相應的屬性列表,然后每一個屬性列表中,對元組的類別進行合理的歸類。再根據不同元組類別創立類別列表的過程中,其列表的主要形式如表1所示。

表1 屬性列表和類別列表
通過表1中的數據分析可以得出,在建立屬性表和類別列表的過程中,第一列代表了數據集中屬性的取值,第二列代表了記錄的順序號。在類別列表中,第一列則代表了每一行記錄的類別,第二列代表了不同的節點編號。在算法進行實現的過程中,還要確保計算機設備能夠有較大的內存量來保存相應的列表數據。
廣度優先策略的實際使用原理是在C4.5決策樹分類算法的基礎上,對決策樹進行構造的過程中,需要按照深度優先的原則進行構造,并且要根據不同屬性列表的節點進行相應的掃描。由于在傳統決策樹構造的過程中,需要針對每一個節點都進行掃描,這樣即會浪費過多的時間,又會造成很大的工作量,而使用廣度優先策略進行決策樹構造的過程中,只需要對每一層的屬性列表進行掃描即可,這樣既提高了數據分類的效果,又可以使決策樹中的節點有最優的分裂標準。
在使用SLIQ算法的過程中,由于使用了與排序技術和廣度優先的技術,所以在數據處理的過程中能夠比C4.5決策樹分類算法具有更高的使用效率,同時也可以適用于規模更大的數據集進行分類的過程中,但是其實際使用中仍然存在一定的缺點,主要體現在以下兩個方面:一是由于需要在預排序技術使用過程中,將類別列表放入在內存中進行使用,所以這就對內存的儲存量具有較大的挑戰,而類別列表的長度和訓練集的長度是一樣的,所以這對數據集的大小進行了相應的限制,從而導致SLIQ算法在實際使用過程中也具備一定的局限性。二是由于在使用與排序技術的過程中,雖然可以極大地降低工作量,提升工作效率,但由于算法相對復雜,并且數據的記錄個數和排序算法的復雜度不呈線性關系,因此導致SLIQ算法的擴展性相對較低。
以關聯規則為基礎的分類算法主要包含CBA算法。CBA算法在進行分類的過程中主要包含兩個工作流程:第一個工作流程是通過發現又不為類別的類別關聯規則;第二個工作流程是通過對已發現的類別關聯規則進行選擇,然后通過高優先度的規則,對整個訓練集進行覆蓋。通過這種算法,在對訓練集進行掃描的過程中,只需要進行一遍掃描即可,因此,具有較高的工作效率。CBA算法主要通過關聯規則進行分類器的構造,而關聯規則的算法為aprior,通過這種算法能夠對大量交易記錄中的規則進行相應的比較,并且有利于提高分類算法的工作效率,但是使用這種分類規則時,可能會出現某些規則的遺漏現象,因此,必須要將最小的支持度設置為0。但是在設置支持度的過程中,可能會導致CBA算法的優化作用降低,因此,使結果產生的頻繁及在內存中無法顯示和容納,從而導致程序運行停止。CBA算法最大的優點是其在分類的過程中準確度相對較高,并且其發現的規則也較為全面。
以數據庫技術為基礎的分類算法主要包含MIND算法。MIND計算法是根據數據庫對用戶的定義使用的相關函數,也叫做實現發現分類規則的算法,在使用這種算法的過程中和SLIQ算法較為類似,但是,由于這種算法主要根據數據庫提供的UDF方法和語句進行決策樹的構造,所以在術的工作過程中需要對每一層建立相應的屬性為表,然后對不同的節點進行編號。使用這種方法在對決策樹進行構造的過程中,是需要對每一個不是終點的節點進行數據集的信息計算和分裂標準的數據及分裂,而通過UDF進行實現可以使數據庫系統的集成更加方便。這種算法的缺點是,由于需要使用高級語言進行分類計算,所以導致數據庫法提供相應的查詢機制,從而不能夠使查詢更加優化。
綜上所述,現階段針對數據挖掘所使用的數據分類方法相對較多,既有基于決策樹的分類方法,又有基于數據庫技術為基礎和關聯規則為基礎的分類方法,在每種分類方法使用的過程中,又都有相應的優缺點,所以在選擇分類方法時,要根據實際需求進行合理的選擇。