日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习面试中常考的知识点,附代码实现(二)

發(fā)布時間:2025/5/22 编程问答 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习面试中常考的知识点,附代码实现(二) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

決策樹

什么是決策樹1.決策樹的基本思想

其實(shí)用一下圖片能更好的理解LR模型和決策樹模型算法的根本區(qū)別,我們可以思考一下一個決策問題:是否去相親,一個女孩的母親要給這個女海介紹對象。

大家都看得很明白了吧!LR模型是一股腦兒的把所有特征塞入學(xué)習(xí),而決策樹更像是編程語言中的if-else一樣,去做條件判斷,這就是根本性的區(qū)別。

2.“樹”的成長過程

決策樹基于“樹”結(jié)構(gòu)進(jìn)行決策的,這時我們就要面臨兩個問題 :

  • “樹”怎么長。
  • 這顆“樹”長到什么時候停。

弄懂了這兩個問題,那么這個模型就已經(jīng)建立起來了,決策樹的總體流程是“分而治之”的思想,一是自根至葉的遞歸過程,一是在每個中間節(jié)點(diǎn)尋找一個“劃分”屬性,相當(dāng)于就是一個特征屬性了。接下來我們來逐個解決以上兩個問題。

這顆“樹”長到什么時候停

  • 當(dāng)前結(jié)點(diǎn)包含的樣本全屬于同一類別,無需劃分;例如:樣本當(dāng)中都是決定去相親的,屬于同一類別,就是不管特征如何改變都不會影響結(jié)果,這種就不需要劃分了。
  • 當(dāng)前屬性集為空,或是所有樣本在所有屬性上取值相同,無法劃分;例如:所有的樣本特征都是一樣的,就造成無法劃分了,訓(xùn)練集太單一。
  • 當(dāng)前結(jié)點(diǎn)包含的樣本集合為空,不能劃分。

3."樹"怎么長

在生活當(dāng)中,我們都會碰到很多需要做出決策的地方,例如:吃飯地點(diǎn)、數(shù)碼產(chǎn)品購買、旅游地區(qū)等,你會發(fā)現(xiàn)在這些選擇當(dāng)中都是依賴于大部分人做出的選擇,也就是跟隨大眾的選擇。其實(shí)在決策樹當(dāng)中也是一樣的,當(dāng)大部分的樣本都是同一類的時候,那么就已經(jīng)做出了決策。

我們可以把大眾的選擇抽象化,這就引入了一個概念就是純度,想想也是如此,大眾選擇就意味著純度越高。好,在深入一點(diǎn),就涉及到一句話:信息熵越低,純度越高。我相信大家或多或少都聽說過“熵”這個概念,信息熵通俗來說就是用來度量包含的“信息量”,如果樣本的屬性都是一樣的,就會讓人覺得這包含的信息很單一,沒有差異化,相反樣本的屬性都不一樣,那么包含的信息量就很多了。

一到這里就頭疼了,因?yàn)轳R上要引入信息熵的公式,其實(shí)也很簡單:

Pk表示的是:當(dāng)前樣本集合D中第k類樣本所占的比例為Pk。

信息增益

廢話不多說直接上公式:

看不懂的先不管,簡單一句話就是:劃分前的信息熵--劃分后的信息熵。表示的是向純度方向邁出的“步長”。

好了,有了前面的知識,我們就可以開始“樹”的生長了。

3.1 ID3算法

解釋:在根節(jié)點(diǎn)處計算信息熵,然后根據(jù)屬性依次劃分并計算其節(jié)點(diǎn)的信息熵,用根節(jié)點(diǎn)信息熵--屬性節(jié)點(diǎn)的信息熵=信息增益,根據(jù)信息增益進(jìn)行降序排列,排在前面的就是第一個劃分屬性,其后依次類推,這就得到了決策樹的形狀,也就是怎么“長”了。

如果不理解的,可以查看我分享的圖片示例,結(jié)合我說的,包你看懂:

不過,信息增益有一個問題:對可取值數(shù)目較多的屬性有所偏好,例如:考慮將“編號”作為一個屬性。為了解決這個問題,引出了另一個 算法C4.5。

3.2 C4.5

為了解決信息增益的問題,引入一個信息增益率:

