機器學習面試題之adaboost和隨機森林的區別

2021-08-28 03:40:31 字數 1390 閱讀 8904

首先明確乙個大方向:強可學習和弱可學習是等價的。所以,弱可學習方法可以提公升為強可學習方法。adaboost最具代表性。

對於提公升方法,有兩個問題需要回答:

adaboost的做法:

不改變所給的訓練資料,而不斷改變訓練資料權值的分布,使得訓練資料在基本分類器的學習中起不同的作用,這就是adaboost的乙個特點。總的來說,adaboost演算法的步驟為:更新訓練資料權值->在此權值上訓練弱分類器(策略為最小化分類誤差率)->計算分類誤差率(誤分類樣本的權值之和)->計算分類器係數(要用到上一步的分類誤差率)->更新訓練權值->構建基本分類器的線性組合,一直迴圈,直到基本分類器的線性組合沒有誤分類點。

缺點:可理解性差。

推廣:提公升樹

提公升樹是以分類樹或回歸樹為基本分類器的提公升方法。提公升樹被認為是統計學習中效能最好的方法之一。

提公升樹利用加法模型與前向分布演算法實現學習的優化過程。當損失函式是平方損失和指數損失函式時,每一步的優化是很簡單的。但對一般損失函式而言,往往每一步優化並不那麼容易。針對這一問題,有人提出了梯度提公升演算法。這是利用最速下降法的近似方法,其關鍵是利用損失函式的負梯度在當前模型的值作為回歸問題提公升演算法中的殘差的近似值,擬合乙個回歸樹。梯度提公升決策樹簡稱gbdt。

我先自己瞎說一次。

森林,顧名思義,好多棵樹。這裡的樹是決策樹。那麼,樹多了能夠幹啥呢?表決啊。每一顆樹都對測試樣本進行決策,最後演算法的結果是所有樹的結果的眾數。

那麼,「隨機」是幹啥的?隨機森林的隨機有兩層意思。

強調:隨機森林不進行剪枝。決策樹剪枝是因為防止過擬合,而隨機森林的「隨機」已經防止了過擬合,因此不需要剪枝。可以這樣比喻隨機森林演算法:每一棵決策樹就是乙個精通於某乙個窄領域 的專家(因為我們從m個feature中選擇m讓每一棵決策樹進行學習),這樣在隨機森林中就有了很多個精通不同領域的專家,對乙個新的問題(新的輸入數 據),可以用不同的角度去看待它,最終由各個專家,投票得到結果。

最後說一下隨機森林的優缺點:

總結

模型組合(比如說有boosting,bagging等)與決策樹相關的演算法比較多,這些演算法最終的結果是生成n(可能會有幾百棵以上)棵樹,這樣可以大大的減少單決策樹帶來的毛病,有點類似於三個臭皮匠等於乙個諸葛亮的做法,雖然這幾百棵決策樹中的每一棵都很簡單(相對於c4.5這種單決策樹來說),但是他們組合起來確是很強大。

在最近幾年的*****上,如iccv這種重量級的會議,iccv 09年的裡面有不少的文章都是與boosting與隨機森林相關的。模型組合+決策樹相關的演算法有兩種比較基本的形式:隨機森林與gbdt((gradient boost decision tree),其他的比較新的模型組合+決策樹的演算法都是來自這兩種演算法的延伸。

機器學習面試題之KNN

1.簡述一下knn演算法的原理 knn演算法利用訓練資料集對特徵向量空間進行劃分。knn演算法的核心思想是在乙個含未知樣本的空間,可以根據樣本最近的k個樣本的資料型別來確定未知樣本的資料型別。該演算法涉及的3個主要因素是 k值選擇,距離度量,分類決策。2.如何理解knn中的k的取值?選取較小的k值時...

機器學習面試題

答 設計乙個分類模型,首先要給它設定乙個學習目標。在支援向量機中,這個目標是max margin 在adaboost中,目標是優化乙個指數損失函式。那麼在logistic regression lr 中,這個目標是什麼呢?最大化條件似然度。考慮乙個二值分類問題,訓練資料是一堆 特徵,標記 組合,x1...

機器學習面試題之KNN(六)

小狼狗的knn面試問題的總結 1.簡述一下knn演算法的原理 knn既可以用於分類,也可以用於回歸。本身沒有顯示的模型訓練,多數情況用於分類演算法。knn演算法我們主要要考慮三個重要的要素,對於固定的訓練集,只要這三點確定了,演算法的 方式也就決定了。這三個最終的要素是k值的選取,距離度量的方式和分...