夏春梅
(濱州學(xué)院信息工程學(xué)院 山東省濱州市 256603)
分類(lèi)是數(shù)據(jù)挖掘中的核心問(wèn)題,基于統(tǒng)計(jì)理論的樸素貝葉斯算法能夠預(yù)測(cè)所屬類(lèi)別的概率。由于簡(jiǎn)單樸素貝葉斯分類(lèi)器假設(shè)一個(gè)指定類(lèi)別中各屬性的取值是相互獨(dú)立,因此,它能夠有效減少在構(gòu)造分類(lèi)器時(shí)所需要的計(jì)算量。目前,對(duì)樸素貝葉斯算法的研究以及基于該算法的應(yīng)用非常成熟。
貝葉斯網(wǎng)絡(luò)分類(lèi)器是性能良好的分類(lèi)器,貝葉斯網(wǎng)絡(luò)分類(lèi)模型有較好的可解釋性,具有其它數(shù)據(jù)挖掘工具所不具備的優(yōu)點(diǎn),因其能夠提供關(guān)于事物的本質(zhì)的認(rèn)識(shí),可以對(duì)擾動(dòng)的目標(biāo)做出預(yù)測(cè),非常適合應(yīng)用在解決商業(yè)信用評(píng)估問(wèn)題中,是作為建立分類(lèi)模型的理想選擇。[1][2]貝葉斯網(wǎng)絡(luò)及其分類(lèi)器不像樸素貝葉斯算法的應(yīng)用那么成熟,它還正處于研究和發(fā)展之中,有大量的問(wèn)題有待于研究解決。
數(shù)據(jù)挖掘涵蓋極其廣泛的應(yīng)用領(lǐng)域,在不同的領(lǐng)域解決不同的問(wèn)題需要有針對(duì)性的研究,需要對(duì)問(wèn)題所在的領(lǐng)域有較好的理解。本文從樸素貝葉斯分類(lèi)算法和貝葉斯網(wǎng)絡(luò)分類(lèi)器出發(fā),根據(jù)具體商業(yè)應(yīng)用銀行客戶信用評(píng)估的數(shù)據(jù)挖掘要求對(duì)現(xiàn)有的算法進(jìn)行應(yīng)用,并實(shí)現(xiàn)分類(lèi)的目的。首先介紹相應(yīng)的算法模型,其次,將銀行客戶信用評(píng)估的實(shí)際問(wèn)題與貝葉斯分類(lèi)模型結(jié)合在一起,使用Weka平臺(tái)中已有的算法模型來(lái)解決實(shí)際問(wèn)題。
使用NaiveBayes算法和TAN算法對(duì)CustomerEvaluation數(shù)據(jù)集建立分類(lèi)模型。由于NaiveBayes算法可以處理數(shù)值型的屬性,在使用NaiveBayes算法時(shí),不用把每個(gè)變量都離散化成分類(lèi)型。但是TAN算法不能處理數(shù)值型的屬性,只能處理所有屬性都是分類(lèi)型的情況,所以在使用TAN算法進(jìn)行數(shù)據(jù)處理時(shí)需要將數(shù)值型的屬性離散化成分類(lèi)型。
在銀行客戶信用評(píng)估數(shù)據(jù)集CustomerEvaluation中一共有18個(gè)屬性,其中有6個(gè)屬性變量是數(shù)值型的,這些屬性的離散化需要借助Weka中的名為“Discretize”的Filter來(lái)完成。在區(qū)域中點(diǎn)擊“Choose”,出現(xiàn)一棵“Filter樹(shù)”,逐級(jí)找到“Weka.filters.unsupervised.attribute.Discretise”,單擊,“Choose”旁邊的文本框顯示“Discretize-B10-M-0.1-R first-last,單擊文本框,即可彈出新窗口,在新窗口中即可修改離散化的參數(shù)。
首 先,使 用“Explorer”打 開(kāi) 數(shù) 據(jù)“CustomerEvaluation.arff”。然后,切換到“Classify”選項(xiàng)卡,點(diǎn)擊“Choose”按鈕后即可看到很多分類(lèi)或者回歸的算法按照類(lèi)別分類(lèi)列在一個(gè)樹(shù)型框里。[3]因此銀行客戶信用評(píng)估數(shù)據(jù)集的輸入屬性中有“Binary”型和數(shù)值型的屬性,而Class變量是“Binary”的,因此需要勾選“Binary attributes”、“Numeric attributes”、“Nominal attributes”和“Binary class”選項(xiàng),點(diǎn)“OK”按鈕后回到樹(shù)形圖,發(fā)現(xiàn)不能使用的算法名稱變成紅色。之后,再選擇“bayes”下的“NaiveBayes”,算法名稱沒(méi)有變紅,表示其可以使用。最后再單擊“Choose”右邊的文本框,彈出新窗口為該算法設(shè)置各種參數(shù),點(diǎn)“More”查看參數(shù)說(shuō)明,點(diǎn)“Capabilities”查看算法適用范圍,這里所有的參數(shù)都選擇默認(rèn)值。在“Test Option”中,因?yàn)闆](méi)有設(shè)置專(zhuān)門(mén)的檢驗(yàn)數(shù)據(jù)集,為了保證生成的模型的準(zhǔn)確性而不至于出現(xiàn)過(guò)擬合問(wèn)題,因此采用10折交叉驗(yàn)證來(lái)選擇和評(píng)估模型。
可以按照類(lèi)似NaiveBayes算法處理數(shù)據(jù)的操作步驟來(lái)使用“TAN”算法對(duì)數(shù)據(jù)集進(jìn)行處理。用“Explorer”打開(kāi)數(shù)據(jù)“CustomerEvaluation.arff”,然后切換到“Classify”選項(xiàng)卡,點(diǎn)擊“Choose”按鈕后即可看到很多分類(lèi)或者回歸的算法也是一樣的按照類(lèi)別分類(lèi)列在一個(gè)樹(shù)型框里。選擇“TAN”算法,點(diǎn)擊“Choose”右邊的文本框,彈出新窗口為該算法設(shè)置各種參數(shù),這里所有的參數(shù)也都選擇默認(rèn)值。在“Test Option”中,同樣是因?yàn)闆](méi)有設(shè)置專(zhuān)門(mén)的檢驗(yàn)數(shù)據(jù)集,為保證生成的模型的準(zhǔn)確性而不至于出現(xiàn)過(guò)擬合問(wèn)題,因此同樣采用10折交叉驗(yàn)證來(lái)選擇和評(píng)估模型。
因?yàn)椴捎?0折交叉驗(yàn)證來(lái)選擇和評(píng)估模型,因此,操作上首先選擇“Cross-validation”,然后在“Folds”框里面填上“10”,之后,點(diǎn)“Start”按鈕讓算法生成決策樹(shù)模型。在“Classifier output”中會(huì)出現(xiàn)用文本表示的一棵決策樹(shù),以及對(duì)這個(gè)決策樹(shù)的誤差分析等結(jié)果。下面是使用NaiveBayes和TAN算法得到的測(cè)試結(jié)果。
NaiveBayes的測(cè)試結(jié)果:
測(cè)試結(jié)果表明“NaiveBayes”模型的準(zhǔn)確度是76.04%,“TAN”模型的準(zhǔn)確度是77.62%。當(dāng)然,如果想要再提高算法模型的準(zhǔn)確度,可以對(duì)原屬性進(jìn)行一些處理或者修改算法的參數(shù)等途徑來(lái)實(shí)現(xiàn)。
NaiveBayes算法模型的結(jié)果說(shuō)明,在銀行客戶信用評(píng)估中,在7000個(gè)有還款能力的貸款人被預(yù)測(cè)為有還款能力的有6081個(gè),被預(yù)測(cè)為正確的概率為6081/7000=86.87%,但是在有還款能力的人中有919/7000=13.13%的概率被錯(cuò)誤的預(yù)測(cè)為無(wú)還款能力;在無(wú)還款能力的3000人中,有1523/3000=50.77%的概率被錯(cuò)誤的預(yù)測(cè)為有還款能力,有1477/3000=49.23%的概率被正確預(yù)測(cè)成無(wú)還款能力。(6081+1523)是被預(yù)測(cè)為有還款能力的實(shí)例個(gè)數(shù),(6081+1523)/10000=0.7604是被預(yù)測(cè)正確的分類(lèi)實(shí)例所占比例,因此Confusion Matrix矩陣中主對(duì)角線上的數(shù)字越大副對(duì)角線上數(shù)字越小,說(shuō)明預(yù)測(cè)的準(zhǔn)確度越高。
TAN算法模型的結(jié)果說(shuō)明,在銀行客戶信用評(píng)估中,在7000個(gè)還款能力的貸款人被預(yù)測(cè)為有還款能力的有6192個(gè),被預(yù)測(cè)為正確的概率為6192/7000=88.46%,但是在有還款能力的人中有808/7000=11.54%的概率被錯(cuò)誤的預(yù)測(cè)為無(wú)還款能力;在無(wú)還款能力的3000人中,有1430/3000=47.67%的概率被錯(cuò)誤的預(yù)測(cè)為有還款能力,有1570/3000=52.33%的概率被正確預(yù)測(cè)成了無(wú)還款能力。(6192+1570)/10000=0.7762是被預(yù)測(cè)正確的分類(lèi)實(shí)例所占比例,同樣,Confusion Matrix矩陣中主對(duì)角線上的數(shù)字越大副對(duì)角線上數(shù)字越小,說(shuō)明預(yù)測(cè)的準(zhǔn)確度越高。
在分類(lèi)決策中,使得分類(lèi)出現(xiàn)錯(cuò)誤的概率達(dá)到最小是最重要的。但是在銀行客戶信用評(píng)估中,風(fēng)險(xiǎn)是比出現(xiàn)錯(cuò)誤的概率更重要更需要考慮的問(wèn)題。[4]在銀行客戶信用評(píng)估中,對(duì)客戶貸款的分類(lèi)不僅要盡最大可能的做出正確的判斷,更重要的是要考慮到如果做出了錯(cuò)誤判斷的時(shí)候會(huì)帶來(lái)什么樣的后果。在客戶信用評(píng)估中如果把“信用優(yōu)秀的客戶”錯(cuò)誤的預(yù)測(cè)為“信用極差的客戶”,這樣的后果是銀行僅僅損失一筆利息收益。但是,如果把“信用極差的客戶”錯(cuò)誤的預(yù)測(cè)為“信用優(yōu)秀的客戶”,這樣的后果是銀行可能會(huì)損失本金和利息,顯然是造成了更大的損失。[5]兩種錯(cuò)誤預(yù)測(cè)所造成的后果是有很大差別的,后者的造成的損失明顯比前者更大。[6]
在Weka的Classify菜單下,選擇分類(lèi)器后,在Test Options選項(xiàng)卡中點(diǎn)擊More options選中Output Predications可以以分類(lèi)概率百分比的形式輸出各個(gè)事例的概率分布,結(jié)果如下:
上面的列出的數(shù)據(jù)只是整個(gè)結(jié)果中的部分?jǐn)?shù)據(jù),事例是銀行客戶信用評(píng)估數(shù)據(jù)集CustomerEvaluation.arff中的真實(shí)數(shù)據(jù)。具體以事例3為例來(lái)說(shuō)明在決策風(fēng)險(xiǎn)中的應(yīng)用,事例3中預(yù)測(cè)為具有還款能力的客戶的概率為0.674,大于50%,不具有還款能力的概率0.326,所以分類(lèi)器把其計(jì)入信用優(yōu)秀客戶的類(lèi)中。如果加入風(fēng)險(xiǎn)決策評(píng)估系數(shù),假設(shè)信用優(yōu)秀的客戶被錯(cuò)誤預(yù)測(cè)為信用極差客戶的損失權(quán)重為2,信用極差客戶被錯(cuò)誤預(yù)測(cè)為信用優(yōu)秀客戶的損失權(quán)重為8,預(yù)測(cè)正確分類(lèi)損失權(quán)重為0,當(dāng)然在具體實(shí)踐中可以根據(jù)實(shí)際情況更改權(quán)值系數(shù)值。有了權(quán)重系數(shù)以后,計(jì)算事例3記入優(yōu)秀客戶類(lèi)的損失為0.674*0+0.326*8=2.608,事例3記入信用差客戶類(lèi)的損失為0.674*2+0.326*0=1.348,很顯然,事例3被記入信用差客戶類(lèi)的損失比記入信用優(yōu)秀客戶類(lèi)的損失要小的多。所以從風(fēng)險(xiǎn)決策的角度來(lái)說(shuō),根據(jù)最小風(fēng)險(xiǎn)規(guī)則,事例3記入信用差客戶類(lèi)更合適,而不應(yīng)該計(jì)入信用優(yōu)秀客戶類(lèi)中。
本文在銀行客戶信用評(píng)估數(shù)據(jù)集上對(duì)選擇的兩種貝葉斯信用評(píng)估模型進(jìn)行了10折交叉驗(yàn)證的實(shí)證研究,對(duì)兩種評(píng)估模型得到的分類(lèi)結(jié)果進(jìn)行了對(duì)比。實(shí)驗(yàn)結(jié)果表明,使用貝葉斯網(wǎng)絡(luò)分類(lèi)器進(jìn)行客戶信用分類(lèi)可以取得較高的準(zhǔn)確度,但是在對(duì)信用極差客戶的預(yù)測(cè)上沒(méi)有樸素貝葉斯分類(lèi)的好。貝葉斯網(wǎng)絡(luò)分類(lèi)器不僅具有較好的可解釋性,也可以進(jìn)行相關(guān)的改進(jìn)后具備處理混合屬性變量的能力,因此,從總體上來(lái)說(shuō),貝葉斯網(wǎng)絡(luò)分類(lèi)在信用評(píng)估上比樸素貝葉斯分類(lèi)要好,是信用分類(lèi)問(wèn)題的理想選擇,實(shí)驗(yàn)結(jié)果中較高的分類(lèi)準(zhǔn)確度說(shuō)明貝葉斯網(wǎng)絡(luò)分類(lèi)器適合用于解決信用評(píng)估這類(lèi)具有復(fù)雜非線性關(guān)系的分類(lèi)問(wèn)題。