其中:

屬性a的可能取值數(shù)目越多(即V越大),則IV(a)的值通常就越大。**信息增益比本質(zhì):是在信息增益的基礎(chǔ)之上乘上一個懲罰參數(shù)。特征個數(shù)較多時,懲罰參數(shù)較小;特征個數(shù)較少時,懲罰參數(shù)較大。不過有一個缺點(diǎn):

  • 缺點(diǎn):信息增益率偏向取值較少的特征。

使用信息增益率:基于以上缺點(diǎn),并不是直接選擇信息增益率最大的特征,而是現(xiàn)在候選特征中找出信息增益高于平均水平的特征,然后在這些特征中再選擇信息增益率最高的特征。

3.3 CART算法

數(shù)學(xué)家真實(shí)聰明,想到了另外一個表示純度的方法,叫做基尼指數(shù)(討厭的公式):

表示在樣本集合中一個隨機(jī)選中的樣本被分錯的概率。舉例來說,現(xiàn)在一個袋子里有3種顏色的球若干個,伸手進(jìn)去掏出2個球,顏色不一樣的概率,這下明白了吧。Gini(D)越小,數(shù)據(jù)集D的純度越高。

舉個例子

假設(shè)現(xiàn)在有特征 “學(xué)歷”,此特征有三個特征取值:“本科”,“碩士”, “博士”,

當(dāng)使用“學(xué)歷”這個特征對樣本集合D進(jìn)行劃分時,劃分值分別有三個,因而有三種劃分的可能集合,劃分后的子集如下:

1.劃分點(diǎn):“本科”,劃分后的子集合 :{本科},{碩士,博士}

2.劃分點(diǎn):“碩士”,劃分后的子集合 :{碩士},{本科,博士}

3.劃分點(diǎn):“碩士”,劃分后的子集合 :{博士},{本科,碩士}}

對于上述的每一種劃分,都可以計算出基于 劃分特征= 某個特征值 將樣本集合D劃分為兩個子集的純度:

因而對于一個具有多個取值(超過2個)的特征,需要計算以每一個取值作為劃分點(diǎn),對樣本D劃分之后子集的純度Gini(D,Ai),(其中Ai 表示特征A的可能取值)

然后從所有的可能劃分的Gini(D,Ai)中找出Gini指數(shù)最小的劃分,這個劃分的劃分點(diǎn),便是使用特征A對樣本集合D進(jìn)行劃分的最佳劃分點(diǎn)。到此就可以長成一棵“大樹”了。

3.4 三種不同的決策樹

  • ID3:取值多的屬性,更容易使數(shù)據(jù)更純,其信息增益更大。 訓(xùn)練得到的是一棵龐大且深度淺的樹:不合理。
  • C4.5:采用信息增益率替代信息增益。
  • CART:以基尼系數(shù)替代熵,最小化不純度,而不是最大化信息增益。

樹形結(jié)構(gòu)為什么不需要?dú)w一化?

因?yàn)閿?shù)值縮放不影響分裂點(diǎn)位置,對樹模型的結(jié)構(gòu)不造成影響。按照特征值進(jìn)行排序的,排序的順序不變,那么所屬的分支以及分裂點(diǎn)就不會有不同。而且,樹模型是不能進(jìn)行梯度下降的,因?yàn)闃?gòu)建樹模型(回歸樹)尋找最優(yōu)點(diǎn)時是通過尋找最優(yōu)分裂點(diǎn)完成的,因此樹模型是階躍的,階躍點(diǎn)是不可導(dǎo)的,并且求導(dǎo)沒意義,也就不需要?dú)w一化。

既然樹形結(jié)構(gòu)(如決策樹、RF)不需要?dú)w一化,那為何非樹形結(jié)構(gòu)比如Adaboost、SVM、LR、Knn、KMeans之類則需要?dú)w一化。

對于線性模型,特征值差別很大時,運(yùn)用梯度下降的時候,損失等高線是橢圓形,需要進(jìn)行多次迭代才能到達(dá)最優(yōu)點(diǎn)。但是如果進(jìn)行了歸一化,那么等高線就是圓形的,促使SGD往原點(diǎn)迭代,從而導(dǎo)致需要的迭代次數(shù)較少。

