整合方法在函式模型上等價於乙個多層神經網路,兩種常見的整合方法為
adaboost模型
和randomtrees模型
。其中隨機森林可被視為前饋神經網路,而adaboost模型則等價於乙個反饋型多層神經網路。
對於adaboost,可以說是久聞大名,據說在deep learning出來之前,svm和adaboost是效果最好的 兩個演算法,而adaboost是提公升樹(boosting tree),所謂「 提公升樹 」 就是把「弱學習演算法」提公升(boost)為「強學習演算法」(語自《統計學習方法》),而其中最具代表性的也就是adaboost了,貌似adaboost的結構還和neural network有幾分神似,我倒沒有深究過,不知道是不是有什麼乾貨。
這就是adaboost的結構,最後的分類器ym是由數個弱分類器(weak classifier)組合而成的,相當於最後m個弱分類器來投票決定分類,而且每個弱分類器的「話語權」α不一樣。
這裡闡述下演算法的具體過程:
a).訓練弱分類器ym(),使其最小化權重
誤差函式(weighted error function):
b)接下來計算該弱分類器的話語權α:
c)更新權重:
其中zm:
是規範化因子,使所有w的和為1。(這裡公式稍微有點亂)
可以看到整個過程就是和最上面那張圖一樣,
前乙個分類器改變權重w,同時組成最後的分類器
如果乙個訓練樣例 在前乙個分類其中被誤分,那麼它的權重會被加重,相應地,被正確分類的樣例的權重會降低
使得下乙個分類器 會更在意被誤分的樣例,那麼其中那些α和w的更新是怎麼來的呢?
下面我們從前項分步演算法模型的角度來看看adaboost:
直接將前項分步加法模型具體到adaboost上:
其中 fm是前m個分類器的結合
此時我們要最小化e,同時要考慮α和yl,
但現在我們假設前m-1個α和y都已經fixed了:那麼
其中接下來:
其中tm表示正分類的集合,mm表示誤分類的集合,這一步其實就是把上面那個式子拆開,沒什麼複雜的東西
然後就是找ym了,就是最小化下式的過程,其實就是我們訓練弱分類器
有了ym,α也就可以找了,然後繼續就可以找到更新w的公式了(注意這裡得到的w公式是沒有加規範化因子z的公式,為了計算方便我們加了個z進去)
c++:
python:
監督學習和無監督學習 監督學習與非監督學習
監督學習 supervised learning 的任務是學習乙個模型,使模型能夠對任意給定的輸入,對其相應的輸出做出乙個好的 即 利用訓練資料集學習乙個模型,再用模型對測試樣本集進行 例如kaggle上的鐵達尼號比賽。官方提供旅客資料 資料集1 姓名,年齡,性別,社會經濟階層,是否生存等 要求參賽...
監督學習,無監督學習和半監督學習
監督學習 supervised learning 無監督學習 unsupervised learning 半監督學習 semi supervised learning 2 概念 監督學習 用一部分已知分類 有標記的樣本來訓練機器後,讓它用學到的特徵,對沒有還分類 無標記的樣本進行分類 貼標籤。一句話...
監督學習 非監督學習 半監督學習(主動學習)
統計學習通常包括監督學習 非監督學習 半監督學習以及強化學習,在機器學習的領域中前三種研究的比較多的,也是運用的比較廣泛的技術。監督學習的任務是學習乙個模型,使模型對給定的任意的乙個輸入,對其都可以對映出乙個 結果。這裡模型就相當於我們數學中乙個函式,輸入就相當於我們數學中的x,而 的結果就相當於數...