(新疆財(cái)經(jīng)大學(xué),烏魯木齊市,830012) 吳珍珍
關(guān)鍵字 J48(C4.5)算法;Na?ve Bayes算法;對(duì)比分析
分類是數(shù)據(jù)挖掘中一項(xiàng)非常重要的任務(wù),在現(xiàn)實(shí)生活中有非常廣泛的應(yīng)用。例如,根據(jù)某一天的天氣狀況判斷這一天是否適合出門游玩;根據(jù)病人各項(xiàng)檢查指標(biāo)判斷是否患有某種疾??;根據(jù)電子郵件的標(biāo)題和內(nèi)容判斷其是否為垃圾郵件等,以上這些實(shí)例都體現(xiàn)出了分類的重要性。
而構(gòu)造分類器的方法有很多,常見(jiàn)的方法有決策樹(shù)、規(guī)則歸納、貝葉斯學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)以及Ensemble方法等。在這些方法中決策樹(shù)因?yàn)槠湟桌斫?、效率較高的優(yōu)點(diǎn)占有重要的地位,其中作為決策樹(shù)方法中經(jīng)典算法的ID3算法的改進(jìn)算法C4.5能夠有效地揭示需要進(jìn)行分類數(shù)據(jù)的結(jié)構(gòu)化信息。除此之外,樸素貝葉斯方法因?yàn)槠鋵?duì)不確定知識(shí)表達(dá)形式的特別以及綜合了先驗(yàn)知識(shí)的優(yōu)質(zhì)特性成為一種簡(jiǎn)單高效的分類算法,在數(shù)據(jù)挖掘中應(yīng)用廣泛。
構(gòu)造分類器的方法有很多,這里主要對(duì)決策樹(shù)方法中的ID3改進(jìn)算法C4.5以及樸素貝葉斯算法的基礎(chǔ)理論和其算法基本原理作簡(jiǎn)要介紹。
ID3算法是由羅斯昆(J.Ross Quinlan)于1975年在悉尼大學(xué)提出的一種分類預(yù)測(cè)算法。該算法以信息論為基礎(chǔ),其核心是“信息熵”,通過(guò)計(jì)算每個(gè)屬性的信息增益,認(rèn)為信息增益高的是好的屬性,每次劃分選取信息增益最高的屬性作為劃分標(biāo)準(zhǔn),并重復(fù)這個(gè)過(guò)程,最后實(shí)現(xiàn)對(duì)數(shù)據(jù)的歸納分類,生成一個(gè)能夠完美分類訓(xùn)練集的決策樹(shù)。
設(shè)D是一個(gè)包含|D|個(gè)數(shù)據(jù)樣本的集合,C為分類屬性,|C|為分類類別數(shù)目,A為一個(gè)屬性,Da為D中滿足條件A=a的樣本集合,PD(Ci)和分別表示D和Da中屬于類別C(ii=1,2,…,|C|)的樣本數(shù)所占百分比。那么由信息熵的定義得出樣本集合D對(duì)于的信息熵為:
利用屬性A對(duì)樣本集合D中進(jìn)行劃分所對(duì)應(yīng)的信息熵為:
因此,屬性A在樣本集合D中為分類所提供的信息量即信息增益為:
而C4.5算法是由羅斯昆(J.Ross Quinlan)提出的對(duì)ID3算法的一個(gè)改進(jìn)算法,它繼承了ID3算法的優(yōu)點(diǎn),并且利用信息增益率來(lái)選擇屬性,克服了用信息增益選擇屬性時(shí)偏向選擇取值多屬性的不足,且在構(gòu)造決策樹(shù)的過(guò)程中能對(duì)其進(jìn)行剪枝,使得產(chǎn)生的分類規(guī)則易于理解,準(zhǔn)確率較高。
C4.5算法利用增益比率來(lái)克服ID3算法用信息增益選擇屬性偏向選擇取值多的屬性作為決策樹(shù)樹(shù)根的問(wèn)題,那么就有:
因此,屬性A在樣本集合D中為分類所提供的信息量占比即信息增益率為:
一般情況下認(rèn)為信息增益率高的是好的屬性,每次劃分選取信息增益率最高的屬性為劃分標(biāo)準(zhǔn),并重復(fù)這個(gè)過(guò)程,直至生成一個(gè)能夠完美分類訓(xùn)練集的決策樹(shù)。
樸素貝葉斯方法是基于貝葉斯定理與特征條件獨(dú)立假設(shè)的一種分類方法,故有這種方法構(gòu)造的貝葉斯分類器基于一個(gè)簡(jiǎn)單的假定,即給定目標(biāo)值時(shí)屬性之間相互條件獨(dú)立。和決策樹(shù)相比,樸素貝葉斯方法構(gòu)造分類器發(fā)源于古典數(shù)學(xué)理論,有更加堅(jiān)實(shí)的數(shù)學(xué)基礎(chǔ),以及更穩(wěn)定的分類效率。
設(shè)為最大可能后驗(yàn)概率,D是一個(gè)包含|D|個(gè)數(shù)據(jù)樣本的集合,V為假設(shè)空間,為假設(shè)H的事前概率,為D的事前概率,這對(duì)于假設(shè)H而言是一個(gè)常數(shù)定值,假設(shè)H在樣本集D下出現(xiàn)的條件概率。那么樸素貝葉斯算法根據(jù)貝葉斯定理,在基于給定目標(biāo)值時(shí)屬性之間相互條件獨(dú)立的簡(jiǎn)單假設(shè)前提下,來(lái)預(yù)測(cè)屬性分類的結(jié)果就有:
假設(shè)樣本集D有n個(gè)屬性,記為A1,A2,…,An,其對(duì)應(yīng)的屬性值記為a1,a2,…,an;C為分類屬性,|C|為分類類別數(shù)目。并且可以預(yù)測(cè)樣本D屬于類Ci當(dāng)且僅當(dāng)有p( Ci|D )>p(Cj|D ),其中i≠j,且i,j=1,2,…,|C|。
而根據(jù)貝葉斯定理可以得到p(C i|D )=,這里p(D)對(duì)于所有類均為常數(shù),故只需要最大化p( D|Ci)p(Ci)即可。如果所屬類別的先驗(yàn)概率p(Ci)未知,則通常假設(shè)p(Ci)=p( Cj),這里≠j,且i,j=1,2,…,|C|,所以在給定目標(biāo)值時(shí)屬性之間相互條件獨(dú)立的假設(shè)前提下有p( D|Ci)=,從而得出樣本D應(yīng)屬類別。
Bank Matketing Data Set中共有4 119條數(shù)據(jù),其中規(guī)定其含有訓(xùn)練數(shù)據(jù)集2 719條,測(cè)試數(shù)據(jù)集1 400條,分類的目標(biāo)屬性為存款(定期)意愿,記為y。根據(jù)年齡(age)、工作類型(job)、婚姻狀況(marital)、教育程度(education)、拖欠款狀況(default)、房貸(housing)、個(gè)人貸(loan)等屬性來(lái)判斷其存款傾向(y)是否有意愿。
在進(jìn)行分析之前,由于weka部分分類分析算法要求屬性必須是nominal類型,故需要將數(shù)據(jù)集中原本是numeric類型的屬性進(jìn)行離散化,將其轉(zhuǎn)換成nominal類型,例如年齡(age)屬性我們定義小于等于20的記為“young”,大于50的記為“old”,大于20且小于等于50的記為“wrinkly”,從而完成了數(shù)據(jù)的轉(zhuǎn)換。(詳見(jiàn)表1)
以.csv的格式導(dǎo)入weka軟件中去,使用J48(C4.5)以及樸素貝葉斯等三種分類算法對(duì)該數(shù)據(jù)集進(jìn)行分類。(詳見(jiàn)表2)
從分類結(jié)果中可以看出,Na?ve Bayes算法的分類效果在準(zhǔn)確率與誤差率上要比J48(C4.5)算法有微小優(yōu)勢(shì)差距,且其算法分類所需要的時(shí)間也要比J48(C4.5)算法有著較明顯的優(yōu)勢(shì)。
2.2.1 J48(C4.5)算法結(jié)果分析
根據(jù)weka軟件運(yùn)行結(jié)果,J48(C4.5)算法具體分類結(jié)果(即Confusion Matrix)見(jiàn)表3。從表3可知,沒(méi)有存定期款傾向意愿且分類結(jié)果也將其劃分為沒(méi)有意愿的實(shí)例個(gè)數(shù)為1 238個(gè);沒(méi)有存定期款傾向意愿但分類結(jié)果將其劃分為有意愿的實(shí)例個(gè)數(shù)為0個(gè);有存定期款傾向意愿且分類結(jié)果也將其劃分為有意愿的實(shí)例個(gè)數(shù)為0個(gè);有存定期款傾向意愿但分類結(jié)果將其劃分為沒(méi)有意愿的實(shí)例個(gè)數(shù)為162個(gè)。
表1 部分?jǐn)?shù)據(jù)集情況
表2 不同算法針對(duì)Bank Marketing數(shù)據(jù)集的分類結(jié)果
表3 J48(C4.5)算法對(duì)Bank Marketing數(shù)據(jù)集的分類結(jié)果
表4 J48(C4.5)算法在對(duì)Bank Marketing數(shù)據(jù)集的分類效果
表5 J48(C4.5)置信因子調(diào)節(jié)對(duì)分類精度的影響情況
由上,分類正確的實(shí)例個(gè)數(shù)為1 238個(gè),分類錯(cuò)誤的實(shí)例個(gè)數(shù)為162個(gè)。所以分類的準(zhǔn)確率為88.4286%,分類的錯(cuò)誤率為11.5 714%。下面再給出J48(C4.5)算法分類的正確率、召回率和F-measure指標(biāo)的值,結(jié)果如表4所示。
由表4可知,正確率(Precision)表示實(shí)際上存定期款傾向真實(shí)有意愿(真實(shí)沒(méi)意愿)的實(shí)例個(gè)數(shù)占分類成有存定期款傾向意愿(沒(méi)意愿)的實(shí)例個(gè)數(shù)的比例;召回率(Recall)表示正確分類成有存定期款意愿(沒(méi)有存定期款意愿)的實(shí)例個(gè)數(shù)占總的有存定期款意愿(沒(méi)有存定期款意愿)的實(shí)例個(gè)數(shù)的比例;F-measure指標(biāo)則將正確率與召回率結(jié)合起來(lái),揭示兩者間的關(guān)系,衡量?jī)烧叩钠胶庑阅?,且一般情況下,計(jì)算F-measure有公式:
綜上,作為ID3算法改進(jìn)的J48(C4.5)算法,在對(duì)Bank Marketing數(shù)據(jù)集的分類預(yù)測(cè)中,J48(C4.5)的準(zhǔn)確率達(dá)到了88.4 286%,分類的速度為0.03秒,它增加了樹(shù)枝的修剪,克服了關(guān)于數(shù)據(jù)缺失和噪音數(shù)據(jù)的缺點(diǎn),該算法應(yīng)用在該數(shù)據(jù)集上所得的結(jié)果是可以接受的。但是,weka中J48(C4.5)算法有置信因子及新分類的葉子節(jié)點(diǎn)上需要含有的實(shí)例個(gè)數(shù)這兩個(gè)參數(shù)可以調(diào)節(jié)。調(diào)節(jié)其中一個(gè)參數(shù):置信因子,此時(shí)得到的分類結(jié)果如下表5所示:
由表3~5,可以得到:隨著置信因子的增加,J48算法的運(yùn)行速度、正確率都有所上升,這主要是因?yàn)橹眯乓蜃拥脑黾訉p少對(duì)樹(shù)的修剪,從而獲得一棵更加特殊的樹(shù)。
2.2.2 Na?ve Bayes算法結(jié)果分析
根據(jù)weka軟件運(yùn)行結(jié)果,Na?ve Bayes算法具體分類結(jié)果(即Confusion Matrix)如表6所示:
從表6中,可以得到:沒(méi)有存定期款傾向意愿且分類結(jié)果也將其劃分為沒(méi)有意愿的實(shí)例個(gè)數(shù)為1 227個(gè);沒(méi)有存定期款傾向意愿但分類結(jié)果將其劃分為有意愿的實(shí)例個(gè)數(shù)為11個(gè);有存定期款傾向意愿且分類結(jié)果也將其劃分為有意愿的實(shí)例個(gè)數(shù)為0個(gè);有存定期款傾向意愿但分類結(jié)果將其劃分為沒(méi)有意愿的實(shí)例個(gè)數(shù)為150個(gè)。
表6 Na?ve Bayes算法對(duì)Bank Marketing數(shù)據(jù)集的分類結(jié)果
表7 Na?ve Bayes算法在對(duì)Bank Marketing數(shù)據(jù)集的分類效果
表8 Bank Marketing數(shù)據(jù)集上不同算法的比較情況
由上,分類正確的實(shí)例個(gè)數(shù)為1239個(gè),分類錯(cuò)誤的實(shí)例個(gè)數(shù)為161個(gè)。所以分類的準(zhǔn)確率為88.5%,分類的錯(cuò)誤率為11.5%。下面再給出Na?ve Bayes算法分類的正確率、召回率和F-measure指標(biāo)的值,結(jié)果如表7所示。
數(shù)據(jù)挖掘中算法的性能比較一般可以從以下幾個(gè)方面,包括分類速度、準(zhǔn)確率、可伸縮性、強(qiáng)壯性以及可理解性等進(jìn)行比較??缮炜s性表示對(duì)于數(shù)據(jù)量很大的數(shù)據(jù)集能有效構(gòu)造模型的能力,樸素貝葉斯算法因其獨(dú)特的特質(zhì)對(duì)數(shù)據(jù)量極大且數(shù)據(jù)集樣本屬性之間關(guān)聯(lián)盡量小的數(shù)據(jù)集進(jìn)行分類的效果具有很大的優(yōu)勢(shì);強(qiáng)壯性表示模型對(duì)噪聲數(shù)據(jù)或空缺值數(shù)據(jù)正確預(yù)測(cè)的能力,從對(duì)基礎(chǔ)理論的介紹中我們已經(jīng)知道了J48(C4.5)算法對(duì)這方面的處理更好。因此,表8對(duì)所采用的算法進(jìn)行了一個(gè)簡(jiǎn)單的比較。
由表8可以得到,Na?ve Bayes算法相較J48(C4.5)算法不僅分類速度更快,對(duì)數(shù)據(jù)集分類的準(zhǔn)確率也更優(yōu)勝一籌。除此之外,對(duì)于樣本空間容量巨大的數(shù)據(jù)集也能夠比較有效的進(jìn)行分類,雖然其對(duì)數(shù)據(jù)值缺失及噪音數(shù)據(jù)等問(wèn)題的處理能力比不上J48(C4.5)算法,但在缺失數(shù)據(jù)量不大的情況下,對(duì)由于數(shù)據(jù)值缺失及噪音數(shù)據(jù)所引起的問(wèn)題是可以容忍的。因此,可以得出樸素貝葉斯Na?ve Bayes算法要比J48(C4.5)算法的分類效果更好。
隨著信息化步伐的加快,面對(duì)龐雜的數(shù)據(jù),如何提取出這些數(shù)據(jù)中未知的且具有潛在價(jià)值的信息就顯得尤為重要。利用數(shù)據(jù)挖掘技術(shù)對(duì)有用知識(shí)進(jìn)行提取能夠?yàn)槿祟愄峁┯袥Q策意義的信息。在介紹數(shù)據(jù)挖掘中分類技術(shù)基礎(chǔ)理論的基礎(chǔ)上,基于weka平臺(tái),利用分類算法中的J48(C4.5)及Na?ve Bayes算法對(duì)Bank Marketing數(shù)據(jù)集進(jìn)行分類實(shí)驗(yàn)分析,并從運(yùn)行速度、正確率、可伸縮性、強(qiáng)壯性等方面對(duì)兩種算法的分類效果進(jìn)行了對(duì)比分析,得出了Na?ve Bayes算法相較J48(C4.5)算法能得到更有效的分類結(jié)果的結(jié)論。這為銀行在對(duì)客戶相關(guān)信息的了解基礎(chǔ)上判斷該客戶是否具有存定期存款傾向的意愿具有重要意義,從而有針對(duì)性的增加意愿存定期款客戶數(shù)量,提高該銀行在銀行市場(chǎng)的競(jìng)爭(zhēng)力。