分類決策樹和回歸決策樹的區(qū)別

Classification And Regression Tree(CART)是決策樹的一種,CART算法既可以用于創(chuàng)建分類樹(Classification Tree),也可以用于創(chuàng)建回歸樹(Regression Tree),兩者在建樹的過程稍有差異。

回歸樹:

CART回歸樹是假設(shè)樹為二叉樹,通過不斷將特征進(jìn)行分裂。比如當(dāng)前樹結(jié)點(diǎn)是基于第j個特征值進(jìn)行分裂的,設(shè)該特征值小于s的樣本劃分為左子樹,大于s的樣本劃分為右子樹。

而CART回歸樹實(shí)質(zhì)上就是在該特征維度對樣本空間進(jìn)行劃分,而這種空間劃分的優(yōu)化是一種NP難問題,因此,在決策樹模型中是使用啟發(fā)式方法解決。典型CART回歸樹產(chǎn)生的目標(biāo)函數(shù)為:

因此,當(dāng)我們?yōu)榱饲蠼庾顑?yōu)的切分特征j和最優(yōu)的切分點(diǎn)s,就轉(zhuǎn)化為求解這么一個目標(biāo)函數(shù):

所以我們只要遍歷所有特征的的所有切分點(diǎn),就能找到最優(yōu)的切分特征和切分點(diǎn)。最終得到一棵回歸樹。

參考文章:經(jīng)典算法詳解--CART分類決策樹、回歸樹和模型樹

決策樹如何剪枝

決策樹的剪枝基本策略有 預(yù)剪枝 (Pre-Pruning) 和 后剪枝 (Post-Pruning)。

  • 預(yù)剪枝:其中的核心思想就是,在每一次實(shí)際對結(jié)點(diǎn)進(jìn)行進(jìn)一步劃分之前,先采用驗(yàn)證集的數(shù)據(jù)來驗(yàn)證如果劃分是否能提高劃分的準(zhǔn)確性。如果不能,就把結(jié)點(diǎn)標(biāo)記為葉結(jié)點(diǎn)并退出進(jìn)一步劃分;如果可以就繼續(xù)遞歸生成節(jié)點(diǎn)。
  • 后剪枝:后剪枝則是先從訓(xùn)練集生成一顆完整的決策樹,然后自底向上地對非葉結(jié)點(diǎn)進(jìn)行考察,若將該結(jié)點(diǎn)對應(yīng)的子樹替換為葉結(jié)點(diǎn)能帶來泛化性能提升,則將該子樹替換為葉結(jié)點(diǎn)。

參考文章:決策樹及決策樹生成與剪枝

代碼實(shí)現(xiàn):

https://github.com/NLP-LOVE/ML-NLP/blob/master/Machine%20Learning/3.Desition%20Tree/DecisionTree.ipynb

隨機(jī)森林

什么是隨機(jī)森林1.Bagging思想

Bagging是bootstrap aggregating。思想就是從總體樣本當(dāng)中隨機(jī)取一部分樣本進(jìn)行訓(xùn)練,通過多次這樣的結(jié)果,進(jìn)行投票獲取平均值作為結(jié)果輸出,這就極大可能的避免了不好的樣本數(shù)據(jù),從而提高準(zhǔn)確度。因?yàn)橛行┦遣缓玫臉颖?#xff0c;相當(dāng)于噪聲,模型學(xué)入噪聲后會使準(zhǔn)確度不高。

舉個例子:

假設(shè)有1000個樣本,如果按照以前的思維,是直接把這1000個樣本拿來訓(xùn)練,但現(xiàn)在不一樣,先抽取800個樣本來進(jìn)行訓(xùn)練,假如噪聲點(diǎn)是這800個樣本以外的樣本點(diǎn),就很有效的避開了。重復(fù)以上操作,提高模型輸出的平均值。

2.隨機(jī)森林

Random Forest(隨機(jī)森林)是一種基于樹模型的Bagging的優(yōu)化版本,一棵樹的生成肯定還是不如多棵樹,因此就有了隨機(jī)森林,解決決策樹泛化能力弱的特點(diǎn)。(可以理解成三個臭皮匠頂過諸葛亮)

而同一批數(shù)據(jù),用同樣的算法只能產(chǎn)生一棵樹,這時Bagging策略可以幫助我們產(chǎn)生不同的數(shù)據(jù)集。Bagging策略來源于bootstrap aggregation:從樣本集(假設(shè)樣本集N個數(shù)據(jù)點(diǎn))中重采樣選出Nb個樣本(有放回的采樣,樣本數(shù)據(jù)點(diǎn)個數(shù)仍然不變?yōu)镹),在所有樣本上,對這n個樣本建立分類器(ID3C4.5CARTSVMLOGISTIC),重復(fù)以上兩步m次,獲得m個分類器,最后根據(jù)這m個分類器的投票結(jié)果,決定數(shù)據(jù)屬于哪一類。

每棵樹的按照如下規(guī)則生成:

  • 如果訓(xùn)練集大小為N,對于每棵樹而言,隨機(jī)且有放回地從訓(xùn)練集中的抽取N個訓(xùn)練樣本,作為該樹的訓(xùn)練集;
  • 如果每個樣本的特征維度為M,指定一個常數(shù)m<<M,隨機(jī)地從M個特征中選取m個特征子集,每次樹進(jìn)行分裂時,從這m個特征中選擇最優(yōu)的;
  • 每棵樹都盡最大程度的生長,并且沒有剪枝過程。
  • 一開始我們提到的隨機(jī)森林中的“隨機(jī)”就是指的這里的兩個隨機(jī)性。兩個隨機(jī)性的引入對隨機(jī)森林的分類性能至關(guān)重要。由于它們的引入,使得隨機(jī)森林不容易陷入過擬合,并且具有很好得抗噪能力(比如:對缺省值不敏感)。

    總的來說就是隨機(jī)選擇樣本數(shù),隨機(jī)選取特征,隨機(jī)選擇分類器,建立多顆這樣的決策樹,然后通過這幾課決策樹來投票,決定數(shù)據(jù)屬于哪一類(投票機(jī)制有一票否決制、少數(shù)服從多數(shù)、加權(quán)多數(shù))

    隨機(jī)森林分類效果的影響因素

    • 森林中任意兩棵樹的相關(guān)性:相關(guān)性越大,錯誤率越大;
    • 森林中每棵樹的分類能力:每棵樹的分類能力越強(qiáng),整個森林的錯誤率越低。

    減小特征選擇個數(shù)m,樹的相關(guān)性和分類能力也會相應(yīng)的降低;增大m,兩者也會隨之增大。所以關(guān)鍵問題是如何選擇最優(yōu)的m(或者是范圍),這也是隨機(jī)森林唯一的一個參數(shù)。

    隨機(jī)森林有什么優(yōu)缺點(diǎn)

    優(yōu)點(diǎn):

    • 在當(dāng)前的很多數(shù)據(jù)集上,相對其他算法有著很大的優(yōu)勢,表現(xiàn)良好。
    • 它能夠處理很高維度(feature很多)的數(shù)據(jù),并且不用做特征選擇(因?yàn)樘卣髯蛹请S機(jī)選擇的)。
    • 在訓(xùn)練完后,它能夠給出哪些feature比較重要。
    • 訓(xùn)練速度快,容易做成并行化方法(訓(xùn)練時樹與樹之間是相互獨(dú)立的)。
    • 在訓(xùn)練過程中,能夠檢測到feature間的互相影響。
    • 對于不平衡的數(shù)據(jù)集來說,它可以平衡誤差。
    • 如果有很大一部分的特征遺失,仍可以維持準(zhǔn)確度。

    缺點(diǎn):

    • 隨機(jī)森林已經(jīng)被證明在某些噪音較大的分類或回歸問題上會過擬合。
    • 對于有不同取值的屬性的數(shù)據(jù),取值劃分較多的屬性會對隨機(jī)森林產(chǎn)生更大的影響,所以隨機(jī)森林在這種數(shù)據(jù)上產(chǎn)出的屬性權(quán)值是不可信的。

    隨機(jī)森林如何處理缺失值?

    根據(jù)隨機(jī)森林創(chuàng)建和訓(xùn)練的特點(diǎn),隨機(jī)森林對缺失值的處理還是比較特殊的。

    • 首先,給缺失值預(yù)設(shè)一些估計值,比如數(shù)值型特征,選擇其余數(shù)據(jù)的中位數(shù)或眾數(shù)作為當(dāng)前的估計值
    • 然后,根據(jù)估計的數(shù)值,建立隨機(jī)森林,把所有的數(shù)據(jù)放進(jìn)隨機(jī)森林里面跑一遍。記錄每一組數(shù)據(jù)在決策樹中一步一步分類的路徑.
    • 判斷哪組數(shù)據(jù)和缺失數(shù)據(jù)路徑最相似,引入一個相似度矩陣,來記錄數(shù)據(jù)之間的相似度,比如有N組數(shù)據(jù),相似度矩陣大小就是N*N
    • 如果缺失值是類別變量,通過權(quán)重投票得到新估計值,如果是數(shù)值型變量,通過加權(quán)平均得到新的估計值,如此迭代,直到得到穩(wěn)定的估計值。

    其實(shí),該缺失值填補(bǔ)過程類似于推薦系統(tǒng)中采用協(xié)同過濾進(jìn)行評分預(yù)測,先計算缺失特征與其他特征的相似度,再加權(quán)得到缺失值的估計,而隨機(jī)森林中計算相似度的方法(數(shù)據(jù)在決策樹中一步一步分類的路徑)乃其獨(dú)特之處。

    什么是OOB?隨機(jī)森林中OOB是如何計算的,它有什么優(yōu)缺點(diǎn)?

    OOB:

    上面我們提到,構(gòu)建隨機(jī)森林的關(guān)鍵問題就是如何選擇最優(yōu)的m,要解決這個問題主要依據(jù)計算袋外錯誤率oob error(out-of-bag error)。

    bagging方法中Bootstrap每次約有1/3的樣本不會出現(xiàn)在Bootstrap所采集的樣本集合中,當(dāng)然也就沒有參加決策樹的建立,把這1/3的數(shù)據(jù)稱為袋外數(shù)據(jù)oob(out of bag),它可以用于取代測試集誤差估計方法。

    袋外數(shù)據(jù)(oob)誤差的計算方法如下:

    • 對于已經(jīng)生成的隨機(jī)森林,用袋外數(shù)據(jù)測試其性能,假設(shè)袋外數(shù)據(jù)總數(shù)為O,用這O個袋外數(shù)據(jù)作為輸入,帶進(jìn)之前已經(jīng)生成的隨機(jī)森林分類器,分類器會給出O個數(shù)據(jù)相應(yīng)的分類
    • 因?yàn)檫@O條數(shù)據(jù)的類型是已知的,則用正確的分類與隨機(jī)森林分類器的結(jié)果進(jìn)行比較,統(tǒng)計隨機(jī)森林分類器分類錯誤的數(shù)目,設(shè)為X,則袋外數(shù)據(jù)誤差大小=X/O

    優(yōu)缺點(diǎn):

    這已經(jīng)經(jīng)過證明是無偏估計的,所以在隨機(jī)森林算法中不需要再進(jìn)行交叉驗(yàn)證或者單獨(dú)的測試集來獲取測試集誤差的無偏估計。

    隨機(jī)森林的過擬合問題你已經(jīng)建了一個有10000棵樹的隨機(jī)森林模型。在得到0.00的訓(xùn)練誤差后,你非常高興。但是,驗(yàn)證錯誤是34.23。到底是怎么回事?你還沒有訓(xùn)練好你的模型嗎?

    答:該模型過度擬合,因此,為了避免這些情況,我們要用交叉驗(yàn)證來調(diào)整樹的數(shù)量。

    7.代碼實(shí)現(xiàn):

    https://github.com/NLP-LOVE/ML-NLP/blob/master/Machine%20Learning/3.1%20Random%20Forest/RandomForestRegression.ipynb

    梯度提升決策樹(GBDT)

    解釋一下GBDT算法的過程

    GBDT(Gradient Boosting Decision Tree),全名叫梯度提升決策樹,使用的是Boosting的思想。

    1.Boosting思想

    Boosting方法訓(xùn)練基分類器時采用串行的方式,各個基分類器之間有依賴。它的基本思路是將基分類器層層疊加,每一層在訓(xùn)練的時候,對前一層基分類器分錯的樣本,給予更高的權(quán)重。測試時,根據(jù)各層分類器的結(jié)果的加權(quán)得到最終結(jié)果。

    Bagging與Boosting的串行訓(xùn)練方式不同,Bagging方法在訓(xùn)練過程中,各基分類器之間無強(qiáng)依賴,可以進(jìn)行并行訓(xùn)練。

    2.GBDT原來是這么回事

    GBDT的原理很簡單,就是所有弱分類器的結(jié)果相加等于預(yù)測值,然后下一個弱分類器去擬合誤差函數(shù)對預(yù)測值的殘差(這個殘差就是預(yù)測值與真實(shí)值之間的誤差)。當(dāng)然了,它里面的弱分類器的表現(xiàn)形式就是各棵樹。

    舉一個非常簡單的例子,比如我今年30歲了,但計算機(jī)或者模型GBDT并不知道我今年多少歲,那GBDT咋辦呢?

    • 它會在第一個弱分類器(或第一棵樹中)隨便用一個年齡比如20歲來擬合,然后發(fā)現(xiàn)誤差有10歲;
    • 接下來在第二棵樹中,用6歲去擬合剩下的損失,發(fā)現(xiàn)差距還有4歲;
    • 接著在第三棵樹中用3歲擬合剩下的差距,發(fā)現(xiàn)差距只有1歲了;
    • 最后在第四課樹中用1歲擬合剩下的殘差,完美。
    • 最終,四棵樹的結(jié)論加起來,就是真實(shí)年齡30歲(實(shí)際工程中,gbdt是計算負(fù)梯度,用負(fù)梯度近似殘差)。

    為何gbdt可以用用負(fù)梯度近似殘差呢?

    回歸任務(wù)下,GBDT 在每一輪的迭代時對每個樣本都會有一個預(yù)測值,此時的損失函數(shù)為均方差損失函數(shù),

    那此時的負(fù)梯度是這樣計算的

    所以,當(dāng)損失函數(shù)選用均方損失函數(shù)是時,每一次擬合的值就是(真實(shí)值 - 當(dāng)前模型預(yù)測的值),即殘差。此時的變量是,即“當(dāng)前預(yù)測模型的值”,也就是對它求負(fù)梯度。

    訓(xùn)練過程

    簡單起見,假定訓(xùn)練集只有4個人:A,B,C,D,他們的年齡分別是14,16,24,26。其中A、B分別是高一和高三學(xué)生;C,D分別是應(yīng)屆畢業(yè)生和工作兩年的員工。如果是用一棵傳統(tǒng)的回歸決策樹來訓(xùn)練,會得到如下圖所示結(jié)果:

    現(xiàn)在我們使用GBDT來做這件事,由于數(shù)據(jù)太少,我們限定葉子節(jié)點(diǎn)做多有兩個,即每棵樹都只有一個分枝,并且限定只學(xué)兩棵樹。我們會得到如下圖所示結(jié)果:

    在第一棵樹分枝和圖1一樣,由于A,B年齡較為相近,C,D年齡較為相近,他們被分為左右兩撥,每撥用平均年齡作為預(yù)測值。

    • 此時計算殘差(殘差的意思就是:A的實(shí)際值 - A的預(yù)測值 = A的殘差),所以A的殘差就是實(shí)際值14 - 預(yù)測值15 = 殘差值-1。
    • 注意,A的預(yù)測值是指前面所有樹累加的和,這里前面只有一棵樹所以直接是15,如果還有樹則需要都累加起來作為A的預(yù)測值。

    然后拿它們的殘差-1、1、-1、1代替A B C D的原值,到第二棵樹去學(xué)習(xí),第二棵樹只有兩個值1和-1,直接分成兩個節(jié)點(diǎn),即A和C分在左邊,B和D分在右邊,經(jīng)過計算(比如A,實(shí)際值-1 - 預(yù)測值-1 = 殘差0,比如C,實(shí)際值-1 - 預(yù)測值-1 = 0),此時所有人的殘差都是0。殘差值都為0,相當(dāng)于第二棵樹的預(yù)測值和它們的實(shí)際值相等,則只需把第二棵樹的結(jié)論累加到第一棵樹上就能得到真實(shí)年齡了,即每個人都得到了真實(shí)的預(yù)測值。

    換句話說,現(xiàn)在A,B,C,D的預(yù)測值都和真實(shí)年齡一致了。Perfect!

    • A: 14歲高一學(xué)生,購物較少,經(jīng)常問學(xué)長問題,預(yù)測年齡A = 15 – 1 = 14
    • B: 16歲高三學(xué)生,購物較少,經(jīng)常被學(xué)弟問問題,預(yù)測年齡B = 15 + 1 = 16
    • C: 24歲應(yīng)屆畢業(yè)生,購物較多,經(jīng)常問師兄問題,預(yù)測年齡C = 25 – 1 = 24
    • D: 26歲工作兩年員工,購物較多,經(jīng)常被師弟問問題,預(yù)測年齡D = 25 + 1 = 26

    所以,GBDT需要將多棵樹的得分累加得到最終的預(yù)測得分,且每一次迭代,都在現(xiàn)有樹的基礎(chǔ)上,增加一棵樹去擬合前面樹的預(yù)測結(jié)果與真實(shí)值之間的殘差。

    梯度提升和梯度下降的區(qū)別和聯(lián)系是什么?

    下表是梯度提升算法和梯度下降算法的對比情況。可以發(fā)現(xiàn),兩者都是在每 一輪迭代中,利用損失函數(shù)相對于模型的負(fù)梯度方向的信息來對當(dāng)前模型進(jìn)行更 新,只不過在梯度下降中,模型是以參數(shù)化形式表示,從而模型的更新等價于參 數(shù)的更新。而在梯度提升中,模型并不需要進(jìn)行參數(shù)化表示,而是直接定義在函 數(shù)空間中,從而大大擴(kuò)展了可以使用的模型種類。

    GBDT的優(yōu)點(diǎn)和局限性有哪些?

    1.優(yōu)點(diǎn)

  • 預(yù)測階段的計算速度快,樹與樹之間可并行化計算。
  • 在分布稠密的數(shù)據(jù)集上,泛化能力和表達(dá)能力都很好,這使得GBDT在Kaggle的眾多競賽中,經(jīng)常名列榜首。
  • 采用決策樹作為弱分類器使得GBDT模型具有較好的解釋性和魯棒性,能夠自動發(fā)現(xiàn)特征間的高階關(guān)系,并且也不需要對數(shù)據(jù)進(jìn)行特殊的預(yù)處理如歸一化等。
  • 2.局限性

  • GBDT在高維稀疏的數(shù)據(jù)集上,表現(xiàn)不如支持向量機(jī)或者神經(jīng)網(wǎng)絡(luò)。
  • GBDT在處理文本分類特征問題上,相對其他模型的優(yōu)勢不如它在處理數(shù)值特征時明顯。
  • 訓(xùn)練過程需要串行訓(xùn)練,只能在決策樹內(nèi)部采用一些局部并行的手段提高訓(xùn)練速度。
  • RF(隨機(jī)森林)與GBDT之間的區(qū)別與聯(lián)系

    相同點(diǎn):

    都是由多棵樹組成,最終的結(jié)果都是由多棵樹一起決定。

    不同點(diǎn):

    • 組成隨機(jī)森林的樹可以分類樹也可以是回歸樹,而GBDT只由回歸樹組成
    • 組成隨機(jī)森林的樹可以并行生成,而GBDT是串行生成
    • 隨機(jī)森林的結(jié)果是多數(shù)表決表決的,而GBDT則是多棵樹累加之和
    • 隨機(jī)森林對異常值不敏感,而GBDT對異常值比較敏感
    • 隨機(jī)森林是減少模型的方差,而GBDT是減少模型的偏差
    • 隨機(jī)森林不需要進(jìn)行特征歸一化。而GBDT則需要進(jìn)行特征歸一化

    代碼實(shí)現(xiàn):

    https://github.com/NLP-LOVE/ML-NLP/blob/master/Machine%20Learning/3.2%20GBDT/GBDT_demo.ipynb

    總結(jié)

    以上是生活随笔為你收集整理的机器学习面试中常考的知识点,附代码实现(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。