1.CART算法與ID3算法對(duì)比
(1)CART算法解決了ID3算法的不足,既能用于分類(lèi)問(wèn)題滚秩,又能用于回歸問(wèn)題盅称。
(2)實(shí)際上,CART算法的主體結(jié)構(gòu)和ID3算法基本相同飞几,只是在以下幾點(diǎn)有所改變:
①選擇劃分特征時(shí)砚哆,ID3使用信息熵量化數(shù)據(jù)集的混亂程度;CART使用基尼指數(shù)(Gini Index)和均方誤差(MSE)量化數(shù)據(jù)集的混亂程度屑墨。
【注】CART算法用于分類(lèi)使用基尼指數(shù)躁锁,用于回歸使用均方誤差纷铣。
②選定某切分特征時(shí),ID3算法使用該特征所有可能的取值進(jìn)行切分战转,例如一個(gè)特征有k個(gè)取值搜立,數(shù)據(jù)集則被切成k份,創(chuàng)建k個(gè)子樹(shù)槐秧;CART算法使用某一閾值進(jìn)行二元切分啄踊,即在特征值的取值范圍區(qū)間內(nèi)進(jìn)行選擇一個(gè)閾值t,將數(shù)據(jù)集切成兩份刁标,然后使用一個(gè)數(shù)據(jù)子集(大于t)構(gòu)建左子樹(shù)颠通,使用另一個(gè)數(shù)據(jù)子集(小于等于t)構(gòu)造右子樹(shù),因此CART算法構(gòu)建的是二叉樹(shù)膀懈。
③對(duì)于已用于創(chuàng)建內(nèi)部節(jié)點(diǎn)的特征蒜哀,在后續(xù)運(yùn)算中(創(chuàng)建子樹(shù)中的節(jié)點(diǎn)時(shí)),ID3算法不會(huì)再次使用它創(chuàng)建其它內(nèi)部節(jié)點(diǎn)吏砂;CART算法可能會(huì)再次使用它創(chuàng)建其他內(nèi)部節(jié)點(diǎn)撵儿。
(3)CART算法不僅可以處理離散值特征,也可以處理連續(xù)值特征狐血。
處理連續(xù)值特征的思路為:把數(shù)據(jù)集中的每一個(gè)特征動(dòng)態(tài)地轉(zhuǎn)換成多個(gè)布爾值特征淀歇,形成新特征空間中的數(shù)據(jù)集。
實(shí)例:假設(shè)某數(shù)據(jù)集中有一個(gè)“溫度”特征匈织,該特征出現(xiàn)過(guò)的值有[10,-15,0,-9,5,22]
CART算法將做以下處理:
①先將“溫度”特征出現(xiàn)的值排序浪默,得到列表[-15,-9,0,5,10,22](6個(gè)值);
②依次取[-15,-9,0,5,10,22]中相鄰兩值得中點(diǎn)作為閾值點(diǎn)缀匕,將得到閾值列表[-12,-4.5,2.5,7.5,16](5個(gè)值)纳决;
③使用每一個(gè)閾值與原來(lái)特征的值進(jìn)行比較,便得到了取值為0或1的布爾值特征乡小,例如“溫度是否大于-12”阔加、“溫度是否大于-4.5”(共5個(gè))。
使用以上處理方法满钟,在數(shù)據(jù)集中k個(gè)取值的“溫度”特征就被轉(zhuǎn)換成了k-1個(gè)布爾值特征胜榔。
2.CART算法詳述
【注】iris鳶尾花數(shù)據(jù)集和boston房?jī)r(jià)數(shù)據(jù)集都是sklearn庫(kù)自帶的數(shù)據(jù)集,編寫(xiě)程序時(shí)直接load進(jìn)去就可以使用了湃番。
(1)分類(lèi)樹(shù)案例:給iris數(shù)據(jù)集進(jìn)行分類(lèi)
(2)回歸樹(shù)案例:對(duì)boston房?jī)r(jià)進(jìn)行回歸預(yù)測(cè)
說(shuō)明:cart回歸樹(shù)劃分?jǐn)?shù)據(jù)集的過(guò)程和分類(lèi)樹(shù)的過(guò)程是一樣的夭织,回歸樹(shù)得到的預(yù)測(cè)結(jié)果是連續(xù)值,評(píng)判不純度的指標(biāo)不同吠撮;分類(lèi)樹(shù)采用的是基尼系數(shù)尊惰,回歸樹(shù)需要根據(jù)樣本的離散程度來(lái)評(píng)價(jià)不純度,采用的是均方誤差。
節(jié)點(diǎn)劃分(即計(jì)算樣本的離散程度)
①最小絕對(duì)偏差(LAD):樣本值減去樣本均值的絕對(duì)值弄屡,即
【注】此公式不是十分肯定戴卜,后續(xù)查找到相關(guān)資料再對(duì)其進(jìn)行修改。
②最小二乘偏差(LSD):每個(gè)樣本值減去樣本均值的平方和除以樣本數(shù)琢岩,即