-
當前位置:首頁 > 創(chuàng)意學院 > 技術 > 專題列表 > 正文
模型評估的基本方法
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關于模型評估的基本方法的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關鍵詞,就能返回你想要的內(nèi)容,越精準,寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務客戶遍布全球各地,如需了解SEO相關業(yè)務請撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、一起來讀西瓜書:第二章 模型評估與選擇
1. 章節(jié)主要內(nèi)容(遇到不清楚的概念請在第二節(jié)基礎知識中找尋解釋)
在第一章緒論中,我們知道要根據(jù)具體的問題選擇具體的算法和歸納偏好。那么我們怎么判定我們的選擇是正確的呢?這就需要擁有一套規(guī)范的模型評估與選擇方法論了。
1)首先,我們要理解機器學習為什么需要一套模型評估與選擇方法論?(經(jīng)驗誤差與過擬合)
在前一章的學習中,我們知道機器學習是對數(shù)據(jù)集的泛化過程,即從輸入的數(shù)據(jù)中歸納出一套能適用于所有潛在樣本的“普遍規(guī)律”。可因為訓練數(shù)據(jù)不夠充分,機器學習出來的模型并沒辦法涵蓋所有的情況,這就會導致學習器的實際預測輸出與樣本的真實輸出之間存在“誤差”。
學習器在訓練集上的誤差稱為“經(jīng)驗誤差”,在新樣本上的誤差稱為“泛化誤差”。很明顯,要使得分類器盡可能的有用,我們應該要讓泛化誤差僅可能的小??上г诂F(xiàn)實環(huán)境中,我們很難知道新樣本是什么樣的,所以我們實際能做的只有努力使經(jīng)驗誤差最小化。
說到這里,也許有的心急的同學已經(jīng)迫不及待的去將算法設計的盡可能百分百的滿足所有訓練樣本了,可卻忘了學習器真正要達到的是泛化誤差盡可能小,而不是目前的折中方案降低經(jīng)驗誤差。而在降低經(jīng)驗誤差的道路上,駐守著機器學習領域最大的攔路虎之一:“過擬合”
“過擬合”是指學習器對訓練樣本學的太好了,導致泛化程度不夠(還記得機器學習就是一個泛化過程嗎),沒法適應新的數(shù)據(jù)樣本。與之相反的還有一個“欠擬合”的概念,就是對訓練樣本中的一般規(guī)律都沒學習好。舉個例子,你通過姚明這個訓練樣本來學習一個人類判斷器,如果你將身高兩米二十以上作為判斷是否是人的依據(jù),那就是過擬合了;而如果你沒有“直立行走”這樣的特征都沒有找出來作為判斷是否是人的標準,那就是欠擬合了。
上邊例子是我自己想的,下邊貼出書中一個更容易理解的例子來幫助大家理解吧:
所以,我們知道了吧,我們?yōu)槭裁葱枰惶啄P驮u估與選擇的方法論呢?因為我們的訓練數(shù)據(jù)沒法真正代表真實的樣本空間,而泛化誤差無法直接獲得,經(jīng)驗誤差又因為過擬合的存在而不適合作為標準,所以我們才需要一套模型評估與選擇的方法論
2)我們知道了為什么要對模型進行評估,那么在不知道泛化誤差的情況下,我們該如何進行評估呢?
一個合理的思路是:既然我們沒法拿到新樣本來進行泛化誤差計算,那么我們可以從訓練樣本中取出一部分來,假裝它是一組新樣本,并用這些樣本計算出來的誤差作為泛化誤差的近似。這組選出來的樣本被稱為“測試集”,測試集上的誤差被稱為測試誤差。(我們學習本書的一個主要目的是學會機器學習領域的脈絡和背后邏輯,這種評估思路是科學研究領域的一個常用思路。領悟這種思路有助于我們解決其它領域上的問題)
不過我們需要注意一點,那就是測試集應該盡量不與訓練集重合,否則測試集計算出的誤差將沒法準確代表該學習器的泛化能力。
基于這個考慮,書中列出了以下幾種把包含m個樣例的數(shù)據(jù)集D劃分為訓練集S和測試集T的辦法(只介紹中心思想,具體內(nèi)容請查看書中原文)
[1]留出法(hold-out)
直接將D劃分為互斥的兩部分S和T,在S上訓練出模型后,用T來評估測試誤差
[2]交叉驗證法(cross validation)
將D劃分為互斥的k個子集,每次訓練用其中(k-1)個數(shù)據(jù),用剩下的一個作為測試集。這樣就能獲得k組訓練/測試集,對這k組分別進行訓練和測試,最終返回k個測試結果的均值
[3]自助法(bootstrapping)
每次從D中隨機復制一個樣本到D1中,重復m次,會得到一個擁有m個數(shù)據(jù)樣本的D1數(shù)據(jù)集。顯然,D中的一部分數(shù)據(jù)會多次出現(xiàn)在D1中,而另一部分樣本不出現(xiàn)。根據(jù)平均分布概率計算,大約有36.8%的數(shù)據(jù)不會被復制到D1中
[4]注意點
訓練/測試集的劃分要盡可能保持數(shù)據(jù)分布一致性
單詞劃分往往不夠穩(wěn)定可靠,一般要采用若干次隨機劃分、重復進行實驗評估后取平均值作為評估結果
訓練/測試集的劃分比例沒有完美答案,訓練樣本多會使得模型更接近D,測試樣本多會使得評估結果更可靠,這其中的取舍因人/場景而異。常見的訓練/測試劃分比例是2:1~4:1
[5]調(diào)參
不同的參數(shù)其實就代表著不同的模型了。一般參數(shù)分兩種:一類是算法的參數(shù),亦稱“超參數(shù)”,如聚類要分的簇數(shù)量k;一類是模型的參數(shù),如神經(jīng)網(wǎng)絡中每個節(jié)點的權重。前者多為人工選擇一組候選,后者是讓機器自己學習。
調(diào)參是機器學習的重點,也是決定模型性能的關鍵。一般調(diào)參過程中,會將訓練數(shù)據(jù)再次劃分為訓練集和驗證集(validation set)。具體包含關系如下:
(數(shù)據(jù)集 (訓練數(shù)據(jù)(訓練集)(驗證集)) (測試集))
[6]適用性
自助法在數(shù)據(jù)集較小、難以有效劃分訓練/測試集時很有用
自助法產(chǎn)生的數(shù)據(jù)集改變了初始數(shù)據(jù)集的分布,這會引入估計偏差。因此,在初始數(shù)據(jù)量足夠時,留出法和交叉驗證法更常用一些
3)在上一節(jié)了解了什么是有效可行實驗評估方法,接下來我們需要了解一下具體的衡量模型泛化能力的評價標準,即性能度量(performance measure)
性能度量反映了任務需求,使用不同的性能度量會導致對模型的評判結果不同。這意味著模型的“好壞”是相對的,什么樣的模型是好的,不僅取決于算法和數(shù)據(jù),還決定于任務需求。
回歸任務中最常用的性能度量是“均方誤差”,即用模型的輸出與實際輸出計算輸出結果的方差。本章節(jié)介紹了多種性能度量,請大伙在下邊基礎知識章節(jié)中查看具體含義,在這里我只總結描述這些指標的具體使用(因為書本中的公式介紹比較清楚,我在這里只記錄每種度量的意思,詳細公式請小伙伴們?nèi)局胁榭矗?/p>
本章節(jié)介紹了很多性能度量指標,我這里選擇其中的 查準率、查全率 進行重點介紹,以供小伙伴們對性能度量有著更清晰的認識:
從上可知查準率和查全率是一對矛盾的度量,一般情況下當一方增高時,另一方會下降,而決定這組度量升高下降的因素是學習器的分類閥值。舉個例子大家就能理解:
假設有10個西瓜,6個好瓜,4個壞瓜。我們將這十個瓜按照預測結果排序,最可能是好瓜的排在前頭,最不可能的排在最后,然后控制學習器的分類閥值來依次逐個把樣本作為好瓜來進行預測,則可以計算出不同的閥值時的P和R如下表所示:
由上邊例子可以看到,P和R的值也基本滿足了一方升高,另一方下降的狀況,通常只有在一些簡單的任務(比如我舉的這個)中,才可能使查全率和查準率都很高。以查準率為縱軸、查全率為橫軸作圖,就得到了查準率-查全率曲線,簡稱“P-R曲線”。
在進行比較時,若一個學習器的P-R曲線被另一個學習器的曲線完全“包住”,則可斷言后者的性能優(yōu)于前者。當曲線有相交時,很難斷言兩者的優(yōu)劣。真要判別時,“平衡點”(Break-Even Point)是一個不錯的度量方法。下圖是一個具體的示意圖:
查準率顧名思義更關注的是預測的準確性(預測正確的比例)、查全率更關注的是預測的全面性(預測正確的個數(shù))。
4)有了實驗評估方法和性能度量,剩下的就是要好好研究研究如何應用方法和度量指標去對學習器的性能進行評估比較了
研究怎么來做“比較”是很有必要的,因為第一,我們要的是泛化性能,但是能用的只是測試性能;第二,測試性能和測試集的選擇有很大關系;第三,有的機器學習算法本身也有隨機性,對同一測試集的多次測試結果也會不同。
為了解決這些問題,統(tǒng)計假設檢驗(hypothesis test)為我們提供了重要的依據(jù)。
假設檢驗中的“假設”是對學習器泛化錯誤率分布的某種猜想或判斷,然后通過假設的驗證結果來對不同的學習器或模型的性能進行判斷。比如假設“學習器A和B性能相同”,當該假設被拒絕時,說明學習器A和B具有顯著差異,這時候錯誤率較低的學習器性能較優(yōu)。
假設檢驗的具體邏輯和使用方法是這樣的(這里只總結計算邏輯,詳細的概念、公式等請查看專業(yè)書籍):
[1]設定一個假設,比如“一個機器學習真正的泛化錯誤率不大于0.3”
[2]設定一個置信概率“顯著度a”,a的一般取值為0.05、0.1;a代表的意思是當我們的假設成立的概率在(1-a,1]的范圍內(nèi)時,我們認為是成立的。
[3]計算使假設在置信范圍內(nèi)成立的最大值是多少,比如根據(jù)上邊[1]中的假設,要使泛化錯誤率不大于0.3成立,即泛化錯誤率小于0.3的概率大于(1-a)。要計算這個,我們要算出要使錯誤率大于0.3的概率之和小于a時的最大泛化錯誤率是多少。
[4]比較計算出的滿足假設的最大值和我們實際計算出的值,如果我們實際計算出來的錯誤率已經(jīng)大于最大可能的錯誤率了,說明假設不成立。
[5]在這里的假設中,假設不成立說明我們的學習器錯誤率要大于0.3啊,這是個很爛的學習器,我們還需要繼續(xù)調(diào)優(yōu)。
在實際實驗時,我們會多次使用留出法或交叉驗證法進行多次訓練/測試,那么我們實際上會得到多個測試錯誤率(這里假設為k個)。我們可以通過求這些錯誤率的平均和方差來將假設檢驗轉換為自由度為k-1的 t 分布。通過查詢 t 檢驗常用臨界表可以很方便的計算出假設是否成立。
書中提到的交叉驗證 t 檢驗、Friedman檢驗與Nemenyi后續(xù)檢驗都是基于一樣的假設檢驗流程的稍微變化。其中交叉驗證 t 檢驗是針對兩種學習器之間性能的比較,F(xiàn)riedman檢驗與Nemenyi后續(xù)檢驗是針對多個學習器之間性能的比較。在這里就不一一介紹了。
5)對學習算法除了通過實驗估計其泛化性能,我們還需要理解“為什么”具有這樣的性能,“偏差與方差分解”(bias-variance decomposition)是解釋學習算法泛化性能的一種重要工具
省略具體的算法和公式推導過程,偏差與方差分解是對學習算法的期望泛化錯誤率的分解,分解結果是下邊這個重要的公式
也就是說,泛化誤差可分解為偏差、方差與噪聲之和。
其中,偏差度量了學習算法的期望預測與真實結果的偏離程度,即刻畫了學習算法的擬合能力;方差度量了同樣大小的訓練集的變動所導致的學習性能的變化,即刻畫了數(shù)據(jù)擾動所帶來的影響;噪聲則表達了在當前任務上任何學習算法所能達到的期望泛化誤差的下界,即刻畫了學習問題本身的難度。
偏差-方差分解說明,泛化性能是由學習算法的能力、數(shù)據(jù)的充分性以及學習任務本身的難度所共同決定的。
一般來說,偏差與方差是有沖突的。要使偏差小則需要算法對數(shù)據(jù)充分擬合,這就有可能會導致過擬合,這樣對新樣本的適應性差,就會導致方差變高。反之亦然,擬合過低,偏差較大,但是方差會相對較低。
2. 基本知識
1)概念
錯誤率(error rate):m個樣本中a個錯誤,則錯誤率為 E = a/m
精度(accuracy):精度=1 - a/m
誤差(error):實際預測輸出與樣本的真實輸出之間的差異。在訓練集上的誤差稱為訓練誤差(training error)或 經(jīng)驗誤差(empirical error),在新樣本上的誤差稱為“泛化誤差”(generalization error)
過擬合(overfitting):學習器把訓練樣本學得太好了,把訓練樣本中的特殊特征當作了普遍規(guī)律,導致泛化性能下降
欠擬合(underfitting):與過擬合相反,對訓練樣本中的一般規(guī)律都沒有學好
測試集(testing set):訓練樣本中提取出來的作為測試學習器對新樣本判別能力的一部分數(shù)據(jù)。測試集數(shù)據(jù)應該盡可能與訓練樣本不同
測試誤差(testing error):在測試集上的誤差
2)性能度量指標概念
[1]錯誤率與精度
分類任務中最常用的兩種性能度量,其中錯誤率是分類錯誤的樣本數(shù)占樣本總數(shù)的比例。精度是分類正確的樣本數(shù)占樣本總數(shù)的比例。
[2]查準率、查全率與F1
查準率(precision):被模型預測為正的樣本中,真正為正的樣本比例(被預測為好瓜的西瓜中,真的是好瓜的西瓜比例)
查全率(recall):在所有正的樣本上,被學習器預測為正的樣本比例(在所有好瓜中,被學習器正確識別的好瓜比例)
F1:(2x查準率x查全率)/(查準率+查全率)。 F1是基于查準率和查全率的調(diào)和平均。
(查準率和查全率的概念不難理解,但是意思比較相近,看過一段時間之后老是會弄混。在讀論文時,很多時候是用precision和recall來進行性能度量,所以將熟記這兩個指標還是十分必要的)
“平衡點”(Break-Even Point):“查準率=查全率”時的取值。
[3]ROC與AUC
ROC:“受試者工作特征”(receiver operating characteristic)曲線,與P-R 曲線類似,只不過取用“真正利率”(TPR )作為縱軸,“假正例率”(FPR)作為橫軸
[4]代價敏感錯誤率與代價曲線
代價敏感錯誤率代表數(shù)據(jù)的平均總體代價;代價曲線詳情見書本
3)假設檢驗
基于假設檢驗結果我們可推斷出,若在測試集上觀察到學習器A比B好,則A的泛化性能是否在統(tǒng)計意義上優(yōu)于B,以及這個結論的把握有多大。
4)偏差與方差
偏差-方差分解是對學習算法的期望泛化錯誤率進行的分解。泛化誤差可分解為偏差、方差與噪聲之和。
其中,偏差度量了學習算法的期望預測與真實結果的偏離程度,即刻畫了學習算法的擬合能力;方差度量了同樣大小的訓練集的變動所導致的學習性能的變化,即刻畫了數(shù)據(jù)擾動所帶來的影響;噪聲則表達了在當前任務上任何學習算法所能達到的期望泛化誤差的下界,即刻畫了學習問題本身的難度。
3. 總結
泛化誤差無法獲得,經(jīng)驗誤差因為過擬合的存在而不適合作為標準,導致我們需要專門的模型評估方法來測量學習器的效果
專門的模型評估方法是通過從數(shù)據(jù)集中選取一部分數(shù)據(jù)作為測試集來對訓練出的模型進行驗證,以測試誤差來近似泛化誤差實現(xiàn)的
測試誤差體現(xiàn)在具體的性能度量指標上,我們要根據(jù)具體情況選擇對應的指標
假設檢驗是我們對學習器性能進行比較的有效方法
泛化性能是由學習算法的能力、數(shù)據(jù)的充分性以及學習任務本身的難度所共同決定的
(額外閱讀)數(shù)據(jù)比算法要更重要的一個例子:對一批數(shù)據(jù)使用高明的算法,比不上用普通算法但是引入一部分外部數(shù)據(jù)源的效果要好( http://anand.typepad.com/datawocky/2008/03/more-data-usual.html )
具體的章節(jié)思路請參考下圖理解:
二、風險量化評估模型有哪些?
1.風險量化評估模型主要有KMV模型、JP摩根的VAR模型、RORAC模型和EVA模型。
2.風險量化評估模型主要有KMV模型、JP摩根的VAR模型、RORAC模型和EVA模型:
1)KMV——以股價為基礎的信用風險模型 歷史上,銀行在貸款決策時,曾經(jīng)長時間忽視股票的市價。KMV模型基于這樣一個假設——公司股票價格的變化為企業(yè)信用度的評估提供了可靠的依據(jù)。從而,貸款銀行就可以用這個重要的風險管理工具去處理金融市場上遇到的問題了。盡管很少有銀行在貸款定價中將KMV模型作為唯一的信用風險指示器,但非常多的銀行將其用為信貸風險等級的早期報警工具。
2)JP摩根信貸風險資產(chǎn)組合模型——VAR 1997年,JP摩根推出了信貸風險資產(chǎn)的組合模型——信用矩陣,該模型引進了新的風 險管理理念。即根據(jù)信用質(zhì)量的變動及時評級資產(chǎn)價值發(fā)生損失的可能性,它反映的主要問題是:如果明年情況不好,我的資產(chǎn)會有出現(xiàn)什么損失。
3)RAROC模型:RAROC為每筆交易分配一種“資本費用”,其數(shù)量等于該交易在一年內(nèi)的預期最大損失(稅后,99%的置信水平)。交易的風險越高,需占用的資本越多,要求其獲得的現(xiàn)金流或收益也越多。RAROC可以廣泛應用于銀行管理,如利率風險管理、匯率風險管理、股權管理、產(chǎn)品風險、信用風險管理等
4)EVA模型:經(jīng)濟價值增量(Economic Value Added,簡稱EVA)在西方發(fā)達國家如美國已日益被越來越多的公司所采用,借以量化公司股東財富最大化目標的實現(xiàn)程度。EVA相對傳統(tǒng)的會計利潤而言,該指標不僅考慮了債務資本成本(利息),同時也考慮了普通股成本。從經(jīng)濟學的角度來看,會計利潤高估了真實利潤,而 EVA克服了傳統(tǒng)會計的這一弱點。
風險量化是指通過風險及風險的相互作用的估算來評價項目可能結果的范圍。風險量化的基本內(nèi)容是確定哪些實踐需要制定應對措施。風險量化涉及到對風險和風險之間相互作用的評估,用這個評估分析項目可能的輸出。
三、ciro模型描述了幾種基本的評估層次
ciro模型描述了四種基本的評估層次。如下:
CIRO由該模型中四個評估階段的首字母組成,即背景評估(ContextEvaluation)、輸入評估(InputEvaluation)、反應評估(ReactionEvaluation)、輸出評估(OutputEvaluation)。該模型屬于過程性評估模型。CIRO培訓評估模型是一個由沃爾、伯德和雷克漢姆創(chuàng)造的四級評估模型。
詳細分析:
一、背景評估:
評估任務是確認培訓的必要性。包括:
1、收集和分析有關人力資源開發(fā)的信息。
2、分析和確定培訓需求與培訓目標。
二、輸入評估:
評估任務確定培訓的可能性。包括:
1、收集和匯總有價值的培訓資源信息。
2、評估和選擇培訓資源--對可利用的培訓資源進行利弊分析。
3、確定人力資源培訓的實施戰(zhàn)略與方法。
三、反應評估:
評估任務提高培訓的有效性。包括:
1、收集和分析受訓學員的反饋信息。
2、改進企業(yè)培訓的運作流程。
四、輸出評估:
評估任務檢驗培訓的結果。包括:
1、收集和分析與培訓結果相關的信息。
2、評價與確定培訓的結果,即對照培訓目錄來檢驗,評定培訓結果是否真正有效或有用。
四、分類:基本概念、決策樹與模型評估
分類 (classification)分類任務就是通過學習得到一個目標函數(shù)(targetfunction)f,把每個屬性集x映射到一個預先定義的類別號y。目標函數(shù)也稱分類模型(classification model)。分類模型可用于以下目的:描述性建模、預測性建模
分類技術(或分類法)是一種根據(jù)輸入數(shù)據(jù)集建立分類模型的系統(tǒng)方法。分類法的例子包括決策樹分類法、基于規(guī)則的分類法、神經(jīng)網(wǎng)絡、支持向量機和樸素貝葉斯分類法。
首先,需要一個訓練集(training set),它又類標號一致的記錄組成。使用訓練集建立分類模型,該模型隨后運用于檢驗集(test set ),檢驗集由類標號未知的記錄組成。
分類模型的性能根據(jù)模型正確和錯誤預的檢驗記錄計數(shù)進行評估,這些計數(shù)存放在稱作混淆矩陣( confusion matrix)的表格中。表4-2描述二元分類問題的混滑矩陣。表中每個表項 fij 表示實際類標號為i但被預測為類j的記錄數(shù),例如, f01 代表原本屬于類0但被誤分為類1的記錄數(shù)。按照混淆矩陣中的表項,被分類模型正確預測的樣本總數(shù)是( f11+f00 ),而被錯誤預測的樣本總數(shù)是( f10+f01 )。
同樣,分類模型的性能可以用錯誤率(error rate)來表示,其定義如下:
為了解釋決策樹分類的工作原理,考慮上一節(jié)中介紹的脊椎動物分類問題的簡化版本。這里我們不把脊椎動物分為五個不同的物種,而只考慮兩個類別:哺乳類動物和非哺乳類動物。假設科學家發(fā)現(xiàn)了一個新的物種,怎么判斷它是哺乳動物還是非哺乳動物呢?一種方法是針對物種的特征提出一系列問題。第一個問題可能是,該物種是冷血動物還是恒溫動物。如果它是冷血的,則該物種肯定不是哺乳動物;否則它或者是某種鳥,或者是某種哺乳動物。如果它是恒溫的,需要接著問:該物種是由雌性產(chǎn)越進行繁殖的嗎?如果是,則它肯定為哺乳動物,否則它有可能是非哺乳動物(鴨嘴獸和針鼴這些產(chǎn)蛋的哺乳動物除外)。
上面的例子表明,通過提出一系列精心構思的關于檢驗記錄屬性的問題,可以解決分類問題。每當一個問題得到答案,后續(xù)的問題將隨之而來,直到我們得到記錄的類標號。這一系列的問題和這些問題的可能回答可以組織成決策樹的形式,決策樹是一種由結點和有向邊組成的層次結圖4-4顯示哺乳類動物分類問題的決策樹,樹中包含三種結點。
根節(jié)點 (root node),它沒有入邊,但有零條或多條出邊。
內(nèi)部節(jié)點 (internal node),恰有一條入邊和兩條或多條出邊。
葉節(jié)點 (leaf node)或 終結點 (terminal node)。恰有一條入邊,但沒有出邊。
在決策樹中,毎個葉結點都賦予一個類標號。非終結點(non- terminal node)(包括根結點和內(nèi)部結點)包含屬性測試條件,用以分開具有不同特性的記錄。例如,在圖44中,在根結點處,使用體溫這個屬性把冷血脊権動物和恒溫脊椎動物區(qū)別開來。因為所有的冷血脊椎動物都是非乳動物,所以用一個類稱號為非嘴乳動物的葉結點作為根結點的右子女。如果脊椎動物的體溫是恒溫的,則接下來用胎生這個屬性來區(qū)分乳動物與其他恒溫動物(主要是鳥類)。
一旦構造了決策樹,對檢驗記錄進行分類就相當容易了。從樹的根結點開始,將測試條件用于檢驗記錄,根據(jù)測試結果選擇適當?shù)姆种?沿著該分支或者到達另一個內(nèi)部結點,使用新的測試條件,或者到達一個葉結點。到達葉結點之后,葉結點的類稱號就被賦值給該檢驗記錄。例如圖45顯示應用決策樹預測火烈鳥的類標號所經(jīng)過的路徑,路徑終止于類稱號為非哺乳動物的葉結點。
在 Hunt算法中,通過將訓練記錄相繼劃分成較純的子集,以遞歸方式建立決策樹。設 是與結點t相關聯(lián)的訓練記錄集,而y={y1,y2…,yc}是類標號,Humt算法的遞歸定義如下:
(1)如果 中所有記錄都屬于同一個類 ,則t是葉結點,用 標記。
(2)如果 中包含屬于多個類的記錄,則選擇一個 屬性測試條件 ( attribute test condition),將記錄劃分成較小的子集。對于測試條件的每個輸出,創(chuàng)建一個子女結點,并根據(jù)測試結果將 中的記錄分布到子女結點中。然后,對于每個子女結點,遞歸地調(diào)用該算法。為了解釋該算法如何執(zhí)行,考慮如下問題:預測貸款申請者是會按時歸還貸款,還是會拖欠貸款。對于這個問題,訓練數(shù)據(jù)集可以通過考察以前貨款者的貸放記錄來構造。在圖4-6所示的例子中,每條記錄都包含貸款者的個人信息,以及貨款者是否拖欠貨款的類標號。
該分類問題的初始決策樹只有一個結點,類標號為“拖欠款者=否”(見圖4-7a),意味大多數(shù)貸款者都按時歸還貸款。然而,該樹需要進一步的細化,因為根結點包含兩個類的記錄。根據(jù)“有房者”測試條件,這些記錄被劃分為較小的子集,如圖4-7b所示。選取屬性測試條件的理由稍后討論,目前,我們假定此處這樣選是劃分數(shù)據(jù)的最優(yōu)標準。接下來,對根結點的每個子女遞歸地調(diào)用Hunt算法。從圖4-6給出的訓練數(shù)據(jù)集可以看出,有房的貨款者都按時償還了貸款,因此,根結點的左子女為葉結點,標記為“抱欠款者=否”(見圖4-7b)。對于右子女,我們需要繼續(xù)遞歸調(diào)用Hunt算法,直到所有的記錄都屬于同一個類為止。每次遞歸調(diào)用所形成的決策樹顯示在圖4-7c和圖4-7d中。
如果屬性值的每種組合都在訓練數(shù)據(jù)中出現(xiàn),并且每種組合都具有算法是有效的。但是對于大多數(shù)實際情況,這些假設太苛刻了,因此,需要附加的條件來處理以下的情況。
(1)算法的第二步所創(chuàng)建的子女結點可能為空,即不存在與這些結點相關聯(lián)的記錄。如果沒有一個訓練記錄包含與這樣的結點相關聯(lián)的屬性值組合,這種情形就可能發(fā)生。這時,該結點成為葉結點,類標號為其父結點上訓練記錄中的多數(shù)類。
(2)在第二步,如果與D相關聯(lián)的所有記錄都具有相同的屬性值(目標屬性除外),則不可能進一步劃分這些記錄。在這種情況下,該結點為葉結點,其標號為與該結點相關聯(lián)的訓練記錄中的多數(shù)類。
決策樹歸納的學習算法必須解決下面兩個問題。
(1) 如何分裂訓練記最? 樹增長過程的每個遞歸步都必須選擇一個屬性測試條件,將記錄劃分成較小的子集。為了實現(xiàn)這個步驟,算法必須提供為不同類型的屬性指定測試條件的方法,并且提供評估每種測試條件的客觀度量。
(2) 如何停止分裂過程? 需要有結束條件,以終止決策樹的生長過程。一個可能的策略是分裂結點,直到所有的記錄都屬于同一個類,或者所有的記錄都具有相同的屬性值。盡管兩個結東條件對于結束決策樹歸納算法都是充分的,但是還可以使用其他的標準提前終止樹的生長過程。提前終止的優(yōu)點將在4.4.5節(jié)討論。
決策樹歸納算法必須為不同類型的屬性提供表示屬性測試條件和其對應輸出的方法。
二元屬性 二元屬性的測試條件產(chǎn)生兩個可能的輸出,如圖4-8所示。
標稱屬性 由于標稱屬性有多個屬性值,它的測試條件可以用兩種方法表示,如圖4-9所示對于多路劃分(圖4-9a),其輸出數(shù)取決于該屬性不同屬性值的個數(shù)。例如,如果屬性婚姻狀況有三個不同的屬性值一單身、已婚、離異,則它的測試條件就會產(chǎn)生一個三路劃分。另一方面,某些決策樹算法(如CART)只產(chǎn)生二元劃分,它們考慮創(chuàng)建k個屬性值的二元劃分的所有 +1種方法。圖4-9b顯示了把婚姻狀況的屬性值劃分為兩個子集的三種不同的分組方法。
序數(shù)屬性 序數(shù)屬性也可以產(chǎn)生二元或多路劃分,只要不違背序數(shù)屬性值的有序性,就可以對屬性值進行分組。圖410顯示了技照屬性村衣尺嗎劃分訓練記錄的不同的方法。圖4-10a和圖4-10b中的分組保持了屬性值間的序關系,而圖4-10c所示的分組則違反了這一性質(zhì),因為它把小號和大號分為一組,把中號和加大號放在另一組。
連續(xù)屬性對于連續(xù)屬性來說,測試條件可以是具有二元輸出的比較測試(A<v)或(A≥v),也可以是具有形如 ≤A< (i=1,…,k)輸出的范查詢,圖4-11顯示了這些方法的差別。對于二元劃分,決策樹算法必須考慮所有可能的劃分點v,并從中選擇產(chǎn)生最佳劃分的點v。對于多路劃分,算法必須考慮所有可能的連續(xù)值區(qū)間。可以采用2.3.6節(jié)介紹的離歐化的策略,離散化之后,每個離散化區(qū)間賦予一個新的序數(shù)值,只要保持有序性,相鄰的值還可以聚集成較寬的間。
有很多度量可以用來確定劃分記錄的最佳方法,這些度量用劃分前和劃分后記錄的類分布定義。設p(i|t)表示給定結點t中屬于類i的記錄所占的比例,有時,我們省略結點t,直接用 表示該比例。在兩類問題中,任意結點的類分布都可以記作( , ),其中 =1- 。例如,考慮圖4-12中的測試條件,劃分前的類分布是(0.5,0.5),因為來自每個類的記錄數(shù)相等。如果使用性屬性來劃分數(shù)據(jù),則子女結點的類分布分別為(0.6,0.4)和(0.4,0.6),雖然劃分后兩個類的分布不再平衡,但是子女結點仍然包含兩個類的記錄:按照第二個屬性車型進行劃分,將得到純度更高的劃分。
選擇最佳劃分的度量通常是根據(jù)劃分后子女結點不純性的程度。不純的程度越低,類分布就越傾斜。例如,類分布為(0,1)的結點具有零不純性,而均衡分布(0.5,0.5)的結點具有最高的不純性。不純性度量的例子包括:
圖4-13顯示了二元分類問題不純性度量值的比較,p表示屬于其中一個類的記錄所占的比例。從圖中可以看出,三種方法都在類分布均衡時(即當p=0.5時)達到最大值,而當所有記錄都屬于同一個類時(p等于1或0)達到最小值。下面我們給出三種不純性度量方法的計算實例。
為了確定測試條件的效果,我們需要比較父結點(劃分前)的不純程度和子女結點(劃分后)的不純程度,它們的差越大,測試條件的效果就越好。增益4是一種可以用來確定劃分效果的標準:
考慮圖4-14中的圖表,假設有兩種方法將數(shù)據(jù)劃分成較小的子集。劃分前,Gimi指標等于0.5,因為屬于兩個類的記錄個數(shù)相等。如果選擇屬性A劃分數(shù)據(jù),結點N1的Gi指標等于0,.4898,而N2的Gimi指標等于0.480,派生結點的Gini指標的加權平均為(7/12)×0.4898+(5/2)×0.480=0.486。類似的,我們可以計算屬性B的Gini指標加權平均是0.371。因為屬性B具有更小的Gini指標,它比屬性A更可取。
熵和Gini指標等不純性度量趨向有利于具有大量不同值的屬性。圖4-12顯示了三種可供選擇的測試條件,劃分本章習題2中的數(shù)據(jù)集。第一個測試條件性別與第二個測試條件車型相比,容易看出車型似乎提供了更好的劃分數(shù)據(jù)的方法,因為它產(chǎn)生更純的派生結點。然而,如果將這兩個條件與顧客D相比,后者看來產(chǎn)生更純的劃分,但顧客D卻不是一個有預測性的屬性,因為每個樣本在該屬性上的值都是唯一的。即使在不太極端情形下,也不會希望產(chǎn)生大量輸出的測試條件,因為與每個劃分相關聯(lián)的記錄太少,以致不能作出可靠的預測。
解決該問題的策略有兩種。第一種策略是限制測試條件只能是二元劃分,CART這樣的決策樹算法采用的就是這種策略:另一種策略是修改評估劃分的標準,把屬性測試條件產(chǎn)生的輸出數(shù)也考慮進去,例如,決策樹算法C4.5采用稱作增益率( gain ratio)的劃分標準來評估劃分。增益率定義如下:
建立決策樹之后,可以進行樹剪枝( tree-pruning),以減小決策樹的規(guī)模。決策樹過大容易受所謂過分擬合( overfitting)現(xiàn)象的影響。通過修剪初始決策樹的分支,剪枝有助于提高決策樹的泛化能力。過分擬合和樹剪枝問題將在4.4節(jié)更詳細地討論。
Web使用挖據(jù)就是利用數(shù)據(jù)挖據(jù)的技術,從Web訪問日志中提取有用的模式。這些模式能夠揭示站點訪問者的一些有趣特性:例如,一個人頻繁地訪問某個Web站點,并打開介紹同一產(chǎn)品的網(wǎng)頁,如果商家提供一些打折或免費運輸?shù)膬?yōu)惠,這個人很可能會購買這種商品。
在Web使用挖掘中,重要的是要區(qū)分用戶訪問和Web機器人( Web robot)訪問,Web機器人(又稱Web爬蟲)是一個軟件程序,它可以自動跟蹤嵌入網(wǎng)頁中的超鏈接,定位和獲取 Iinternet上的信息。這些程序安裝在搜素引的入口,收集索引網(wǎng)頁必須的文檔。在應用Web挖掘技術分析人類的測覽習慣之前,必須過濾掉Web機器人的訪問。
下面是對決策樹歸納算法重要特點的總結。
(1)決策樹歸納是一種構建分類模型的非參數(shù)方法。換句話說,它不要求任何先驗假設,不假定類和其他屬性服從一定的概率分布(不像第5章介紹的一些技術)。
(2)找到最佳的決策樹是NP完全問題。許多決策樹算法都采取啟發(fā)式的方法指導對假設空間的搜索。例如,4.3.5節(jié)中介紹的算法就采用了一種貪心的、自頂向下的遞歸劃分策略建立決策樹
(3)已開發(fā)的構建決策樹技術不需要昂貴的計算代價,即使訓練集非常大,也可以快速建立模型。此外,決策樹一旦建立,未知樣本分類非???最壞情況下的時間復雜度是O(w),其中w是樹的最大深度。
(4)決策樹相對容易解釋,特別是小型的決策樹。在很多簡單的數(shù)據(jù)集上,決策樹的準確率也可以與其他分類算法相媲美。
(5)決策樹是學習離散值函數(shù)的典型代表。然而,它不能很好地推廣到某些特定的布爾問題。個著名的例子是奇偶函數(shù),當奇數(shù)(偶數(shù))個布爾屬性為真時其值為0(1)。對這樣的函數(shù)準確建模需要一棵具有2^d個結點的滿決策樹,其中d是布爾屬性的個數(shù)(見本章習題1)
(6)決策樹算法對于噪聲的干擾具有相當好的魯棒性,采用避免過分擬合的方法之后尤其如此。避免過分擬合的方法將在4.4節(jié)介紹。
(7)元余屬性不會對決策樹的準確率造成不利的影響。一個屬性如果在數(shù)據(jù)中它與另一個屬性是強相關的,那么它是冗余的。在兩個冗余的屬性中,如果已經(jīng)選擇其中一個作為用于劃分的屬性,則另一個將被忽略。然而,如果數(shù)據(jù)集中含有很多不相關的屬性(即對分類任務沒有用的屬性),則某些不相關屬性可能在樹的構造過程中偶然被選中,導致決策樹過于龐大。通過在預處理階段刪除不相關屬性,特征選擇技術能夠幫助提高決策樹的準確率。我們將在4.4.3節(jié)考察不相關屬性過多的問題。
(8)由于大多數(shù)的決策樹算法都采用自頂向下的遞歸劃分方法,因此沿著樹向下,記錄會越來越少。在葉結點,記錄可能太少,對于葉結點代表的類,不能做出具有統(tǒng)計意義的判決,這就是所謂的數(shù)據(jù)碎片( data fragmentation)問題,解決該問題的一種可行的方法是,當樣本數(shù)小于某個特定值時停止分裂。
(9)子樹可能在決策樹中重復多次,如圖4-19所示,這使得決策樹過于復雜,并且可能更難解釋。當決策樹的每個內(nèi)部結點都依賴單個屬性測試條件時,就會出現(xiàn)這種情形。由于大多數(shù)的決策樹算法都采用分治劃分策略,因此在屬性空間的不同部分可以使用相同的測試條件,從而導致子樹重復問題。
(10)迄今為止,本章介紹的測試條件每次都只涉及一個屬性。這樣,可以將決策樹的生長過程看成劃分屬性空間為不相交的區(qū)域的過程,直到每個區(qū)域都只包含同一類的記錄(見圖4-20)。兩個不同類的相鄰區(qū)域之間的邊界稱作決策邊界( decision boundary),由于測試條涉及單個屬性,因此決策邊界是直線,即平行于“坐標軸”,這就限制了決策樹對連續(xù)屬性之間復雜關系建模的表達能力。圖4-21顯示了一個數(shù)據(jù)集,使用一次只涉及一個屬性的測試條件的決策樹算法很難有效地對它進行分類。
斜決策樹 ( oblique decision tree)可以克服以上的局限,因為它允許測試條件涉及多個屬性。圖4-21中的數(shù)據(jù)集可以很容易地用斜決策樹表示,該斜決策樹只有一個結點,其測試條件為:
x+y<1
盡管這種技術具有更強的表達能力,并且能夠產(chǎn)生更緊湊的決策樹,但是為給定的結點找出最佳測試條件的計算可能是相當復雜的。
構造歸納 ( constructive induction)提供另一種將數(shù)據(jù)劃分成齊次非矩形區(qū)域的方法(見2.3.5節(jié)),該方法創(chuàng)建復合屬性,代表已有屬性的算術或邏輯組合。新屬性提供了更好的類區(qū)分能力,并在決策樹歸納之前就增廣到數(shù)據(jù)集中。與斜決策樹不同,構造歸納不需要昂貴的花費,因為在構造決策樹之前,它只需要一次性地確定屬性的所有相關組合。相比之下,在擴展每個內(nèi)部結點時,斜決策樹都需要動態(tài)地確定正確的屬性組合。然而,構造歸納會產(chǎn)生冗余的屬性,因為新創(chuàng)建的屬性是已有屬性的組合
(11)研究表明不純性度量方法的選擇對決策樹算法的性能影響很小,這是因為許多度量方法相互之間都是一致的,如圖4-13所示。實際上,樹剪枝對最終決策樹的影響比不純性度量的選擇的影響更大。
以上就是關于模型評估的基本方法相關問題的回答。希望能幫到你,如有更多相關問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀: