? ? 研究了一個(gè)星期多的DecisionTree,簡(jiǎn)單的做一下記錄罗晕。
? ? 決策樹(shù)的目的是為了產(chǎn)生一顆泛化能力強(qiáng),處理未見(jiàn)實(shí)例強(qiáng)的決策樹(shù)赠堵,基本流程就是分治小渊。
? ? 下面是決策樹(shù)學(xué)習(xí)的基本算法(參考南京大學(xué)機(jī)器學(xué)習(xí)周志華教授課件):
? ? 主要講解一下ID3決策樹(shù),ID3是通過(guò)information entropy or Gini計(jì)算最大樣本信息增益茫叭,之后對(duì)樣本通過(guò)該特征進(jìn)行劃分酬屉,以此遞歸形成決策樹(shù)。
????遞歸的三種終止方式:1:信息增益為負(fù),2:所有樣本的特征值都相同呐萨,3:所有樣本屬性相同杀饵。
? ? information entropy的計(jì)算方式(參考南京大學(xué)機(jī)器學(xué)習(xí)課件):
Gini計(jì)算方式(參考南京大學(xué)機(jī)器學(xué)習(xí)課件):
????兩個(gè)計(jì)算方式同樣都是結(jié)果越小,樣本純度越高垛吗,信息增益是對(duì)樣本進(jìn)行劃分之后凹髓,對(duì)新結(jié)點(diǎn)的熵或基尼不純度賦予權(quán)重之后想加,和原來(lái)的進(jìn)行比較怯屉∥狄ǎ看增益是多少。
? ? 信息增益計(jì)算方式(參考南京大學(xué)機(jī)器學(xué)習(xí)課件):
信息增益率(參考南京大學(xué)機(jī)器學(xué)習(xí)課件):
????由此兩個(gè)增益公式可以得到一個(gè)啟發(fā)式:通過(guò)信息增益高于平均水平的锨络,找到信息增益率最高的最為分割數(shù)據(jù)的特征屬性赌躺。
? ? 之后就可以通過(guò)不斷遞歸樣本,進(jìn)行決策樹(shù)的構(gòu)建羡儿。
? ? 由于決策樹(shù)會(huì)對(duì)樣本進(jìn)行充分的訓(xùn)練礼患,很有可能生成的決策樹(shù)對(duì)樣本出現(xiàn)過(guò)擬合的情況,所以要對(duì)決策樹(shù)進(jìn)行剪枝處理:
? ? 剪枝主要是通過(guò)合并子節(jié)點(diǎn)來(lái)計(jì)算預(yù)測(cè)準(zhǔn)確率有沒(méi)有提升掠归,如果有提升缅叠,就舍棄子節(jié)點(diǎn),合并到一個(gè)節(jié)點(diǎn)上虏冻,具體的剪枝方式有預(yù)剪枝和后剪枝肤粱。
? ? 預(yù)剪枝:在構(gòu)建決策樹(shù)的時(shí)候,從頭部開(kāi)始進(jìn)行測(cè)試厨相,是不是要剪枝
? ? 后剪枝:構(gòu)建完成之后领曼,從子葉結(jié)點(diǎn)往根部開(kāi)始進(jìn)行測(cè)試,是不是要剪枝
? ? 當(dāng)然為了避免過(guò)擬合蛮穿,還可以對(duì)決策樹(shù)進(jìn)行超參數(shù)的規(guī)劃庶骄。不過(guò)這樣做會(huì)增加決策樹(shù)欠擬合的風(fēng)險(xiǎn),不過(guò)可以通過(guò)GridsearchCV來(lái)測(cè)量最佳的超參數(shù)規(guī)劃方式践磅,達(dá)到最佳的預(yù)測(cè)效果单刁。
?? ? 一般在構(gòu)建決策樹(shù)的時(shí)候,要對(duì)樣本進(jìn)行離散化處理府适,就是通常說(shuō)的啞變量計(jì)算羔飞。主要是為了將那些不回歸的數(shù)據(jù)離散化之后,容易Building细溅。但是對(duì)于哪些連續(xù)性數(shù)據(jù),就沒(méi)辦法進(jìn)行離散化處理了儡嘶,因?yàn)闊o(wú)法對(duì)其進(jìn)行維度的提升喇聊。
? ? 處理方式為:取兩個(gè)臨近值的中值對(duì)數(shù)據(jù)分割為兩部分,之后進(jìn)行類似于回歸算法一樣的計(jì)算蹦狂。
? ? 但是還有一部分?jǐn)?shù)據(jù)是缺失的誓篱,對(duì)于缺失數(shù)據(jù):如果樣本量超級(jí)大朋贬,缺失量超級(jí)小,那么缺失數(shù)據(jù)可以忽略不計(jì)窜骄,因?yàn)榭赡艹霈F(xiàn)重復(fù)數(shù)據(jù)锦募。但是如果缺失量很大,或者說(shuō)缺失了非常重要的特征屬性邻遏,那么還是建議聯(lián)系DBA把丟失的數(shù)據(jù)找回來(lái)糠亩,或者可以在數(shù)據(jù)由有缺失的時(shí)候,計(jì)算到缺失列了准验,將剩下的特征值按照決策樹(shù)子節(jié)點(diǎn)數(shù)據(jù)量的權(quán)重對(duì)其進(jìn)行加權(quán)赎线,然后分別懟入子節(jié)點(diǎn)。
? ? 如果樣本不大糊饱,可以在構(gòu)建之前對(duì)數(shù)據(jù)進(jìn)行預(yù)分類垂寥,可以讓決策樹(shù)加速構(gòu)建。但是樣本如果很大另锋,就不建議對(duì)其進(jìn)行預(yù)分類了滞项,因?yàn)轭A(yù)分類所消耗的時(shí)間,比加速節(jié)省的時(shí)間還要大夭坪。
? ? 以上是對(duì)分類問(wèn)題的決策樹(shù)構(gòu)建
? ? 對(duì)于回歸問(wèn)題
? ? 主要是計(jì)算Mean Square Error將樣本通過(guò)方差最小的方式進(jìn)行劃分文判。
? ? 之后將懟入到葉子葉結(jié)點(diǎn)的數(shù)據(jù)求平均值。
參考文獻(xiàn):
[1]Aurelien Geron.hands-On Machine learning with Scikit-Learn & TensorFlow[learning ].南京大學(xué)出版社台舱,2017-10:167-179.
[2]周志華.機(jī)器學(xué)習(xí)[learning].清華大學(xué)出版社律杠,2016-01:73-95.
[3]Toby Segaran.集體智慧編程[learning].電子工業(yè)出版社,2015-03:142-165.