本文主要包括adaboost和提公升樹,後期會擴充套件到xgboost和lightgbm。
boosting通過改變樣本訓練權重,學習多個弱分類器,最後進行線性組合,提高分類效能。
兩個著重點:如何改變資料的樣本權重或概率分布 如何將弱分類器整合成強分類器
初始化樣本資料權重,假設樣本權重均勻分布,得到初始權重分布d1
使用初始權重的訓練資料集學習,得到基本分類器g1
計算g1在權重分布d1上的誤差率
依據公式計算g1的權重
在d1基礎上,依據誤分率更改樣本的權重分布,錯誤分類資料的權重提公升,得到權重分布d2
迭代m輪,構建線性組合的強分類器gm
這說明,可以在每一輪選取適當的gm使得zm最小,從而使訓練誤差下降最快,對二分類問題,有如下結果:
adaboost的另外乙個解釋:
模型:加法模型
策略:最小化指數函式
演算法:前向分步
公式的推導:
1、證明使用指數函式作為損失函式的合理性
2、計算弱分類器的權重
3、更新權重分布
adaboost python實現:
from numpy import *
def loaddata():
datmat=matrix([
[1.0,2.1],
[2,1.1],
[1.3,1.],
[1.,1.],
[2.,1.]
])classlabels=[1.0,1.0,-1.0,-1.0,1.0]
return datmat,classlabels
##乙個簡單樹的決策函式
def stumpclassify(datamatrix,dimen,threshval,threshinsq):
""":param datamatrix:資料
:param dimen: 特徵
:param threshval: 閾值
:param threshinsq: 大於還是小於
:return:
"""retarray= ones((shape(datamatrix)[0],1))
if threshinsq=='lt':
retarray[datamatrix[:,dimen]<=threshval]=-1.0
else:
retarray[datamatrix[:,dimen]>threshval]=-1.0
return retarray
def buildstump(dataarr,classlabels,d):
""":param dataarr:資料
:param classlabels: 樣本類別
:param d: 權重的分布
:return:
"""datamatrix=mat(dataarr)
labelmat=mat(classlabels).t
m,n=shape(datamatrix)
numsteps=10.0
beststump={}
bestclassent=mat(zeros((m,1)))
minerror=inf
for i in range(n):
##尋找特徵的分割點
rangemin=datamatrix[:,i].min()
rangemax=datamatrix[:,i].max()
stepsize=(rangemax-rangemin)/numsteps
for j in range(-1,int(numsteps)+1):
for inequal in ['lt','gt']:
##按照分割的每個間隔進行分類計算出分類效果最好的劃分
threshval = (rangemin + float(j) * stepsize)
predictedvals=stumpclassify(datamatrix,i,threshval,inequal)
threshval=(rangemin+float(j)*stepsize)
errarr=mat(ones((m,1)))
#計算錯誤的權重
errarr[predictedvals==labelmat]=0
weightederror=d.t*errarr
if weightederror提公升樹演算法採用的是前向分步演算法通過經驗風險極小化確定下一顆決策樹的引數
針對不同問題提公升樹學習演算法,主要區別在於使用損失函式的不同,包括回歸問題使用均方誤差,分類問題的指數損失函式,以及一般決策問題的一般損失函式。
梯度提公升樹與adaboost的關係
梯度提公升樹分為分類樹,回歸樹;adaboost將基本弱分類器限制為二類分類樹就是提公升樹
統計學習方法概論 《統計學習方法》李航著
統計學習由 監督學習,非監督學習,半監督學習和強化學習組成。監督學習方法主要包括 分類 標註 與 回歸問題 回歸問題 輸入變數 和 輸出變數 均為連續變數的 問題 分類問題 輸出變數為有限個離散變數的 問題 標註問題 輸入與輸出變數均為變數序列的 問題 統計學習三要素 模型,策略,演算法 損失函式度...
《統計學習方法》 李航 學習大綱
最近在學習李航寫的統計學習方法概論,每一章都用xmind理清了思路,括號裡是書裡的公式,第一次寫博文,敬請指教 第一章 統計學習方 第二章 感知機 每個方法其實只需要著重掌握三要素和輸入輸出就可以了,主要看模型 策略和演算法。感知機主要是二類分類的線性分類模型。看到後面會注意感知機和支援向量機的區別...
李航統計學習方法筆記1 統計學習方法概論
模型 由輸入到輸出的對映 假設空間 由輸入空間到輸出空間的對映多集合 模型 由條件概率分布p y x 或決策函式y f x 表示 損失函式 度量模型一次 的好壞,用乙個損失函式來度量 錯誤的程度 風險函式 度量平局意義下模型 的好壞 經驗風險 模型f x關於訓練資料集的平均損失 當模型上條件概率分布...