版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單元3決策樹機(jī)器學(xué)習(xí)電氣與信息工程系CONTENTS
目錄010203任務(wù)3.1任務(wù)3.2任務(wù)3.3引例描述
小明是一個(gè)特別熱愛打籃球的學(xué)生,為了保證安全,他會(huì)選擇在某些天氣下不去打籃球。那么他如何選擇去不去打籃球呢?如圖所示為決策樹實(shí)例。小明其實(shí)就是應(yīng)用了決策樹的思想而做出是否打籃球的決定。小明根據(jù)天氣、地面濕度等不同的信息做出最佳選擇的過程即是決策,每個(gè)決策都可能引出兩個(gè)或多個(gè)決策事件,通過在每次決策時(shí)選擇最佳處理方案而導(dǎo)致最后的結(jié)果。以上過程用一棵搜索樹表示就是決策樹(DecisionTree)。任務(wù)3.1天氣數(shù)據(jù)集導(dǎo)入與數(shù)據(jù)預(yù)處理任務(wù)3.1—任務(wù)情景
本任務(wù)的目標(biāo)是導(dǎo)入一個(gè)包含天氣數(shù)據(jù)的csv逗號(hào)分隔值文件,并進(jìn)行數(shù)據(jù)清洗等數(shù)據(jù)預(yù)處理工作。這些數(shù)據(jù)來自位于加利福尼亞州圣地亞哥的氣象站。該氣象站配備了傳感器,可捕獲與天氣相關(guān)的測(cè)量值,如氣溫、氣壓和相對(duì)濕度。數(shù)據(jù)的收集時(shí)間為2011年9月至2014年9月,為期三年,以確保捕獲不同季節(jié)和天氣條件的足夠數(shù)據(jù)。
這個(gè)天氣數(shù)據(jù)集可從華信教育資源網(wǎng)該書配套資源處下載,其包含不同的天氣數(shù)據(jù),包括早上九點(diǎn)的大氣壓、溫度、相對(duì)濕度,一天中的平均風(fēng)向、平均風(fēng)速、最大風(fēng)速風(fēng)向、最大風(fēng)速、每日雨量、下雨時(shí)長、相對(duì)濕度,以及下午三點(diǎn)的相對(duì)濕度等。任務(wù)3.1—任務(wù)布置
使用sklearn庫與pandas庫實(shí)現(xiàn)數(shù)據(jù)集導(dǎo)入和數(shù)據(jù)預(yù)處理,去除含有缺失值的行。導(dǎo)入的去除缺失值后的數(shù)據(jù)集如圖所示。任務(wù)3.1—知識(shí)準(zhǔn)備-1.導(dǎo)入必要的庫與數(shù)據(jù)集
首先是導(dǎo)入必要的用于決策樹分類器的第三方科學(xué)計(jì)算庫,如pandas庫、sklearn庫等。在sklearn庫中,我們需要從sklearn.model_selection導(dǎo)入train_test_split函數(shù),從sklearn.tree導(dǎo)入DecisionTreeClassifier函數(shù),從sklearn.metrics導(dǎo)入accuracy_score函數(shù)。這3個(gè)函數(shù)的作用分別是分割訓(xùn)練集與測(cè)試集,訓(xùn)練決策樹分類器,以及得出準(zhǔn)確度分?jǐn)?shù)。1)sklearn.model_selection與train_test_split
在機(jī)器學(xué)習(xí)中,我們需要通過數(shù)據(jù)來訓(xùn)練模型,然后用這個(gè)模型來對(duì)新數(shù)據(jù)進(jìn)行預(yù)測(cè)。在這個(gè)過程中,我們需要進(jìn)行模型選擇,以找到最適合我們的數(shù)據(jù)的模型。同時(shí),我們也需要對(duì)訓(xùn)練出來的模型進(jìn)行評(píng)估,以確定它的性能和預(yù)測(cè)能力。sklearn.model_selection提供了用于模型選擇和評(píng)估的工具。因?yàn)檫x擇合適的模型可以在進(jìn)行預(yù)測(cè)時(shí)生成準(zhǔn)確的結(jié)果,所以,需要一個(gè)特定的數(shù)據(jù)集(訓(xùn)練集)來訓(xùn)練模型,并用另一個(gè)數(shù)據(jù)集(測(cè)試集)測(cè)試模型。如果只有一個(gè)數(shù)據(jù)集,就可以用train_test_split函數(shù)對(duì)其進(jìn)行拆分。train_test_split函數(shù)可以將數(shù)據(jù)集拆分為兩個(gè)子集:用于訓(xùn)練數(shù)據(jù)的訓(xùn)練集和用于測(cè)試數(shù)據(jù)的測(cè)試集,這樣就無須再手動(dòng)劃分?jǐn)?shù)據(jù)集。在默認(rèn)情況下,用train_test_split函數(shù)可以將數(shù)據(jù)集隨機(jī)拆分為兩個(gè)子集。任務(wù)3.1—任務(wù)3.1—知識(shí)準(zhǔn)備-1.導(dǎo)入必要的庫與數(shù)據(jù)集2)sklearn.tree與DecisionTreeClassifiersklearn.tree模塊包括基于決策樹的分類和回歸模型。DecisionTreeClassifier函數(shù)是分類決策樹模型,任務(wù)3.2會(huì)有關(guān)于這個(gè)函數(shù)的詳細(xì)講解。3)sklearn.metrics與accuracy_scoresklearn.metrics是一個(gè)評(píng)估模型預(yù)測(cè)質(zhì)量的模塊,包括評(píng)分函數(shù)、性能指標(biāo)、成對(duì)指標(biāo)和距離計(jì)算。accuracy_score函數(shù)是一個(gè)適用于分類問題的計(jì)算準(zhǔn)確率的函數(shù),可以計(jì)算所有分類正確的百分比。在多標(biāo)簽分類中,該函數(shù)會(huì)返回子集的準(zhǔn)確率。如果對(duì)一個(gè)樣本來說,必須嚴(yán)格匹配真實(shí)數(shù)據(jù)集中的標(biāo)簽,則整個(gè)集合的預(yù)測(cè)標(biāo)簽返回1.0,否則返回0.0。任務(wù)3.1—任務(wù)3.1—知識(shí)準(zhǔn)備-2.缺失值的識(shí)別與處理在真實(shí)的世界中,數(shù)據(jù)缺失是經(jīng)常出現(xiàn)的,并可能對(duì)分析的結(jié)果造成影響。在本任務(wù)用到的數(shù)據(jù)集中,就出現(xiàn)了數(shù)據(jù)缺失的情況,也就是缺失值。缺失值指的是由于人為或機(jī)器等因素導(dǎo)致的數(shù)據(jù)記錄的丟失或隱瞞。缺失值的存在在一定程度上會(huì)影響后續(xù)數(shù)據(jù)分析和挖掘的結(jié)果,所以對(duì)它的處理顯得尤為重要。我們需要了解數(shù)據(jù)缺失的原因和數(shù)據(jù)缺失的類型,并從數(shù)據(jù)中識(shí)別出缺失值,探索數(shù)據(jù)缺失的模式,進(jìn)而處理缺失的數(shù)據(jù)。任務(wù)3.1—知識(shí)準(zhǔn)備-2.缺失值的識(shí)別與處理
首先,我們應(yīng)該知道:數(shù)據(jù)為什么缺失?數(shù)據(jù)的缺失是我們無法避免的,可能的原因有很多,主要有以下3類(1)無意的:信息被遺漏,比如工作人員疏忽、忘記而造成數(shù)據(jù)的缺失;數(shù)據(jù)采集器故障等,比如在對(duì)系統(tǒng)實(shí)時(shí)性要求較高時(shí),機(jī)器來不及判斷和決策而造成數(shù)據(jù)的缺失。(2)有意的:有些數(shù)據(jù)集在特征描述中會(huì)規(guī)定將缺失值也作為一種特征值,這時(shí)缺失值就可以看作是一種特殊的特征值。(3)不存在:有些特征屬性根本就是不存在的,例如一個(gè)未婚者的配偶名字就沒法填寫,再如一個(gè)孩子的收入狀況也無法填寫。總而言之,對(duì)于缺失值是由什么造成的,我們需要明確:是由疏忽或遺漏無意造成的,還是故意造成的,或者說某些缺失值根本不存在。只有知道了缺失值的成因,我們才能對(duì)癥下藥,進(jìn)行相應(yīng)的處理。1)數(shù)據(jù)缺失的原因任務(wù)3.1—知識(shí)準(zhǔn)備-2.缺失值的識(shí)別與處理2)數(shù)據(jù)缺失的類型在對(duì)數(shù)據(jù)缺失進(jìn)行處理前,了解數(shù)據(jù)缺失的機(jī)制和形式是十分必要的。將數(shù)據(jù)集中不含缺失值的變量稱為完全變量,將數(shù)據(jù)集中含有缺失值的變量稱為不完全變量。而根據(jù)缺失的分布情況,可以將缺失分為隨機(jī)缺失、完全隨機(jī)缺失和完全非隨機(jī)缺失。(1)隨機(jī)缺失(MissingAtRandom,MAR)。隨機(jī)缺失意味著數(shù)據(jù)缺失的概率與缺失的數(shù)據(jù)本身無關(guān),而僅與部分已觀測(cè)到的數(shù)據(jù)有關(guān)。也就是說,數(shù)據(jù)的缺失不是完全隨機(jī)的,該類數(shù)據(jù)的缺失依賴于其他完全變量。任務(wù)3.1—知識(shí)準(zhǔn)備-2.缺失值的識(shí)別與處理(2)完全隨機(jī)缺失(MissingCompletelyAtRandom,MCAR)數(shù)據(jù)的缺失是完全隨機(jī)的,不依賴于任何不完全變量或完全變量,不影響樣本的無偏性。簡(jiǎn)單來說,就是數(shù)據(jù)缺失的概率與其假設(shè)值及其他變量值都完全無關(guān)。(3)非隨機(jī)缺失(MissingNotAtRandom,MNAR)。數(shù)據(jù)的缺失與不完全變量自身的取值有關(guān),分為兩種情況:缺失值取決于其假設(shè)值(例如高收入人群通常不希望在調(diào)查中透露他們的收入);缺失值取決于其他變量值(假設(shè)女性通常不想透露她們的年齡,則這里年齡變量缺失值受性別變量影響)。任務(wù)3.1—知識(shí)準(zhǔn)備-2.缺失值的識(shí)別與處理針對(duì)隨機(jī)缺失和完全隨機(jī)缺失這兩種情況,可以根據(jù)具體情況刪除包含缺失值的數(shù)據(jù)。隨機(jī)缺失可以通過已知變量對(duì)缺失值進(jìn)行估計(jì)。針對(duì)非隨機(jī)缺失,刪除包含缺失值的數(shù)據(jù)可能會(huì)導(dǎo)致模型出現(xiàn)偏差,同時(shí),對(duì)數(shù)據(jù)進(jìn)行填充需要格外謹(jǐn)慎。正確判斷缺失值的類型能給我們的工作帶來很大的便利,但目前還沒有一套規(guī)范的缺失值類型判定標(biāo)準(zhǔn),大多依據(jù)經(jīng)驗(yàn)或業(yè)務(wù)進(jìn)行判斷。對(duì)于隨機(jī)缺失和非隨機(jī)缺失,直接刪除記錄是不合適的,上面對(duì)二者的定義已經(jīng)給出原因。對(duì)于隨機(jī)缺失,可以通過已知變量對(duì)缺失值進(jìn)行估計(jì);對(duì)于非隨機(jī)缺失的非隨機(jī)性,還沒有很好的解決辦法;對(duì)于完全隨機(jī)缺失,可以直接刪除缺失數(shù)據(jù)行。任務(wù)3.1—知識(shí)準(zhǔn)備-2.缺失值的識(shí)別與處理3)缺失值的識(shí)別判斷一個(gè)數(shù)據(jù)集是否存在缺失值,通常從兩個(gè)角度判斷,一個(gè)是變量的角度,即判斷每個(gè)變量中是否包含缺失值;另一個(gè)是數(shù)據(jù)行的角度,即判斷每行數(shù)據(jù)中是否包含缺失值。在Python環(huán)境中,可以使用isnull()方法來判斷缺失值,isnull()方法返回與原數(shù)據(jù)集的shape
相同的矩陣,矩陣的元素是bool類型的值,可以稱作原始數(shù)據(jù)集的影子矩陣。如果影子矩陣的元素值是1,則表示在原始數(shù)據(jù)集中對(duì)應(yīng)該位置的值是缺失的;如果影子矩陣的元素值是0,則表示在原始數(shù)據(jù)集中,對(duì)應(yīng)該位置的值是有效的。這里,我們以data變量存放含有缺失值的數(shù)據(jù)集為例。任務(wù)3.1—知識(shí)準(zhǔn)備-2.缺失值的識(shí)別與處理(1)判斷每列是否存在缺失值。為了得到每列的判斷結(jié)果,需要使用any()方法(且將該方法內(nèi)的axis參數(shù)設(shè)置為0)。data.isnull().any(axis=0)#判斷各變量中是否存在缺失值(2)識(shí)別數(shù)據(jù)行的缺失值的分布情況。統(tǒng)計(jì)各變量的缺失值個(gè)數(shù)可以在isnull()方法的基礎(chǔ)上使用sum()方法(同樣需要將axis參數(shù)設(shè)置為0)。計(jì)算缺失比例就是用含有缺失值的行數(shù)除以總的樣本數(shù)據(jù)量(shape方法返回?cái)?shù)據(jù)集的行數(shù)和列數(shù),[0]表示取出對(duì)應(yīng)的數(shù)據(jù)行數(shù))。代碼如下:#統(tǒng)計(jì)含有缺失值的行數(shù)data.isnull().any(axis=1).sum()#統(tǒng)計(jì)含有缺失值的行數(shù)所占的比例data.isnull().any(axis=1).sum()/df.shape[0]任務(wù)3.1—知識(shí)準(zhǔn)備-2.缺失值的識(shí)別與處理代碼中使用了兩次any方法,第一次用于判斷每行對(duì)應(yīng)的True值(即行內(nèi)有缺失值)或False值(即行內(nèi)沒有缺失值);第二次用于綜合判斷所有數(shù)據(jù)行中是否包含缺失值。采用any方法可以進(jìn)一步判斷含有缺失值的行數(shù)及其占比。不管是變量角度的缺失值判斷,還是數(shù)據(jù)行角度的缺失值判斷,一旦發(fā)現(xiàn)缺失值,都需要對(duì)其進(jìn)行相應(yīng)的處理。否則,在一定程度上,會(huì)影響數(shù)據(jù)分析或挖掘的準(zhǔn)確性。#統(tǒng)計(jì)含有缺失值的行數(shù)data.isnull().any(axis=1).sum()#統(tǒng)計(jì)含有缺失值的行數(shù)所占的比例data.isnull().any(axis=1).sum()/df.shape[0]任務(wù)3.1—知識(shí)準(zhǔn)備-2.缺失值的識(shí)別與處理同學(xué)們可能對(duì)代碼中的“axis=0”感到困惑,它代表什么?為什么是0?是否還可以寫其他值?下面采用圖表的形式來說明axis參數(shù)的用法。圖3-3所示為行數(shù)的變化。假設(shè)圖3-3所示為學(xué)生的考試成績表,如果直接對(duì)考試成績表中的分?jǐn)?shù)進(jìn)行加和操作,得到的是所有學(xué)生的分?jǐn)?shù)總和。如果按學(xué)生分別計(jì)算總分,將是圖3-3從左到右的轉(zhuǎn)換。該轉(zhuǎn)換的特征是列數(shù)發(fā)生了變化(可以是列數(shù)減少,也可以是列數(shù)增多),類似于在水平方向上受了外部的壓力或拉力,這樣的外力可理解為x軸為1的效果(為便于理解,可以想象飛機(jī)在有動(dòng)力的情況下可以保持水平飛行狀態(tài))。圖3-3列數(shù)的變化圖3-4行數(shù)的變化任務(wù)3.1—知識(shí)準(zhǔn)備-2.缺失值的識(shí)別與處理對(duì)于如圖3-4所示的學(xué)生的考試成績表,如果直接對(duì)考試成績表中的分?jǐn)?shù)進(jìn)行均值的計(jì)算,得到的是所有學(xué)生的平均分?jǐn)?shù)。如果按學(xué)科分別計(jì)算平均分,將是圖3-4中從上到下的轉(zhuǎn)換。該轉(zhuǎn)換的特征是行數(shù)發(fā)生了變化(可以是行數(shù)減少,也可以是行數(shù)增多),類似于在垂直方向上受了外部的擠壓或拉伸,這樣的外力可理解為x軸為0的效果(為便于理解,可以想象飛機(jī)在沒有動(dòng)力的情況下呈下降趨勢(shì))。圖3-4行數(shù)的變化任務(wù)3.1—知識(shí)準(zhǔn)備-3.缺失值的處理識(shí)別缺失值的數(shù)目、分布和模式有兩個(gè)目的:分析生成缺失值的潛在機(jī)制,評(píng)價(jià)缺失值對(duì)回答實(shí)質(zhì)性問題的影響。具體來講,需要弄清楚以下幾個(gè)問題:①缺失值所占的比例是多少?②缺失值是否集中在少數(shù)幾個(gè)變量上,抑或廣泛存在?③缺失值是隨機(jī)產(chǎn)生的嗎?④缺失值間的相關(guān)性或與可觀測(cè)數(shù)據(jù)之間的相關(guān)性是否可以表明生成缺失值的機(jī)制?;卮鹨陨线@些問題將有助于采用合適的方法來處理缺失值:4)缺失值的處理任務(wù)3.1—知識(shí)準(zhǔn)備-3.缺失值的處理①如果缺失值集中在幾個(gè)相對(duì)不重要的變量上,那么可以刪除這些變量。②如果有一小部分(如小于10%)數(shù)據(jù)隨機(jī)分布在整個(gè)數(shù)據(jù)集中(完全隨機(jī)缺失),那么可以刪除存在缺失值的行,而只分析數(shù)據(jù)完整的實(shí)例,這樣仍然可以得到可靠且有效的結(jié)果。③如果可以假定數(shù)據(jù)為完全隨機(jī)缺失或隨機(jī)缺失數(shù)據(jù),那么可以應(yīng)用多重插補(bǔ)法來獲得有效的結(jié)論。(1)推理恢復(fù)根據(jù)變量之間的關(guān)系來填補(bǔ)或恢復(fù)缺失值,通過推理,數(shù)據(jù)的恢復(fù)可能是準(zhǔn)確無誤的或近似準(zhǔn)確的,例如如果一個(gè)數(shù)據(jù)對(duì)象的職業(yè)是幼兒園教師,那么這人的性別大概率是女。任務(wù)3.1—知識(shí)準(zhǔn)備-3.缺失值的處理(2)刪除法刪除法是指將缺失值所在的行刪除(前提是變量缺失的比例非常低,如5%以內(nèi)),或者刪除缺失值所對(duì)應(yīng)的變量(前提是該變量中包含的缺失值比例非常高,如80%左右)。把包含一個(gè)或多個(gè)缺失值的行刪除稱作行刪除法或個(gè)案刪除法,大部分統(tǒng)計(jì)軟件包默認(rèn)采用的是行刪除法。如果變量的缺失比例非常高或者行缺失的比例非常低,那么刪除法是一個(gè)不錯(cuò)的選擇。反之,刪除法將會(huì)使模型丟失大量的數(shù)據(jù)信息而得不償失。任務(wù)3.1—知識(shí)準(zhǔn)備-3.缺失值的處理刪除法的缺點(diǎn)如下:①犧牲大量的數(shù)據(jù),通過減少歷史數(shù)據(jù)換取完整的信息,這樣可能會(huì)丟失很多隱藏的重要信息。②當(dāng)缺失值所占的比例較高時(shí),特別是缺失值非隨機(jī)分布時(shí),直接刪除可能會(huì)導(dǎo)致數(shù)據(jù)發(fā)生偏離,例如原本的正態(tài)分布變?yōu)榉钦龖B(tài)分布。③刪除法在樣本數(shù)據(jù)量十分大且缺失值不多的情況下非常有效,但如果樣本數(shù)據(jù)量本身不大且缺失值也不少,那么不建議使用刪除法。刪除法可以使用drop或dropna函數(shù)將變量刪除,代碼如下:#刪除一個(gè)名為apple的變量data.drop(labels='apple',axis=1,inplace=True)#刪除所有包含缺失值的行data.dropna()任務(wù)3.1—知識(shí)準(zhǔn)備-3.缺失值的處理(3)均值替換法均值替換法也叫均值插補(bǔ)法,是指對(duì)于存在缺失值的變量,直接利用該變量的均值、中位數(shù)或眾數(shù)替換該變量的缺失值,其優(yōu)點(diǎn)是缺失值的處理速度快;缺點(diǎn)是容易產(chǎn)生有偏估計(jì),導(dǎo)致替換缺失值的準(zhǔn)確性下降。將數(shù)據(jù)集的屬性分為定性屬性和定量屬性,并分別對(duì)二者進(jìn)行處理:①如果變量是數(shù)值型的,那么計(jì)算出該變量在其他所有數(shù)據(jù)行取值的均值或中位數(shù),并以此替換缺失值。任務(wù)3.1—知識(shí)準(zhǔn)備-3.缺失值的處理②如果變量是文本型的,那么根據(jù)統(tǒng)計(jì)學(xué)中的眾數(shù)原理,計(jì)算出該屬性在其他所有數(shù)據(jù)行的取值次數(shù)最多的值(即出現(xiàn)頻率最高的值),并以此替換缺失值。這就意味著,對(duì)于定性數(shù)據(jù),使用眾數(shù)(Mode)填補(bǔ),例如一個(gè)學(xué)校的男生和女生的數(shù)量,男生500人,女生50人,對(duì)于其余的缺失值,我們會(huì)用人數(shù)較多的男生來填補(bǔ)。對(duì)于定量(定比)數(shù)據(jù),使用平均數(shù)(Mean)或中位數(shù)(Median)填補(bǔ),例如一個(gè)班級(jí)學(xué)生的身高特征,對(duì)于一些同學(xué)缺失的身高值,可以使用全班同學(xué)身高的均值或中位數(shù)來填補(bǔ)。一般情況下,當(dāng)特征分布為正態(tài)分布時(shí),使用均值效果會(huì)比較好;而當(dāng)特征分布由于異常值的存在而不是正態(tài)分布時(shí),使用中位數(shù)效果會(huì)比較好。替換法對(duì)于非完全隨機(jī)缺失的數(shù)據(jù)會(huì)產(chǎn)生有偏向的結(jié)果,適用于缺失值數(shù)量較小的數(shù)據(jù)集。均值替換是在低缺失率下首選的插補(bǔ)方法,缺點(diǎn)是不能反映缺失值的變異性。任務(wù)3.1—知識(shí)準(zhǔn)備-3.缺失值的處理缺失值的填充使用的是fillna()方法,其中,value參數(shù)可以通過字典的形式對(duì)不同的變量指定不同的值。需要強(qiáng)調(diào)的是,如果計(jì)算某個(gè)變量的眾數(shù),一定要使用索引技術(shù),如代碼中的[0]表示取出眾數(shù)序列中的第一個(gè)(我們知道,眾數(shù)是指出現(xiàn)頻次最高的值,假設(shè)一個(gè)變量中有多個(gè)值共享最高頻次,那么Python將會(huì)把這些值以序列的形式存儲(chǔ)起來,故取出指定的眾數(shù)值必須使用索引技術(shù))。采用均值替換法處理缺失值的示例代碼如下:#使用性別的眾數(shù)替換缺失性別
data.fillna(value={'gender':data['gender'].mode()[0],#使用年齡的均值替換缺失年齡'age':df['age'].mean()},inplace=True)任務(wù)3.1—知識(shí)準(zhǔn)備-3.缺失值的處理4)多重插補(bǔ)法
多重插補(bǔ)的思想來源于貝葉斯估計(jì),該思想認(rèn)為待插補(bǔ)的值是隨機(jī)的,并來自已觀測(cè)到的值。在具體實(shí)踐時(shí),通常先估計(jì)出待插補(bǔ)的值;然后,加上不同的噪聲,形成多組可選插補(bǔ)值;最后,根據(jù)某種選擇依據(jù),選取最合適的插補(bǔ)值。
以上提出的擬合和替換方法都是單一的插補(bǔ)方法,而多重插補(bǔ)彌補(bǔ)了單一插補(bǔ)的缺陷,多重插補(bǔ)并沒有試圖通過模擬值來估計(jì)每個(gè)缺失值,而是提出缺失值的一個(gè)隨機(jī)樣本(樣本可以是不同的模型擬合結(jié)果的組合)。這種程序的實(shí)施恰當(dāng)?shù)胤从沉擞扇笔е狄鸬牟淮_定性,使得統(tǒng)計(jì)推斷有效。多重插補(bǔ)推斷可以分為以下3個(gè)步驟:①為每個(gè)缺失值生成一套可能的插補(bǔ)值,這些值反映了無響應(yīng)模型的不確定性。②對(duì)每個(gè)插補(bǔ)數(shù)據(jù)集都用針對(duì)完整數(shù)據(jù)集的統(tǒng)計(jì)方法進(jìn)行統(tǒng)計(jì)分析。③對(duì)于來自各個(gè)插補(bǔ)數(shù)據(jù)集的結(jié)果,根據(jù)評(píng)分函數(shù)進(jìn)行選擇,產(chǎn)生最終的插補(bǔ)值。任務(wù)3.1—知識(shí)準(zhǔn)備-3.缺失值的處理根據(jù)數(shù)據(jù)缺失機(jī)制、模式及變量類型,可分別采用回歸、預(yù)測(cè)均數(shù)匹配(PredictiveMeanMatching,PMM)、傾向評(píng)分(PropensityScore,PS)、邏輯回歸、判別分析及馬爾可夫鏈蒙特卡羅(MarkovChainMonteCarlo,MCMC)等方法對(duì)缺失值進(jìn)行填補(bǔ)。任務(wù)3.1—知識(shí)準(zhǔn)備-3.缺失值的處理假設(shè)一組數(shù)據(jù)包括三個(gè)變量Y1、Y2、Y3,它們的聯(lián)合分布為正態(tài)分布。將這組數(shù)據(jù)處理成三組,A組保持原始數(shù)據(jù),B組僅缺失Y3,C組缺失Y1和Y2。在采用多重插補(bǔ)法時(shí),不對(duì)A組進(jìn)行任何處理,對(duì)B組產(chǎn)生Y3的一組估計(jì)值(作Y3關(guān)于Y1、Y2的回歸),對(duì)C組產(chǎn)生Y1和Y2的一組成對(duì)估計(jì)值(作Y1、Y2關(guān)于Y3的回歸)。當(dāng)采用多重插補(bǔ)法時(shí),不對(duì)A組進(jìn)行處理;對(duì)B、C組,將完整的樣本隨機(jī)抽取形成m組,每組個(gè)案數(shù)只要能夠有效估計(jì)參數(shù)就可以了。首先,對(duì)存在缺失值的屬性的分布做出估計(jì)。然后,基于這m組觀測(cè)值,對(duì)這m組樣本分別產(chǎn)生關(guān)于參數(shù)的m組估計(jì)值,給出相應(yīng)的預(yù)測(cè),這時(shí)采用的估計(jì)方法為極大似然法,在計(jì)算機(jī)中,具體的實(shí)現(xiàn)算法為最大期望(EM)算法。對(duì)B組估計(jì)出一組Y3的值,對(duì)C組將利用Y1、Y2、Y3的聯(lián)合分布為正態(tài)分布這一前提,估計(jì)出一組(Y1,Y2)。上例中假定了Y1、Y2、Y3的聯(lián)合分布為正態(tài)分布。這個(gè)假定是人為的,但是已經(jīng)通過驗(yàn)證(Graham和Schafer于1999年驗(yàn)證的)。對(duì)于非正態(tài)聯(lián)合分布的變量,在上述假定下,仍然可以估計(jì)到很接近真實(shí)值的結(jié)果。需要注意的是,使用多重插補(bǔ)法要求數(shù)據(jù)缺失值為隨機(jī)性缺失,一般重復(fù)20~50次的精確率很高,但是計(jì)算也很復(fù)雜,需要大量計(jì)算。任務(wù)3.1—知識(shí)準(zhǔn)備-3.缺失值的處理5)不處理缺失值
補(bǔ)齊處理只是將未知值補(bǔ)以我們的主觀估計(jì)值,不一定完全符合客觀事實(shí),在對(duì)不完備信息進(jìn)行補(bǔ)齊處理的同時(shí),我們或多或少地改變了原始的信息系統(tǒng)。而且,對(duì)空值不正確的填充往往將新的噪聲引入數(shù)據(jù)中,使任務(wù)產(chǎn)生錯(cuò)誤的結(jié)果。因此,在許多情況下,我們還是希望在保持原始信息不發(fā)生變化的前提下對(duì)信息系統(tǒng)進(jìn)行處理。
在實(shí)際應(yīng)用中,一些模型無法應(yīng)對(duì)具有缺失值的數(shù)據(jù),因此要對(duì)缺失值進(jìn)行處理。然而,還有一些模型,這些模型本身就可以應(yīng)對(duì)具有缺失值的數(shù)據(jù),此時(shí)無須對(duì)數(shù)據(jù)進(jìn)行處理,如XGBoost等高級(jí)模型。
總而言之,大部分?jǐn)?shù)據(jù)的預(yù)處理都會(huì)使用比較方便的方法來處理缺失值,例如以上幾種方法,但是效果上并一定好,因此還是需要根據(jù)不同的需要選擇合適的方法,并沒有能夠解決所有問題的萬能方法。具體的方法采用還需要考慮多個(gè)方面的原因,如數(shù)據(jù)缺失、數(shù)據(jù)缺失值類型、樣本數(shù)據(jù)量、數(shù)據(jù)缺失值隨機(jī)性等。任務(wù)3.1—任務(wù)實(shí)施(1)導(dǎo)入相關(guān)的庫,這里主要導(dǎo)入的是pandas庫和sklearn庫中的三個(gè)函數(shù),分別是train_test_split、DecisionTreeClassifier和accuracy_score。代碼如下:(2)使用pandas庫中的read_csv()函數(shù)從csv文件中讀取天氣數(shù)據(jù)。(3)去除含有缺失值的行。(4)去除下午三點(diǎn)時(shí)相對(duì)濕度低于24.99的數(shù)據(jù)。(5)x為去除了濕度的早上的特征,y為下午三點(diǎn)的濕度。(6)將數(shù)據(jù)集分成訓(xùn)練集與測(cè)試集。任務(wù)3.2訓(xùn)練決策樹模型任務(wù)3.2—任務(wù)情景
任務(wù)3.2—任務(wù)情景
決策樹是一種機(jī)器學(xué)習(xí)的方法。決策樹的生成算法有ID3、C4.5和CART等。決策樹是一種樹形結(jié)構(gòu),其中每個(gè)內(nèi)部節(jié)點(diǎn)表示一個(gè)屬性上的判斷,每個(gè)分支代表一個(gè)判斷結(jié)果的輸出,每個(gè)葉節(jié)點(diǎn)代表一種分類結(jié)果。本任務(wù)介紹了決策樹的三種算法的原理及決策樹的搭建,并在任務(wù)實(shí)施中搭建了一個(gè)決策樹分類器。任務(wù)3.2—知識(shí)準(zhǔn)備—1.決策樹概述
決策樹是一種依托于策略抉擇而建立起來的樹。在機(jī)器學(xué)習(xí)中,決策樹是一個(gè)預(yù)測(cè)模型,它代表的是對(duì)象屬性與對(duì)象值之間的一種映射關(guān)系。樹中的每個(gè)節(jié)點(diǎn)都表示一個(gè)對(duì)象,每個(gè)分叉路徑則代表某個(gè)可能的屬性值,從根節(jié)點(diǎn)到葉節(jié)點(diǎn)所經(jīng)歷的路徑對(duì)應(yīng)一個(gè)判定測(cè)試序列。決策樹可以是二叉樹或非二叉樹,可以把它看作是if-else規(guī)則的集合,也可以認(rèn)為它是特征空間上的條件概率分布。決策樹在機(jī)器學(xué)習(xí)模型領(lǐng)域的特殊之處在于其信息表示的清晰度。決策樹通過訓(xùn)練獲得的“知識(shí)”直接形成層次結(jié)構(gòu)。以這種結(jié)構(gòu)保存和展示知識(shí),即使不是專家,也可以很容易地理解。決策樹概述任務(wù)3.2—知識(shí)準(zhǔn)備—1.決策樹概述決策樹的優(yōu)點(diǎn)如下:(1)在決策樹算法中,通過學(xué)習(xí)簡(jiǎn)單的決策規(guī)則來建立決策樹模型的過程非常容易理解,(2)決策樹模型可以可視化,非常直觀。(3)應(yīng)用范圍廣,可用于分類任務(wù)和回歸任務(wù),而且非常容易做多類別的分類。(4)決策樹能夠用于處理數(shù)值型和連續(xù)的樣本特征。任務(wù)3.2—知識(shí)準(zhǔn)備—1.決策樹概述決策樹的缺點(diǎn)如下:(1)很容易在訓(xùn)練數(shù)據(jù)中生成復(fù)雜的樹結(jié)構(gòu),造成過擬合(Overfitting)。剪枝可以緩解過擬合的負(fù)作用,常用方法是限制樹的高度及葉節(jié)點(diǎn)中的最小樣本數(shù)。采用決策樹的目的是做出“決策”。一般來說,每個(gè)節(jié)點(diǎn)上都保存了一個(gè)特征分支,輸入數(shù)據(jù)通過特征繼續(xù)訪問子節(jié)點(diǎn),直到訪問至葉節(jié)點(diǎn),就找到了目標(biāo),或者說“做出了決策”。(2)學(xué)習(xí)一棵最佳的決策樹被認(rèn)為是NP完全問題。實(shí)際中的決策樹是在啟發(fā)式的貪婪算法的基礎(chǔ)上建立的,也就是在做每個(gè)決策時(shí)都采取最佳解,這種算法不能保證建立全局最佳的決策樹。任務(wù)3.2—知識(shí)準(zhǔn)備—1.決策樹概述與決策樹相關(guān)的重要概念如下:(1)根節(jié)點(diǎn)(RootNode):表示整個(gè)樣本集,并且該節(jié)點(diǎn)可以進(jìn)一步拆分成兩個(gè)或多個(gè)子集。(2)拆分(Splitting):表示將一個(gè)節(jié)點(diǎn)拆分成多個(gè)子集的過程。(3)決策節(jié)點(diǎn)(DecisionNode):當(dāng)一個(gè)子節(jié)點(diǎn)進(jìn)一步被拆分成多個(gè)子節(jié)點(diǎn)時(shí),這個(gè)子節(jié)點(diǎn)就叫作決策節(jié)點(diǎn)。(4)葉節(jié)點(diǎn)(Leaf):又名終節(jié)點(diǎn)(TerminalNode),無法再拆分的節(jié)點(diǎn)被稱為葉節(jié)點(diǎn)。(5)剪枝(Pruning):移除決策樹中子節(jié)點(diǎn)的過程就叫作剪枝,跟拆分過程相反。(6)分支/子樹(Branch/Subtree):一棵決策樹的一部分就叫作分支或子樹。(7)父節(jié)點(diǎn)和子節(jié)點(diǎn)(ParentandChildNode):一個(gè)節(jié)點(diǎn)能被拆分成多個(gè)節(jié)點(diǎn),這個(gè)節(jié)點(diǎn)就叫作父節(jié)點(diǎn),拆分成的節(jié)點(diǎn)就叫作子節(jié)點(diǎn)。任務(wù)3.2—知識(shí)準(zhǔn)備—2.決策樹分類算法
1)ID3算法ID3算法是由J.RossQuinlan開發(fā)的一種基于決策樹的分類算法。該算法以信息論為基礎(chǔ),以信息熵和信息增益為衡量標(biāo)準(zhǔn),用于實(shí)現(xiàn)對(duì)數(shù)據(jù)的歸納分類。根據(jù)信息增益,運(yùn)用自頂向下的貪婪策略是ID3算法建立決策樹的主要方法。ID3算法的主要優(yōu)點(diǎn)是建立的決策樹的規(guī)模比較小,查詢速度比較快。這個(gè)算法建立在“奧卡姆剃刀”的基礎(chǔ)上,即越是小型的決策樹就越優(yōu)越。但是,該算法在某些情況下生成的并不是最小的樹型結(jié)構(gòu)。任務(wù)3.2—知識(shí)準(zhǔn)備—2.決策樹分類算法
(1)信息量。信息量是對(duì)信息多少的度量,這里的信息就是你理解的信息,如一條新聞、考試答案等。假設(shè)我們聽到了以下兩件事:①事件A:一個(gè)同學(xué)投進(jìn)了一個(gè)罰球。②事件B:一個(gè)同學(xué)連續(xù)投進(jìn)了一千個(gè)三分球。僅憑直覺來說,事件B的信息量比事件A的信息量要大,這是因?yàn)槭录嗀發(fā)生的概率很大,事件B發(fā)生的概率很小。所以,當(dāng)越不可能發(fā)生的事件發(fā)生了,我們獲取到的信息量就越大;當(dāng)越可能發(fā)生的事件發(fā)生了,我們獲取到的信息量就越小。那么:①信息量和事件發(fā)生的概率相關(guān),事件發(fā)生的概率越低,傳遞的信息量就越大。②信息量應(yīng)當(dāng)是非負(fù)的,必然發(fā)生的事件的信息量為零(必然事件是必然發(fā)生的,所以沒有信息量。幾乎不可能事件一發(fā)生,就具有近乎無窮大的信息量)。③兩個(gè)事件的信息量可以相加,并且兩個(gè)獨(dú)立事件的聯(lián)合信息量應(yīng)該是它們各自信息量的和。任務(wù)3.2—知識(shí)準(zhǔn)備—2.決策樹分類算法
若已知事件Xi已發(fā)生,則表示Xi所含有或所提供的信息量為在式中,如果以2為底數(shù),單位是比特(bit);如果以e為底數(shù),單位是nat;如果以10為底數(shù),單位是det。例如,今天下雨的概率是0.5,則包含的信息量為?log20.5=1(bit);下雨天飛機(jī)正常起飛的概率為0.25,則包含的信息量為?log20.25=2(bit)。任務(wù)3.2—知識(shí)準(zhǔn)備—2.決策樹分類算法
(2)信息熵。信息熵是接收信息量的均值,用于確定信息的不確定程度,是隨機(jī)變量的均值。信息熵越大,信息就越凌亂或傳輸?shù)男畔⒕驮蕉啵乇旧淼母拍钤从谖锢韺W(xué)中所描述的一個(gè)熱力學(xué)系統(tǒng)的無序程度。信息熵的處理是一個(gè)讓信息的熵減少的過程。假設(shè)X是一個(gè)離散的隨機(jī)變量,且它的取值范圍為x1,x2,…,xn,每個(gè)值能取到的概率分別是
p1,p1,…,pn,那么X的熵的定義式為任務(wù)3.2—知識(shí)準(zhǔn)備—2.決策樹分類算法
(3)條件熵。在決策樹的切分里,事件xi可以被看作在樣本中出現(xiàn)某個(gè)標(biāo)簽/決策。于是
P(xi)可以用所有樣本中某個(gè)標(biāo)簽出現(xiàn)的頻率來代替。但我們求熵是為了決定采用哪一個(gè)維度進(jìn)行切分,因此有一個(gè)新的概念——條件熵,其計(jì)算公式為這里我們認(rèn)為Y就是用某個(gè)維度進(jìn)行切分,那么y就是切成的某個(gè)子集,
就是這個(gè)子集的熵。因此,可以認(rèn)為條件熵就是每個(gè)子集的熵的一個(gè)加權(quán)平均值/期望值。任務(wù)3.2—知識(shí)準(zhǔn)備—2.決策樹分類算法
(4)信息增益。信息熵表示的是不確定度。在均勻分布時(shí),不確定度最大,此時(shí)熵就最大。當(dāng)選擇某個(gè)特征對(duì)數(shù)據(jù)集進(jìn)行分類時(shí),分類后的數(shù)據(jù)集信息熵會(huì)比分類前的小,二者的差值用信息增益表示。信息增益用于度量屬性A對(duì)降低樣本集X的熵的貢獻(xiàn)大小。信息增益可以衡量某個(gè)特征對(duì)分類結(jié)果的影響的大小。信息增益越大,就越適用于對(duì)X進(jìn)行分析。有了信息熵的定義式后,信息增益的概念便很好理解了。信息增益表示初始熵與分割后的總體熵的差值。我們假設(shè)特征集中有一個(gè)離散特征a,它有V個(gè)可能的取值a1,a2,…,aV,如果用特征a對(duì)樣本D進(jìn)行劃分,那么會(huì)產(chǎn)生V個(gè)分支節(jié)點(diǎn),將第v個(gè)分支節(jié)點(diǎn)包含的樣本集記為Dv。于是可計(jì)算出特征a對(duì)樣本集D進(jìn)行劃分所獲得的信息增益,即任務(wù)3.2—知識(shí)準(zhǔn)備—2.決策樹分類算法
在式中,其實(shí)特征a對(duì)樣本集D進(jìn)行劃分所獲得的信息增益即為樣本集D的信息熵減去劃分后各個(gè)分支的信息熵之和。由于每個(gè)分支節(jié)點(diǎn)所包含的樣本數(shù)不同,所以在計(jì)算每個(gè)分支的信息熵時(shí),需要乘以對(duì)應(yīng)權(quán)重
,即樣本數(shù)越多的分支節(jié)點(diǎn)對(duì)應(yīng)的影響越大。任務(wù)3.2—知識(shí)準(zhǔn)備—2.決策樹分類算法
根據(jù)信息論的知識(shí)中我們知道:信息熵越大,樣本純度就越低。ID3算法的核心思想就是以信息增益來度量特征選擇,選擇信息增益最大的特征進(jìn)行分裂。ID3算法采用自頂向下的貪婪搜索遍歷可能的決策樹空間(C4.5算法也是采用的貪婪搜索),大致步驟如下:①初始化特征集和數(shù)據(jù)集。②計(jì)算數(shù)據(jù)集的信息熵和所有特征的條件熵,選擇信息增益最大的特征作為當(dāng)前決策節(jié)點(diǎn)。③更新數(shù)據(jù)集和特征集(刪除步驟②使用的特征,并按照特征值來劃分不同分支的數(shù)據(jù)集);④重復(fù)②、③兩步,若子集值包含單一特征,則決策樹會(huì)產(chǎn)生一個(gè)分支葉子節(jié)點(diǎn)。任務(wù)3.2—知識(shí)準(zhǔn)備—2.決策樹分類算法
ID3算法以信息增益為準(zhǔn)則來選擇劃分屬性。信息熵(InformationEntropy)是度量樣本集純度的常用指標(biāo),假定當(dāng)前樣本集D中的第k類樣本所占比例為pk,則樣本集D的信息熵的定義式為假定通過屬性劃分樣本集D,產(chǎn)生了V個(gè)分支節(jié)點(diǎn),v表示其中第v個(gè)分支節(jié)點(diǎn),易知:分支節(jié)點(diǎn)包含的樣本數(shù)越,表示該分支節(jié)點(diǎn)的影響力越大。故可以計(jì)算出劃分后相比原始數(shù)據(jù)集D獲得的信息增益(InformationGain)。信息增益越大表示使用該屬性劃分樣本集D的效果越好,因此ID3算法在遞歸過程中,每次選擇最大信息增益的屬性作為當(dāng)前的劃分屬性。但I(xiàn)D3算法也有缺點(diǎn),例如:ID3算法沒有剪枝策略,容易過擬合;信息增益準(zhǔn)則對(duì)可取值數(shù)目較多的特征有所偏好,類似“編號(hào)”的特征,其信息增益接近1;只能用于處理離散分布的特征;沒有考慮缺失值。任務(wù)3.2—知識(shí)準(zhǔn)備—2.決策樹分類算法
2)C4.5C4.5算法最大的特點(diǎn)是克服了ID3算法對(duì)特征數(shù)目的偏好這一缺點(diǎn),引入信息增益率作為分類標(biāo)準(zhǔn)。(1)思想。C4.5算法相對(duì)于ID3算法的缺點(diǎn)有以下幾種改進(jìn)方式:①引入悲觀剪枝(PEP)策略進(jìn)行后剪枝。②引入信息增益率作為劃分標(biāo)準(zhǔn)。③可以處理連續(xù)值:將連續(xù)特征離散化,假設(shè)n個(gè)樣本的連續(xù)特征A有m個(gè)取值,用C4.5算法將其排序并取相鄰兩樣本值的平均數(shù)——共(m-1)個(gè)劃分點(diǎn),分別計(jì)算以該劃分點(diǎn)作為二元分類點(diǎn)時(shí)的信息增益,并選擇信息增益最大的點(diǎn)作為該連續(xù)特征的二元離散分類點(diǎn)。④可以處理缺失值:對(duì)缺失值的處理涉及兩個(gè)子問題。任務(wù)3.2—知識(shí)準(zhǔn)備—2.決策樹分類算法
問題一:如何在特征值缺失的情況下進(jìn)行劃分特征的選擇?(即如何計(jì)算特征的信息增益率)問題二:選定該劃分特征,模型對(duì)于缺失該特征值的樣本該如何處理?(即到底把這個(gè)樣本劃分到哪個(gè)節(jié)點(diǎn)里)針對(duì)問題一,C4.5算法的做法如下:對(duì)于具有缺失值的特征,用沒有缺失的樣本子集所占的比例來折算信息增益率。針對(duì)問題二,C4.5算法的做法如下:將樣本同時(shí)劃分到所有子節(jié)點(diǎn)中,不過要調(diào)整樣本的權(quán)重,其實(shí)也就是將樣本以不同概率劃分到不同節(jié)點(diǎn)中。任務(wù)3.2—知識(shí)準(zhǔn)備—2.決策樹分類算法
(2)劃分標(biāo)準(zhǔn)。利用信息增益率可以克服信息增益的缺點(diǎn),信息增益率公式為這里需要注意,信息增益率對(duì)可取值較少的特征有所偏好(分母越小,整體越大),因此C4.5算法并不是直接用信息增益率最大的特征進(jìn)行劃分,而是使用一種啟發(fā)式方法:先從候選劃分特征中找到信息增益高于均值的特征,再從中選擇信息增益率最高的。任務(wù)3.2—知識(shí)準(zhǔn)備—2.決策樹分類算法
(3)剪枝策略(預(yù)剪枝+后剪枝)。剪枝的原因是過擬合的樹在泛化能力方面的表現(xiàn)非常差。首先是預(yù)剪枝。預(yù)剪枝是在決策樹生成的過程中,對(duì)每個(gè)節(jié)點(diǎn)在劃分前先進(jìn)行估計(jì),若當(dāng)前節(jié)點(diǎn)的劃分不能帶來決策樹泛化能力的提升,則停止劃分,并將當(dāng)前節(jié)點(diǎn)標(biāo)記為葉節(jié)點(diǎn)。在構(gòu)建決策樹的過程中,先評(píng)估,再考慮是否分支。衡量決策樹泛化能力是否提升的標(biāo)準(zhǔn)如下:節(jié)點(diǎn)內(nèi)的樣本數(shù)據(jù)是否低于某一閾值,所有節(jié)點(diǎn)特征是否都已分裂,節(jié)點(diǎn)劃分前的準(zhǔn)確率是否比劃分后的準(zhǔn)確率高等。預(yù)剪枝可以降低過擬合風(fēng)險(xiǎn),顯著減少?zèng)Q策樹訓(xùn)練時(shí)間的開銷,以及測(cè)試時(shí)間開銷。但預(yù)剪枝基于貪婪策略,有可能會(huì)帶來欠擬合風(fēng)險(xiǎn)。任務(wù)3.2—知識(shí)準(zhǔn)備—2.決策樹分類算法
其次是后剪枝。后剪枝就是在已經(jīng)生成的決策樹上進(jìn)行剪枝,從而得到簡(jiǎn)化版的剪枝決策樹。C4.5算法采用PEP算法,用遞歸的方式從低到高針對(duì)每個(gè)非葉節(jié)點(diǎn),評(píng)估用一個(gè)最佳葉節(jié)點(diǎn)代替這棵子樹是否有益。如果剪枝后與剪枝前相比,剪枝后的錯(cuò)誤率是保持或者下降的,則這棵子樹可以被替換掉。C4.5算法通過訓(xùn)練集上的錯(cuò)誤分類數(shù)量來估算未知樣本上的錯(cuò)誤率。后剪枝決策樹的欠擬合風(fēng)險(xiǎn)很小,泛化能力往往高于預(yù)剪枝決策樹,但后剪枝決策樹的訓(xùn)練時(shí)間會(huì)長得多。任務(wù)3.2—知識(shí)準(zhǔn)備—2.決策樹分類算法
(4)缺點(diǎn)。①剪枝策略可以再優(yōu)化。②C4.5算法用的是多叉樹,用二叉樹效率更高。③C4.5算法只能用于分類任務(wù)。④C4.5算法使用的熵模型擁有大量耗時(shí)的對(duì)數(shù)運(yùn)算,連續(xù)值還有排序運(yùn)算。⑤C4.5算法在構(gòu)建樹的過程中,對(duì)數(shù)值屬性值需要按照其大小進(jìn)行排序,從中選擇一個(gè)分割點(diǎn),所以C4.5算法只適用于能夠駐留于內(nèi)存的數(shù)據(jù)集。當(dāng)訓(xùn)練集大得無法在內(nèi)存中駐留時(shí),程序無法運(yùn)行。任務(wù)3.2—知識(shí)準(zhǔn)備—2.決策樹分類算法
3)CART算法CART(ClassificationAndRegressionTree,分類與回歸樹),從名字就可以看出其不僅可以用于分類任務(wù),也可以用于回歸任務(wù)。在這里,我們不對(duì)回歸樹進(jìn)行過多的闡述。ID3算法和C4.5算法雖然在對(duì)訓(xùn)練樣本集的學(xué)習(xí)中可以盡可能多地挖掘信息,但是二者生成的決策樹分支比較多,規(guī)模都比較大。CART算法的二分法可以縮小決策樹的規(guī)模,提高生成決策樹的效率。CART算法的兩個(gè)主要步驟如下:對(duì)樣本遞歸劃分并實(shí)施建樹,用驗(yàn)證數(shù)據(jù)剪枝。任務(wù)3.2—知識(shí)準(zhǔn)備—2.決策樹分類算法
(1)思想。CART包含的基本過程有分裂、剪枝和樹選擇。分裂:分裂過程是一個(gè)二叉遞歸劃分過程,其輸入和預(yù)測(cè)特征既可以是連續(xù)型的,也可以是離散型的,且CART沒有停止準(zhǔn)則,會(huì)一直生長下去。剪枝:采用CCP(代價(jià)復(fù)雜度剪枝)算法,從最大樹開始,每次選擇訓(xùn)練數(shù)據(jù)熵對(duì)整體性能貢獻(xiàn)最小的那個(gè)分裂節(jié)點(diǎn)作為下一個(gè)剪枝對(duì)象,直到只剩下根節(jié)點(diǎn)為止。CART會(huì)產(chǎn)生一系列嵌套的剪枝樹,需要從中選出一棵最佳的決策樹。樹選擇:用單獨(dú)的測(cè)試集評(píng)估每棵剪枝樹的預(yù)測(cè)性能(也可以用CV)。任務(wù)3.2—知識(shí)準(zhǔn)備—2.決策樹分類算法
CART在C4.5決策樹的基礎(chǔ)上有很多提升。①C4.5決策樹為多叉樹,運(yùn)算速度慢;CART為二叉樹,運(yùn)算速度快。②C4.5算法只能用于分類任務(wù);CART算法既可以用于分類任務(wù),也可以用于回歸任務(wù)。③CART算法將基尼系數(shù)作為變量的不純度量,減少了大量的對(duì)數(shù)運(yùn)算。④CART算法采用代理測(cè)試來估計(jì)缺失值,而C4.5以不同概率劃分到不同節(jié)點(diǎn)中。⑤CART算法采用CCP算法剪枝,而C4.5算法采用PEP算法剪枝。任務(wù)3.2—知識(shí)準(zhǔn)備—2.決策樹分類算法
(2)劃分標(biāo)準(zhǔn)(基尼系數(shù))。CART用基尼系數(shù)來選擇劃分屬性,基尼系數(shù)反映的是從樣本集D中隨機(jī)抽取兩個(gè)樣本,其類別標(biāo)記不一致的概率,因此Gini(D)越小越好。這和信息增益(率)正好相反,基尼系數(shù)的定義式為根據(jù)式,基尼系數(shù)越小,數(shù)據(jù)集的純度就越高?;嵯禂?shù)偏向于特征值較多的特征,類似信息增益。基尼系數(shù)可以用來度量任何不均勻分布,是介于0與1之間的數(shù),0是完全相等,1是完全不相等,任務(wù)3.2—知識(shí)準(zhǔn)備—2.決策樹分類算法
(3)缺失值處理。前面說到,模型對(duì)于缺失值的處理涉及兩個(gè)子問題:?jiǎn)栴}一:如何在特征值缺失的情況下進(jìn)行劃分特征的選擇?對(duì)于問題一,CART算法一開始嚴(yán)格要求在進(jìn)行分裂特征評(píng)估時(shí),只能使用在該特征上沒有缺失值的那部分?jǐn)?shù)據(jù)。在后續(xù)版本中,CART算法使用了一種懲罰機(jī)制來抑制提升值,從而反映出缺失值的影響。任務(wù)3.2—知識(shí)準(zhǔn)備—2.決策樹分類算法
問題二:選定該劃分特征,模型對(duì)于缺失該特征值的樣本該如何處理?對(duì)于問題二,CART算法的機(jī)制是為樹的每個(gè)節(jié)點(diǎn)都找到代理分裂器,無論在訓(xùn)練數(shù)據(jù)上得到的樹是否有缺失值,都會(huì)這樣做。在代理分裂器中,特征的分值必須超過默認(rèn)規(guī)則的性能才有資格作為代理(代理就是代替缺失值特征作為劃分特征的特征),當(dāng)CART中遇到缺失值時(shí),這個(gè)實(shí)例劃分到左邊還是右邊取決于其排名最高的代理。如果這個(gè)代理的值也缺失了,那么使用排名第二的代理,以此類推。如果所有代理的值都缺失了,那么默認(rèn)規(guī)則就是把樣本劃分到較大的那個(gè)子節(jié)點(diǎn)中。代理分裂器可以確保從無缺失訓(xùn)練數(shù)據(jù)上得到的樹可以用來處理包含缺失值的新數(shù)據(jù)。任務(wù)3.2—知識(shí)準(zhǔn)備—2.決策樹分類算法
(4)剪枝策略。首先,采用一種CCP算法進(jìn)行后剪枝,這種方法會(huì)生成一系列樹,每棵樹都是通過將前面的樹的某棵或某些子樹替換成一個(gè)葉節(jié)點(diǎn)而得到的。一系列樹中的最后一棵樹僅含一個(gè)用來預(yù)測(cè)類別的葉節(jié)點(diǎn)。然后,用一種成本復(fù)雜度的度量準(zhǔn)則來判斷哪棵子樹應(yīng)該被一個(gè)預(yù)測(cè)類別值的葉節(jié)點(diǎn)代替。這種方法需要用一個(gè)單獨(dú)的測(cè)試集來評(píng)估所有的樹,根據(jù)它們測(cè)試集熵時(shí)的分類性能選出最佳的樹。任務(wù)3.2—知識(shí)準(zhǔn)備—2.決策樹分類算法
(5)類別不平衡。CART算法的一大優(yōu)勢(shì)在于無論訓(xùn)練集多么失衡,它都可以將失衡點(diǎn)自動(dòng)消除,不需要建模人員采取其他操作。CART算法使用了一種先驗(yàn)機(jī)制,其作用相當(dāng)于對(duì)類別進(jìn)行加權(quán)。這種先驗(yàn)機(jī)制嵌入了CART算法判斷分裂優(yōu)劣的運(yùn)算里,在CART算法默認(rèn)的分類模式中,總是要計(jì)算每個(gè)節(jié)點(diǎn)關(guān)于根節(jié)點(diǎn)的類別頻率的比值,這就相當(dāng)于對(duì)數(shù)據(jù)自動(dòng)重加權(quán),對(duì)類別進(jìn)行均衡處理。例如二分類,根節(jié)點(diǎn)屬于1類和0類的分別有20個(gè)和80個(gè)。子節(jié)點(diǎn)上有30個(gè)樣本,其中,屬于1類和0類的分別是10個(gè)和20個(gè)。因?yàn)?0/20>20/80,所以該節(jié)點(diǎn)屬于1類。采用這種計(jì)算方式就無須管理數(shù)據(jù)真實(shí)的類別分布。假設(shè)有k個(gè)目標(biāo)類別,就可以確保根節(jié)點(diǎn)中每個(gè)類別的概率都是1/k。這種默認(rèn)的模式被稱為先驗(yàn)相等。先驗(yàn)和加權(quán)的不同之處在于先驗(yàn)不影響每個(gè)節(jié)點(diǎn)中各類別樣本的數(shù)量或者份額,它影響的是每個(gè)節(jié)點(diǎn)的類別賦值和樹生長過程中分裂的選擇。任務(wù)3.2—知識(shí)準(zhǔn)備—2.決策樹分類算法
(6)總結(jié)。最后對(duì)比一下ID3、C4.5和CART三種算法之間的差異,除了之前列出來的劃分標(biāo)準(zhǔn)、剪枝策略、連續(xù)值缺失值的處理方式等,還有一些其他的差異。劃分標(biāo)準(zhǔn)的差異:ID3算法使用信息增益偏向于特征值多的特征;C4.5算法使用信息增益率以克服信息增益的缺點(diǎn),偏向于特征值小的特征;CART算法使用基尼系數(shù)以克服C4.5算法需要求對(duì)數(shù)的巨大計(jì)算量,偏向于特征值較多的特征。任務(wù)3.2—知識(shí)準(zhǔn)備—2.決策樹分類算法
使用場(chǎng)景的差異:①ID3算法和C4.5算法都只能用于分類任務(wù);而CART算法既可以用于分類任務(wù),也可以用于回歸任務(wù)。②ID3決策樹和C4.5決策樹是多叉樹,計(jì)算速度較慢,而CART是二叉樹,計(jì)算速度很快。樣本數(shù)據(jù)的差異:①ID3算法只能處理離散數(shù)據(jù)且缺失值敏感,而C4.5算法和CART算法可以處理連續(xù)性數(shù)據(jù)且有多種方式處理缺失值;②從樣本數(shù)據(jù)量的角度考慮,小樣本建議選擇C4.5算法、大樣本建議選擇CART算法。③在C4.5算法的處理過程中,需對(duì)數(shù)據(jù)集進(jìn)行多次掃描排序,耗時(shí)較多;而CART算法本身是一種大樣本的統(tǒng)計(jì)方法,對(duì)于小樣本的處理,其泛化誤差較大。任務(wù)3.2—知識(shí)準(zhǔn)備—2.決策樹分類算法
樣本特征的差異:ID3算法和C4.5算法的層級(jí)之間只使用一次特征,CART算法可多次重復(fù)使用特征。剪枝策略的差異:ID3算法沒有剪枝策略,C4.5算法通過PEP策略來修正樹的準(zhǔn)確性,而CART算法通過CCP策略來修正樹的準(zhǔn)確性。任務(wù)3.2—知識(shí)準(zhǔn)備—3.剪枝決策樹很容易發(fā)生過擬合,改善方法如下:通過閾值控制終止條件,避免樹形結(jié)構(gòu)分支過細(xì)。通過對(duì)已經(jīng)形成的決策樹進(jìn)行剪枝來避免過擬合?;谧灾ǎ˙ootstrap法)的思想建立隨機(jī)森林。1)剪枝的分類為了避開決策樹過擬合(Overfitting)樣本,要對(duì)決策樹進(jìn)行剪枝。為了使CART剪枝算法對(duì)未知數(shù)據(jù)有更好的預(yù)測(cè),需從“完全生長”的決策樹底部剪去一些子樹,使決策樹變小,模型變簡(jiǎn)單。預(yù)剪枝(Pre-Pruning)與后剪枝(Post-Pruning)是剪枝的兩種情況。任務(wù)3.2—知識(shí)準(zhǔn)備—3.剪枝
(1)預(yù)剪枝預(yù)剪枝是指在決策樹的構(gòu)建過程中,對(duì)每個(gè)節(jié)點(diǎn)在劃分前需要根據(jù)不同的指標(biāo)進(jìn)行估計(jì),如果已經(jīng)滿足對(duì)應(yīng)指標(biāo)了,則不再進(jìn)行劃分,否則繼續(xù)劃分。樹的增長不能是無限的,因此需要設(shè)定一些條件,若樹的增長觸發(fā)了某個(gè)條件,則樹的增長需要停止。這些條件稱作停止條件(StoppingCriteria),常用的停止條件如下:①直接指定樹的深度。②直接指定葉節(jié)點(diǎn)數(shù)。③直接指定葉節(jié)點(diǎn)的樣本數(shù)。④劃分后的信息增益小于某個(gè)閾值。⑤對(duì)驗(yàn)證集中的數(shù)據(jù)進(jìn)行驗(yàn)證,看分割之后的精度是否有提高。由于預(yù)剪枝是在構(gòu)建決策樹的同時(shí)進(jìn)行剪枝處理,所以其訓(xùn)練時(shí)間開銷較少,同時(shí)可以有效地降低過擬合的風(fēng)險(xiǎn)。但是,預(yù)剪枝有一個(gè)問題,即會(huì)給決策樹帶來欠擬合的風(fēng)險(xiǎn)。任務(wù)3.2—知識(shí)準(zhǔn)備—3.剪枝
(2)后剪枝后剪枝是先根據(jù)訓(xùn)練集生成一棵完整的決策樹,然后根據(jù)相關(guān)方法進(jìn)行剪枝。常用的一種方法是,自底向上,對(duì)非葉節(jié)點(diǎn)進(jìn)行考察,同樣對(duì)驗(yàn)證集中的數(shù)據(jù)根據(jù)精度進(jìn)行考察,看該節(jié)點(diǎn)劃分后的精度是否有提高,如果劃分后的精度沒有提高,則剪掉此子樹,將其替換為葉節(jié)點(diǎn)。相比預(yù)剪枝,后剪枝的欠擬合風(fēng)險(xiǎn)很小,同時(shí),其泛化能力往往要優(yōu)于預(yù)剪枝。但是,因?yàn)楹蠹糁σ壬烧脹Q策樹,然后才自底向上依次考察每個(gè)非葉節(jié)點(diǎn),所以其訓(xùn)練時(shí)間長。任務(wù)3.2—知識(shí)準(zhǔn)備—3.剪枝
2)后剪枝算法(1)錯(cuò)誤率降低剪枝(Reduced-ErrorPruning,REP)算法。REP算法是十分簡(jiǎn)單的后剪枝算法。它需要用一個(gè)剪枝驗(yàn)證集對(duì)決策樹進(jìn)行剪枝,用訓(xùn)練集訓(xùn)練數(shù)據(jù)。通常取出可用樣例的1/3作為驗(yàn)證集,將剩余的2/3作為訓(xùn)練集。它主要用于防止決策樹過擬合。決定是否修剪某個(gè)節(jié)點(diǎn)的步驟如下:①刪除以該節(jié)點(diǎn)為根節(jié)點(diǎn)的子樹。②使該節(jié)點(diǎn)成為葉節(jié)點(diǎn)。③賦予與該節(jié)點(diǎn)關(guān)聯(lián)的訓(xùn)練數(shù)據(jù)最常見分類。④當(dāng)修剪后的樹在驗(yàn)證集的性能方面,與原來的樹相同或優(yōu)于原來的樹時(shí),該節(jié)點(diǎn)才真正被刪除。任務(wù)3.2—知識(shí)準(zhǔn)備—3.剪枝
利用訓(xùn)練集過擬合的性質(zhì),使訓(xùn)練集數(shù)據(jù)能夠?qū)ζ溥M(jìn)行修正。反復(fù)進(jìn)行上述步驟,采用自底向上的方法處理節(jié)點(diǎn),將那些能夠最大限度地提高驗(yàn)證集精度的節(jié)點(diǎn)刪去,直到進(jìn)一步的修剪是有害的為止(修剪會(huì)降低驗(yàn)證集的精度)。在數(shù)據(jù)較少的情況下,很少應(yīng)用REP算法。該算法趨于過擬合,這是因?yàn)橛?xùn)練集中存在的特性在剪枝過程中都被忽略,當(dāng)剪枝數(shù)據(jù)集比訓(xùn)練集小得多時(shí),這個(gè)問題需要特別注意。任務(wù)3.2—知識(shí)準(zhǔn)備—3.剪枝
(2)悲觀剪枝(PessimisticErrorPruning,PEP)算法(用于C4.5決策樹)。PEP算法是在C4.5算法中提出的,該算法以訓(xùn)練數(shù)據(jù)的誤差評(píng)估為基礎(chǔ),因此相比REP算法,它不需要一個(gè)單獨(dú)的測(cè)試集。但訓(xùn)練數(shù)據(jù)也帶來錯(cuò)分誤差偏向于訓(xùn)練集的問題,因此需要加入個(gè)修正因子(懲罰因子)0.5,是自上而下的修剪。之所以稱“悲觀”,可能是因?yàn)槊總€(gè)葉節(jié)點(diǎn)都會(huì)自動(dòng)加入一個(gè)懲罰因子,“悲觀”地提高誤判率。PEP算法是根據(jù)剪枝前后的誤判率來判定子樹是否需要修剪的。該算法引入了統(tǒng)計(jì)學(xué)中“連續(xù)修正”的概念,彌補(bǔ)REP算法的缺陷,在評(píng)價(jià)子樹的訓(xùn)練錯(cuò)誤公式中
添加了一個(gè)常數(shù),假定每個(gè)葉節(jié)點(diǎn)都自動(dòng)對(duì)實(shí)例的某部分進(jìn)行錯(cuò)誤的分類。任務(wù)3.2—知識(shí)準(zhǔn)備—3.剪枝
把一棵子樹(具有多個(gè)葉節(jié)點(diǎn))的分類用一個(gè)葉節(jié)點(diǎn)來替代的話,在訓(xùn)練集上的誤判率肯定是上升的,但是在新數(shù)據(jù)上不一定。因此,我們需要對(duì)子樹的誤判計(jì)算加上一個(gè)經(jīng)驗(yàn)性的懲罰因子。如果一個(gè)葉節(jié)點(diǎn)覆蓋了N個(gè)樣本,其中有E個(gè)錯(cuò)誤,那么該葉節(jié)點(diǎn)的誤判率為(E+0.5)/N,這個(gè)0.5就是懲罰因子。一棵擁有L個(gè)葉節(jié)點(diǎn)的子樹的誤判率估計(jì)為由此我們可以看到,一棵子樹雖然具有多個(gè)子節(jié)點(diǎn),但由于加上了懲罰因子,所以子樹的誤判率計(jì)算未必就低。剪枝后,內(nèi)部節(jié)點(diǎn)變成了葉節(jié)點(diǎn),其誤判次數(shù)J也需要加上一個(gè)懲罰因子,變成J+0.5。使用訓(xùn)練數(shù)據(jù),子樹總是比將其替換為葉節(jié)點(diǎn)后產(chǎn)生的誤差小,但是經(jīng)過修正,有的誤差計(jì)算方法并非如此。在子樹的誤判次數(shù)超過對(duì)應(yīng)葉節(jié)點(diǎn)的誤判次數(shù)一個(gè)標(biāo)準(zhǔn)差之后,可以決定剪枝,這時(shí)滿足被替換子樹的誤判次數(shù)–標(biāo)準(zhǔn)差>新葉子的誤判次數(shù)。這個(gè)標(biāo)準(zhǔn)差如何計(jì)算呢?任務(wù)3.2—知識(shí)準(zhǔn)備—3.剪枝
我們假定一棵子樹錯(cuò)誤分類一個(gè)樣本的值為1,正確分類一個(gè)樣本的值為0,該子樹錯(cuò)誤分類的概率(誤判率)為e,則每分類一個(gè)樣本,都可以近似看作是一次伯努利試驗(yàn),覆蓋N個(gè)樣本就是做N次獨(dú)立的伯努利試驗(yàn),因此我們可以把子樹的誤判次數(shù)近似看作是服從B(N,e)的二項(xiàng)分布(二項(xiàng)分布就是重復(fù)N次獨(dú)立的伯努利試驗(yàn))。因此,我們很容易估計(jì)出子該樹的誤判次數(shù)的均值和標(biāo)準(zhǔn)差:當(dāng)然,并不一定非要大一個(gè)標(biāo)準(zhǔn)差,可以給定任意的置信區(qū)間,我們只要設(shè)定一定的顯著性因子,就可以估算出誤判次數(shù)的上下界。對(duì)于給定的置信區(qū)間,將下界估計(jì)作為規(guī)則性能的度量。這樣做的結(jié)果是,對(duì)于大的數(shù)據(jù)集,該剪枝策略能夠非常接近觀察精度,隨著數(shù)據(jù)集的減小,離觀察精度也越來越遠(yuǎn)。該剪枝算法雖然不是統(tǒng)計(jì)有效的,但是在實(shí)踐中有效。PEP算法采用自頂向下的方式,將滿足“被替換子樹的誤判數(shù)-標(biāo)準(zhǔn)差>新葉子的誤判數(shù)”這個(gè)不等式的非葉節(jié)點(diǎn)裁剪掉。該算法是目前決策樹后剪枝算法中精度比較高的算法之一,它還存在一些缺陷。首先,PEP算法是唯一使用自頂向下剪枝策略的后剪枝算法,但這樣的算法有時(shí)會(huì)導(dǎo)致某些不該被剪掉的某節(jié)點(diǎn)的子節(jié)點(diǎn)被剪掉。任務(wù)3.2—知識(shí)準(zhǔn)備—3.剪枝
(3)最小誤差剪枝(MinimumErrorPruning,MEP)算法。一個(gè)觀測(cè)樣本到達(dá)節(jié)點(diǎn)t且屬于類別i的概率為式中,表示在t節(jié)點(diǎn)下的訓(xùn)練樣本中,被判斷為i類的樣本數(shù);表示在i類別的先驗(yàn)概率;表示t節(jié)點(diǎn)下訓(xùn)練樣本的數(shù)量;m為評(píng)估方法的一個(gè)參數(shù)。任務(wù)3.2—知識(shí)準(zhǔn)備—3.剪枝
某一個(gè)節(jié)點(diǎn)的期望錯(cuò)誤率Es的計(jì)算公式為式中,Es為期望錯(cuò)誤率,用于評(píng)價(jià)剪枝是否標(biāo)準(zhǔn);為該節(jié)點(diǎn)下c類別最多的樣本數(shù);為c這個(gè)最多類別的先驗(yàn)概率。N為該節(jié)點(diǎn)所在支的樣本數(shù);任務(wù)3.2—知識(shí)準(zhǔn)備—3.剪枝
(4)代價(jià)復(fù)雜度剪枝(Cost-ComplexityPruning,CCP)算法(用于CART)。一棵樹的好壞用式衡量:式中,表示對(duì)該樹誤差(代價(jià))的衡量;表示前面兩者的平衡系數(shù),其值越大,樹就越小,反之樹就越大。C(T)表示對(duì)樹的大小的衡量(可以用樹的終端節(jié)點(diǎn)個(gè)數(shù)代表);任務(wù)3.2—知識(shí)準(zhǔn)備—3.剪枝
在利用該準(zhǔn)則剪枝前,有如下兩個(gè)步驟:①
找到完整樹的一些子樹②
分別計(jì)算出每棵樹的,選擇樹中具有最小的的樹。當(dāng)將CCP算法應(yīng)用在CART上時(shí),其輸入是CART算法生成的決策樹
,輸出則是最佳決策樹在最佳決策樹的生成過程中剪枝過程占有重要地位。研究表明:剪枝過程要比樹生成過程更重要,由不同的劃分標(biāo)準(zhǔn)生成的最大樹(MaximumTree),在剪枝之后都能夠保留最重要的屬性劃分。任務(wù)3.2—知識(shí)準(zhǔn)備—3.剪枝
4種剪枝算法的區(qū)別如表所示。4種剪枝算法的區(qū)別任務(wù)3.2—知識(shí)準(zhǔn)備—4.隨機(jī)決策森林
1)隨機(jī)森林相關(guān)術(shù)語隨機(jī)森林算法在本質(zhì)上屬于機(jī)器學(xué)習(xí)的一大分支——集成學(xué)習(xí)(EnsembleLearning),是將許多棵決策樹整合成森林并用來預(yù)測(cè)最終結(jié)果的方法。20世紀(jì)80年代,Breiman等人發(fā)明分類樹的算法,通過反復(fù)二分?jǐn)?shù)據(jù)進(jìn)行分類或回歸,計(jì)算量大大降低。2001年,Breiman把分類樹組合成隨機(jī)森林,即在變量(列)和數(shù)據(jù)(行)的使用上隨機(jī)生成很多分類樹,再匯總分類樹的結(jié)果。隨機(jī)森林算法在運(yùn)算量沒有顯著提高的前提下提高了預(yù)測(cè)精度。隨機(jī)森林算法對(duì)多元共線性不敏感,對(duì)缺失數(shù)據(jù)和非平衡的數(shù)據(jù)比較穩(wěn)健,可以很好地預(yù)測(cè)多達(dá)幾千個(gè)解釋變量的作用,當(dāng)前的算法中位于前列。任務(wù)3.2—知識(shí)準(zhǔn)備—4.隨機(jī)決策森林
隨機(jī)森林,顧名思義,是用隨機(jī)的方式建立一個(gè)森林。森林由很多決策樹組成,隨機(jī)森林中的每棵決策樹之間是沒有關(guān)聯(lián)的。在得到森林之后,當(dāng)有一個(gè)新的輸入樣本進(jìn)入時(shí),就讓森林中的每棵決策樹分別判斷一下這個(gè)樣本應(yīng)該屬于哪一類(對(duì)于分類算法),哪一類被選擇的最多,就預(yù)測(cè)這個(gè)樣本為哪一類。隨機(jī)森林算法既可以處理屬性為離散值的量,也可以處理屬性為連續(xù)值的量。隨機(jī)森林還可以用來進(jìn)行無監(jiān)督學(xué)習(xí)聚類和異常點(diǎn)檢測(cè)。決策樹是一個(gè)樹結(jié)構(gòu)(可以是二叉樹或非二叉樹)。其每個(gè)非葉節(jié)點(diǎn)表示一個(gè)特征屬性上的測(cè)試,每個(gè)分支代表這個(gè)特征屬性在某個(gè)值域上的輸出,而每個(gè)葉節(jié)點(diǎn)存放一個(gè)類別。用決策樹進(jìn)行決策的過程就是從根節(jié)點(diǎn)開始,測(cè)試待分類項(xiàng)中相應(yīng)的特征屬性,并按照其值選擇輸出分支,直到到達(dá)葉節(jié)點(diǎn),將葉節(jié)點(diǎn)存放的類別作為決策結(jié)果。任務(wù)3.2—知識(shí)準(zhǔn)備—4.隨機(jī)決策森林
另外兩個(gè)術(shù)語(1)Bootstrap。這個(gè)名字來源于文學(xué)作品TheAdventuresofBaronMunchausen(《吹牛大王歷險(xiǎn)記》),這個(gè)作品中的一個(gè)角色用提著自己鞋帶的方法把自己從湖底提了上來。因此,采用意譯的方式,將Bootstrap方法稱為自助法。自助法,顧名思義,是從樣本自身中產(chǎn)生很多可用的同等規(guī)模的新樣本,不借助其他樣本數(shù)據(jù)。這種方法在樣本較小時(shí)很有用,例如我們的樣本很小,但是我們希望留出一部分做驗(yàn)證,如果用傳統(tǒng)方法進(jìn)行train-validation的分割,樣本就更小了,偏差會(huì)更大,這不是我們所希望的。而自助法既不會(huì)降低訓(xùn)練樣本的規(guī)模,又能留出驗(yàn)證集(因?yàn)橛?xùn)練集有重復(fù)的,而這種重復(fù)又是隨機(jī)的),因此有一定的優(yōu)勢(shì)。任務(wù)3.2—知識(shí)準(zhǔn)備—4.隨機(jī)決策森林
至于自助法能留出多少樣本做驗(yàn)證,或者說,m個(gè)樣本的每個(gè)新樣本比原來的樣本少了多少?可以這樣計(jì)算:一共抽樣N次,每抽一次,任何一個(gè)樣本沒被抽中的概率為(1-1/N),所以任何一個(gè)樣本沒進(jìn)入新樣本的概率為(1-1/N)N。那么從統(tǒng)計(jì)意義上來說,就意味著大概有(1-1/N)N比例的樣本作為驗(yàn)證集,當(dāng)N→infinite時(shí),這個(gè)比例大概是1/e,約為36.8%。以該比例的樣本為驗(yàn)證集的方式叫作包外估計(jì)(OutOfBagEstimate)。(2)Bagging。它的名稱來源于Bootstrapaggregating,意思是自助投票。這種方法先將某訓(xùn)練集分成m個(gè)新的訓(xùn)練集,然后在每個(gè)新訓(xùn)練集上構(gòu)建一個(gè)模型,各模型互不相干,最后在預(yù)測(cè)時(shí)將這m個(gè)模型的結(jié)果整合到一起,得到最終結(jié)果。任務(wù)3.2—知識(shí)準(zhǔn)備—4.隨機(jī)決策森林
2)隨機(jī)森林與決策樹的區(qū)別決策樹用樹結(jié)構(gòu)來構(gòu)建分類模型,每個(gè)節(jié)點(diǎn)代表一個(gè)屬性,根據(jù)這個(gè)屬性的劃分,從進(jìn)入這個(gè)節(jié)點(diǎn)的子節(jié)點(diǎn)開始,直至葉節(jié)點(diǎn),每個(gè)葉節(jié)點(diǎn)都表征一定的類別,從而達(dá)到分類的目的。決策樹的生成算法有ID3、C4.5、CART等。在生成樹的過程中,需要選擇用哪個(gè)特征進(jìn)行剖分,一般來說,選擇特征的原則是,分開后能盡可能地提升純度,可以用信息增益、信息增益率及基尼系數(shù)等指標(biāo)來衡量。如果是一棵樹,為了避免過擬合,還要進(jìn)行剪枝,取消那些可能會(huì)導(dǎo)致驗(yàn)證集誤差上升的節(jié)點(diǎn)。隨機(jī)森林算法實(shí)際上是一種特殊的Bagging算法,它將決策樹用作Bagging算法模型。首先,用自助法生成m個(gè)訓(xùn)練集。然后,針對(duì)每個(gè)訓(xùn)練集,構(gòu)建一棵決策樹,在節(jié)點(diǎn)找特征進(jìn)行分裂的時(shí)候,并非找到能使指標(biāo)(如信息增益)最大的所有特征,而是在特征中隨機(jī)抽取一部分特征,在抽到的特征中找到最佳解,并將其應(yīng)用于節(jié)點(diǎn),進(jìn)行分裂。隨機(jī)森林算法由于有了Bagging算法的加持,也就是有了集成的思想,實(shí)際上相當(dāng)對(duì)于樣本和特征都進(jìn)行了抽樣,所以可以避免過擬合。預(yù)測(cè)階段的方法就是Bagging算法,即采用分類投票和回歸均值。任務(wù)3.2—知識(shí)準(zhǔn)備—4.隨機(jī)決策森林
隨機(jī)森林算法和將決策樹作為基本分類器的Bagging算法有些類似。以決策樹為基本模型的Bagging算法在每次由自助法放回抽樣之后,產(chǎn)生一棵決策樹,抽多少樣本就生成多少棵樹,在生成這些樹時(shí),沒有進(jìn)行更多的干預(yù)。而隨機(jī)森林算法也是進(jìn)行自助法抽樣,但它與Bagging算法的區(qū)別是,在生成每棵樹時(shí),每個(gè)節(jié)點(diǎn)變量都僅僅在隨機(jī)選出的少數(shù)變量中產(chǎn)生。因此,不但樣本是隨機(jī)的,每個(gè)節(jié)點(diǎn)變量的產(chǎn)生也都是隨機(jī)的。許多研究表明:組合分類器比單一分類器的分類效果好,隨機(jī)森林算法是一種利用多個(gè)分類樹對(duì)數(shù)據(jù)進(jìn)行判別與分類的方法,它在對(duì)數(shù)據(jù)進(jìn)行分類的同時(shí),可以給出各個(gè)變量(基因)的重要性評(píng)分,評(píng)估各個(gè)變量在分類中所起的作用。任務(wù)3.2—知識(shí)準(zhǔn)備—4.隨機(jī)決策森林
隨機(jī)森林算法得到的每棵樹都是很弱的,但是將這些樹組合起來就很厲害。我們可以這樣比喻隨機(jī)森林算法:每棵決策樹就是一個(gè)精通某一個(gè)窄領(lǐng)域的專家(因?yàn)槲覀儚腗個(gè)特征中選擇出m個(gè)并讓每棵決策樹去學(xué)習(xí)),這樣在隨機(jī)森林方面就有了很多個(gè)精通不同領(lǐng)域的專家,對(duì)一個(gè)新的問題(新的輸入數(shù)據(jù)),可以從不同的角度看待它,最終由各個(gè)專家投票得到結(jié)果。而這體現(xiàn)的正是群體智慧,也就是經(jīng)濟(jì)學(xué)上說的“看不見的手”。隨機(jī)森林算法的效果取決于多個(gè)分類樹要相互獨(dú)立,要想經(jīng)濟(jì)持續(xù)發(fā)展,不出現(xiàn)過擬合(過擬合是指由政府主導(dǎo)的經(jīng)濟(jì)增長在遇到新情況后產(chǎn)生經(jīng)濟(jì)泡沫),我們就需要企業(yè)獨(dú)立發(fā)展,由企業(yè)獨(dú)立選取自己的特征。任務(wù)3.2—知識(shí)準(zhǔn)備—4.隨機(jī)決策森林
3)隨機(jī)森林算法的特點(diǎn)隨機(jī)森林算法是一種很靈活、實(shí)用的算法,它有如下幾個(gè)特點(diǎn):(1)在當(dāng)前所有算法中,隨機(jī)森林算法具有極好的準(zhǔn)確率。(2)隨機(jī)森林算法能夠有效地運(yùn)行在大數(shù)據(jù)集上。(3)隨機(jī)森林算法能夠處理具有高維特征的輸入樣本,而且不需要降維。(4)隨機(jī)森林算法能夠評(píng)估各個(gè)特征在分類問題上的重要性。(5)隨機(jī)森林算法在生成樹的過程中,能夠獲取內(nèi)部生成誤差的一種無偏估計(jì)。(6)對(duì)于缺省值問題,隨機(jī)森林算法也能夠獲得很好的結(jié)果。實(shí)際上,隨機(jī)森林算法的特點(diǎn)不只有這6點(diǎn),它相當(dāng)于機(jī)器學(xué)習(xí)領(lǐng)域的多面手,我們把幾乎任何東西“扔”進(jìn)去,它基本上都是可供使用的。隨機(jī)森林算法在估計(jì)推斷映射方面特別好用,以致都不需要像SVM算法那樣做很多參數(shù)的調(diào)試。任務(wù)3.2—知識(shí)準(zhǔn)備—
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度新型公寓托管出租合同范本3篇
- 二零二五年度智能廣告牌匾技術(shù)研發(fā)與應(yīng)用合同3篇
- 2025年度校園體育設(shè)施租賃管理服務(wù)合同3篇
- 二零二五年度服務(wù)貿(mào)易統(tǒng)計(jì)與分析合同3篇
- 二零二五年份白酒行業(yè)創(chuàng)新技術(shù)研發(fā)與應(yīng)用合同3篇
- 二零二五年度化妝品店會(huì)員折扣合同3篇
- 英語ai課程設(shè)計(jì)
- 通源課程設(shè)計(jì)哪個(gè)簡(jiǎn)單
- 二零二五年度智慧教育項(xiàng)目技術(shù)服務(wù)費(fèi)合同模板3篇
- 二零二五年度歷史文化名城保護(hù)建設(shè)項(xiàng)目合同補(bǔ)充條款3篇
- 2024云南保山電力股份限公司招聘(100人)(高頻重點(diǎn)提升專題訓(xùn)練)共500題附帶答案詳解
- 人教版(2024)七年級(jí)上冊(cè)英語 Unit 1 You and Me 語法知識(shí)點(diǎn)復(fù)習(xí)提綱與學(xué)情評(píng)估測(cè)試卷匯編(含答案)
- 六年級(jí)期末家長會(huì)課件下載
- DZ∕T 0388-2021 礦區(qū)地下水監(jiān)測(cè)規(guī)范
- 計(jì)算機(jī)網(wǎng)絡(luò)信息安全理論與實(shí)踐教程
- 2024年重慶市學(xué)業(yè)水平模擬考試地理試卷(二)
- 西師大版2023-2024學(xué)年五年級(jí)數(shù)學(xué)上冊(cè)期末測(cè)試卷含答案
- 2024年浙江省寧波寧海縣事業(yè)單位公開招聘85人歷年公開引進(jìn)高層次人才和急需緊缺人才筆試參考題庫(共500題)答案詳解版
- 校區(qū)熱水供水系統(tǒng)維護(hù)服務(wù)第冊(cè)維保服務(wù)方案
- (2024年)Maya三維建模教案
- 國開電大本科《理工英語4》機(jī)考真題(第六套)
評(píng)論
0/150
提交評(píng)論