夏春梅
(濱州學(xué)院信息工程學(xué)院 山東省濱州市 256603)
分類是數(shù)據(jù)挖掘中的核心問題,基于統(tǒng)計理論的樸素貝葉斯算法能夠預(yù)測所屬類別的概率。由于簡單樸素貝葉斯分類器假設(shè)一個指定類別中各屬性的取值是相互獨立,因此,它能夠有效減少在構(gòu)造分類器時所需要的計算量。目前,對樸素貝葉斯算法的研究以及基于該算法的應(yīng)用非常成熟。
貝葉斯網(wǎng)絡(luò)分類器是性能良好的分類器,貝葉斯網(wǎng)絡(luò)分類模型有較好的可解釋性,具有其它數(shù)據(jù)挖掘工具所不具備的優(yōu)點,因其能夠提供關(guān)于事物的本質(zhì)的認(rèn)識,可以對擾動的目標(biāo)做出預(yù)測,非常適合應(yīng)用在解決商業(yè)信用評估問題中,是作為建立分類模型的理想選擇。[1][2]貝葉斯網(wǎng)絡(luò)及其分類器不像樸素貝葉斯算法的應(yīng)用那么成熟,它還正處于研究和發(fā)展之中,有大量的問題有待于研究解決。
數(shù)據(jù)挖掘涵蓋極其廣泛的應(yīng)用領(lǐng)域,在不同的領(lǐng)域解決不同的問題需要有針對性的研究,需要對問題所在的領(lǐng)域有較好的理解。本文從樸素貝葉斯分類算法和貝葉斯網(wǎng)絡(luò)分類器出發(fā),根據(jù)具體商業(yè)應(yīng)用銀行客戶信用評估的數(shù)據(jù)挖掘要求對現(xiàn)有的算法進(jìn)行應(yīng)用,并實現(xiàn)分類的目的。首先介紹相應(yīng)的算法模型,其次,將銀行客戶信用評估的實際問題與貝葉斯分類模型結(jié)合在一起,使用Weka平臺中已有的算法模型來解決實際問題。
使用NaiveBayes算法和TAN算法對CustomerEvaluation數(shù)據(jù)集建立分類模型。由于NaiveBayes算法可以處理數(shù)值型的屬性,在使用NaiveBayes算法時,不用把每個變量都離散化成分類型。但是TAN算法不能處理數(shù)值型的屬性,只能處理所有屬性都是分類型的情況,所以在使用TAN算法進(jìn)行數(shù)據(jù)處理時需要將數(shù)值型的屬性離散化成分類型。
在銀行客戶信用評估數(shù)據(jù)集CustomerEvaluation中一共有18個屬性,其中有6個屬性變量是數(shù)值型的,這些屬性的離散化需要借助Weka中的名為“Discretize”的Filter來完成。在區(qū)域中點擊“Choose”,出現(xiàn)一棵“Filter樹”,逐級找到“Weka.filters.unsupervised.attribute.Discretise”,單擊,“Choose”旁邊的文本框顯示“Discretize-B10-M-0.1-R first-last,單擊文本框,即可彈出新窗口,在新窗口中即可修改離散化的參數(shù)。
首 先,使 用“Explorer”打 開 數(shù) 據(jù)“CustomerEvaluation.arff”。然后,切換到“Classify”選項卡,點擊“Choose”按鈕后即可看到很多分類或者回歸的算法按照類別分類列在一個樹型框里。[3]因此銀行客戶信用評估數(shù)據(jù)集的輸入屬性中有“Binary”型和數(shù)值型的屬性,而Class變量是“Binary”的,因此需要勾選“Binary attributes”、“Numeric attributes”、“Nominal attributes”和“Binary class”選項,點“OK”按鈕后回到樹形圖,發(fā)現(xiàn)不能使用的算法名稱變成紅色。之后,再選擇“bayes”下的“NaiveBayes”,算法名稱沒有變紅,表示其可以使用。最后再單擊“Choose”右邊的文本框,彈出新窗口為該算法設(shè)置各種參數(shù),點“More”查看參數(shù)說明,點“Capabilities”查看算法適用范圍,這里所有的參數(shù)都選擇默認(rèn)值。在“Test Option”中,因為沒有設(shè)置專門的檢驗數(shù)據(jù)集,為了保證生成的模型的準(zhǔn)確性而不至于出現(xiàn)過擬合問題,因此采用10折交叉驗證來選擇和評估模型。
可以按照類似NaiveBayes算法處理數(shù)據(jù)的操作步驟來使用“TAN”算法對數(shù)據(jù)集進(jìn)行處理。用“Explorer”打開數(shù)據(jù)“CustomerEvaluation.arff”,然后切換到“Classify”選項卡,點擊“Choose”按鈕后即可看到很多分類或者回歸的算法也是一樣的按照類別分類列在一個樹型框里。選擇“TAN”算法,點擊“Choose”右邊的文本框,彈出新窗口為該算法設(shè)置各種參數(shù),這里所有的參數(shù)也都選擇默認(rèn)值。在“Test Option”中,同樣是因為沒有設(shè)置專門的檢驗數(shù)據(jù)集,為保證生成的模型的準(zhǔn)確性而不至于出現(xiàn)過擬合問題,因此同樣采用10折交叉驗證來選擇和評估模型。
因為采用10折交叉驗證來選擇和評估模型,因此,操作上首先選擇“Cross-validation”,然后在“Folds”框里面填上“10”,之后,點“Start”按鈕讓算法生成決策樹模型。在“Classifier output”中會出現(xiàn)用文本表示的一棵決策樹,以及對這個決策樹的誤差分析等結(jié)果。下面是使用NaiveBayes和TAN算法得到的測試結(jié)果。
NaiveBayes的測試結(jié)果:


測試結(jié)果表明“NaiveBayes”模型的準(zhǔn)確度是76.04%,“TAN”模型的準(zhǔn)確度是77.62%。當(dāng)然,如果想要再提高算法模型的準(zhǔn)確度,可以對原屬性進(jìn)行一些處理或者修改算法的參數(shù)等途徑來實現(xiàn)。
NaiveBayes算法模型的結(jié)果說明,在銀行客戶信用評估中,在7000個有還款能力的貸款人被預(yù)測為有還款能力的有6081個,被預(yù)測為正確的概率為6081/7000=86.87%,但是在有還款能力的人中有919/7000=13.13%的概率被錯誤的預(yù)測為無還款能力;在無還款能力的3000人中,有1523/3000=50.77%的概率被錯誤的預(yù)測為有還款能力,有1477/3000=49.23%的概率被正確預(yù)測成無還款能力。(6081+1523)是被預(yù)測為有還款能力的實例個數(shù),(6081+1523)/10000=0.7604是被預(yù)測正確的分類實例所占比例,因此Confusion Matrix矩陣中主對角線上的數(shù)字越大副對角線上數(shù)字越小,說明預(yù)測的準(zhǔn)確度越高。
TAN算法模型的結(jié)果說明,在銀行客戶信用評估中,在7000個還款能力的貸款人被預(yù)測為有還款能力的有6192個,被預(yù)測為正確的概率為6192/7000=88.46%,但是在有還款能力的人中有808/7000=11.54%的概率被錯誤的預(yù)測為無還款能力;在無還款能力的3000人中,有1430/3000=47.67%的概率被錯誤的預(yù)測為有還款能力,有1570/3000=52.33%的概率被正確預(yù)測成了無還款能力。(6192+1570)/10000=0.7762是被預(yù)測正確的分類實例所占比例,同樣,Confusion Matrix矩陣中主對角線上的數(shù)字越大副對角線上數(shù)字越小,說明預(yù)測的準(zhǔn)確度越高。
在分類決策中,使得分類出現(xiàn)錯誤的概率達(dá)到最小是最重要的。但是在銀行客戶信用評估中,風(fēng)險是比出現(xiàn)錯誤的概率更重要更需要考慮的問題。[4]在銀行客戶信用評估中,對客戶貸款的分類不僅要盡最大可能的做出正確的判斷,更重要的是要考慮到如果做出了錯誤判斷的時候會帶來什么樣的后果。在客戶信用評估中如果把“信用優(yōu)秀的客戶”錯誤的預(yù)測為“信用極差的客戶”,這樣的后果是銀行僅僅損失一筆利息收益。但是,如果把“信用極差的客戶”錯誤的預(yù)測為“信用優(yōu)秀的客戶”,這樣的后果是銀行可能會損失本金和利息,顯然是造成了更大的損失。[5]兩種錯誤預(yù)測所造成的后果是有很大差別的,后者的造成的損失明顯比前者更大。[6]
在Weka的Classify菜單下,選擇分類器后,在Test Options選項卡中點擊More options選中Output Predications可以以分類概率百分比的形式輸出各個事例的概率分布,結(jié)果如下:


上面的列出的數(shù)據(jù)只是整個結(jié)果中的部分?jǐn)?shù)據(jù),事例是銀行客戶信用評估數(shù)據(jù)集CustomerEvaluation.arff中的真實數(shù)據(jù)。具體以事例3為例來說明在決策風(fēng)險中的應(yīng)用,事例3中預(yù)測為具有還款能力的客戶的概率為0.674,大于50%,不具有還款能力的概率0.326,所以分類器把其計入信用優(yōu)秀客戶的類中。如果加入風(fēng)險決策評估系數(shù),假設(shè)信用優(yōu)秀的客戶被錯誤預(yù)測為信用極差客戶的損失權(quán)重為2,信用極差客戶被錯誤預(yù)測為信用優(yōu)秀客戶的損失權(quán)重為8,預(yù)測正確分類損失權(quán)重為0,當(dāng)然在具體實踐中可以根據(jù)實際情況更改權(quán)值系數(shù)值。有了權(quán)重系數(shù)以后,計算事例3記入優(yōu)秀客戶類的損失為0.674*0+0.326*8=2.608,事例3記入信用差客戶類的損失為0.674*2+0.326*0=1.348,很顯然,事例3被記入信用差客戶類的損失比記入信用優(yōu)秀客戶類的損失要小的多。所以從風(fēng)險決策的角度來說,根據(jù)最小風(fēng)險規(guī)則,事例3記入信用差客戶類更合適,而不應(yīng)該計入信用優(yōu)秀客戶類中。
本文在銀行客戶信用評估數(shù)據(jù)集上對選擇的兩種貝葉斯信用評估模型進(jìn)行了10折交叉驗證的實證研究,對兩種評估模型得到的分類結(jié)果進(jìn)行了對比。實驗結(jié)果表明,使用貝葉斯網(wǎng)絡(luò)分類器進(jìn)行客戶信用分類可以取得較高的準(zhǔn)確度,但是在對信用極差客戶的預(yù)測上沒有樸素貝葉斯分類的好。貝葉斯網(wǎng)絡(luò)分類器不僅具有較好的可解釋性,也可以進(jìn)行相關(guān)的改進(jìn)后具備處理混合屬性變量的能力,因此,從總體上來說,貝葉斯網(wǎng)絡(luò)分類在信用評估上比樸素貝葉斯分類要好,是信用分類問題的理想選擇,實驗結(jié)果中較高的分類準(zhǔn)確度說明貝葉斯網(wǎng)絡(luò)分類器適合用于解決信用評估這類具有復(fù)雜非線性關(guān)系的分類問題。