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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

机器学习(十七)——决策树, 推荐系统进阶

發(fā)布時間:2023/12/20 windows 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习(十七)——决策树, 推荐系统进阶 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

PLSA

Probabilistic Latent Semantic Analysis是Thomas Hofmann于1999年在UCB讀博期間提出的算法。

原文:

https://dslpitt.org/uai/papers/99/p289-hofmann.pdf

示意圖:

PLSA將生成文檔的過程,分為兩個步驟:

1.生成文檔的主題。(doc->topic)

2.根據(jù)主題生成相關(guān)的詞.(topic->word)

第m篇文檔dm中的每個詞的生成概率為:

p(w|dm)=z=1Kp(w|z)p(z|dm)=z=1Kφzwθmz

LDA

利用貝葉斯學派的觀點改造PLSA,可得:

LDA生成模型包含兩個過程:

1.生成第m篇文檔中的所有詞對應的topics。

α?????Dirichletθm???????Multinomialzm

2.K個由topics生成words的獨立過程。

β?????Dirichletφk???????Multinomialw(k)

因此,總共就是M+K個Dirichlet-Multinomial共軛結(jié)構(gòu)。

LDA的Gibbs Sampling圖示:

LDA模型的目標有兩個:

訓練模型:估計模型中的參數(shù):φ1,?,φKθ1,?,θM

由于參數(shù)θm是和訓練語料中的每篇文檔相關(guān)的,對于我們理解新的文檔并無用處,所以工程上最終存儲LDA模型時,一般沒有必要保留。

使用模型:對于新來的一篇文檔docnew,我們能夠計算這篇文檔的topic分布θnew

從最終給出的算法可以看出,雖然LDA用到了MCMC和Gibbs Sampling算法,但最終目的并不是生成符合相應分布的隨機數(shù),而是求出模型參數(shù)φ的值,并用于預測。

參考

http://www.arbylon.net/publications/text-est.pdf

《Parameter estimation for text analysis》,Gregor Heinrich著

http://www.inference.phy.cam.ac.uk/itprnn/book.pdf

《Information Theory, Inference, and Learning Algorithms》,David J.C. MacKay著

關(guān)于MCMC和Gibbs Sampling的更多的內(nèi)容,可參考《Neural Networks and Learning Machines》,Simon Haykin著。該書有中文版。

注:Sir David John Cameron MacKay,1967~2016,加州理工學院博士,導師John Hopfield,劍橋大學教授。英國能源與氣候變化部首席科學顧問,英國皇家學會會員。在機器學習領(lǐng)域和可持續(xù)能源領(lǐng)域有重大貢獻。

Simon Haykin,英國伯明翰大學博士,加拿大McMaster University教授。初為雷達和信號處理專家,80年代中后期,轉(zhuǎn)而從事神經(jīng)計算方面的工作。加拿大皇家學會會員。

http://www.cs.cmu.edu/~epxing/Class/10708-14/lectures/lecture17-MCMC.pdf

決策樹

Decision Tree講的最好的,首推周志華的《機器學習》。這里只對要點進行備忘。

當前樣本集合D中,第k類樣本所占的比例為pk(k=1,2,,|y|),則D的信息熵(information entropy)定義為:

Ent(D)=?k=1|y|pklog2pk

假定離散屬性a有V個可能的取值,若使用a對D進行劃分,則第v個分支結(jié)點包含了D中所有在a上取值av的樣本,記為Dv。則信息增益(information gain)為:

Gain(D,a)=Ent(D)?v=1V|Dv||D|Ent(Dv)

增益率(gain ratio):

Gain_ratio(D,a)=Gain(D,a)IV(a)

其中

IV(a)=?v=1V|Dv||D|log2|Dv||D|

基尼值:

Gini(D)=1?k=1|y|p2k

基尼指數(shù):

Gini_index(D,a)=v=1V|Dv||D|Gini(Dv)

各種決策樹和它的劃分依據(jù)如下表所示:

名稱劃分依據(jù)
ID3Gain
C4.5Gain_ratio
CARTGini_index

決策樹是一種可以將訓練誤差變?yōu)?的算法,只要每個樣本對應一個葉子結(jié)點即可,然而這樣做會導致過擬合。為了限制樹的生長,我們可以加入閾值,當增益大于閾值時才讓節(jié)點分裂。

GBDT

GBDT這個算法有很多名字,但都是同一個算法:

GBRT (Gradient BoostRegression Tree)漸進梯度回歸樹

GBDT (Gradient BoostDecision Tree)漸進梯度決策樹

MART (Multiple Additive Regression Tree)多決策回歸樹

Tree Net決策樹網(wǎng)絡

GBDT屬于集成學習(Ensemble Learning)的范疇。集成學習的思路是在對新的實例進行分類的時候,把若干個單個分類器集成起來,通過對多個分類器的分類結(jié)果進行某種組合來決定最終的分類,以取得比單個分類器更好的性能。

集成學習的算法主要分為兩大類:

并行算法:若干個不同的分類器同時分類,選擇票數(shù)多的分類結(jié)果。這類算法包括bagging和隨機森林等。

串行算法:使用同種或不同的分類器,不斷迭代。每次迭代的目標是縮小殘差或者提高預測錯誤項的權(quán)重。這類算法包括Adaboost和GBDT等。

GBDT寫的比較好的,有以下blog:

http://blog.csdn.net/w28971023/article/details/8240756

摘錄要點如下:

決策樹分為兩大類:

回歸樹:用于預測實數(shù)值,如明天的溫度、用戶的年齡、網(wǎng)頁的相關(guān)程度。其結(jié)果加減是有意義的,如10歲+5歲-3歲=12歲。

分類樹:用于分類標簽值,如晴天/陰天/霧/雨、用戶性別、網(wǎng)頁是否是垃圾頁面。其結(jié)果加減無意義,如男+男+女=到底是男是女?

GBDT的核心在于累加所有樹的結(jié)果作為最終結(jié)果。例如根到某葉子結(jié)點的路徑上的決策值為10歲、5歲、-3歲,則該葉子的最終結(jié)果為10歲+5歲-3歲=12歲。

所以GBDT中的樹都是回歸樹,不是分類樹

上面舉的例子中,越靠近葉子,其決策值的絕對值越小。這不是偶然的。決策樹的基本思路就是“分而治之”,自然越靠近根結(jié)點,其劃分的粒度越粗。每劃分一次,預測誤差(即殘差)越小,這樣也就變相提高了下一步劃分中預測錯誤項的權(quán)重,這就是算法名稱中Gradient的由來。

為了防止過擬合,GBDT還采用了Shrinkage(縮減)的思想,每次只走一小步來逐漸逼近結(jié)果,這樣各個樹的殘差就是漸變的,而不是陡變的。

參考:

http://blog.csdn.net/u010691898/article/details/38292937

http://www.cs.cmu.edu/~tom/

XGBoost

XGBoost是陳天奇于2014年提出的一套并行boost算法的工具庫。

注:陳天奇,華盛頓大學計算機系博士生,研究方向為大規(guī)模機器學習。上海交通大學本科(2006~2010)和碩士(2010~2013)。
http://homes.cs.washington.edu/~tqchen/

原始論文:

https://arxiv.org/pdf/1603.02754v3.pdf

參考文獻中的部分結(jié)論非常精彩,摘錄如下。

從算法實現(xiàn)的角度,把握一個機器學習算法的關(guān)鍵點有兩個,一個是loss function的理解(包括對特征X/標簽Y配對的建模,以及基于X/Y配對建模的loss function的設(shè)計,前者應用于inference,后者應用于training,而前者又是后者的組成部分),另一個是對求解過程的把握。這兩個點串接在一起構(gòu)成了算法實現(xiàn)的主框架。

GBDT的求解算法,具體到每顆樹來說,其實就是不斷地尋找分割點(split point),將樣本集進行分割,初始情況下,所有樣本都處于一個結(jié)點(即根結(jié)點),隨著樹的分裂過程的展開,樣本會分配到分裂開的子結(jié)點上。分割點的選擇通過枚舉訓練樣本集上的特征值來完成,分割點的選擇依據(jù)則是減少Loss。

XGBoost的步驟:

I. 對loss function進行二階Taylor Expansion,展開以后的形式里,當前待學習的Tree是變量,需要進行優(yōu)化求解。

II. Tree的優(yōu)化過程,包括兩個環(huán)節(jié):

I). 枚舉每個葉結(jié)點上的特征潛在的分裂點

II). 對每個潛在的分裂點,計算如果以這個分裂點對葉結(jié)點進行分割以后,分割前和分割后的loss function的變化情況。

因為Loss Function滿足累積性(對MLE取log的好處),并且每個葉結(jié)點對應的weight的求取是獨立于其他葉結(jié)點的(只跟落在這個葉結(jié)點上的樣本有關(guān)),所以,不同葉結(jié)點上的loss function滿足單調(diào)累加性,只要保證每個葉結(jié)點上的樣本累積loss function最小化,整體樣本集的loss function也就最小化了。

可見,XGBoost算法之所以能夠并行,其要害在于其中枚舉分裂點的計算,是能夠分布式并行計算的。

參考:

https://www.zhihu.com/question/41354392

推薦系統(tǒng)進階

除了《機器學習(十三~十五)》提及的ALS和PCA之外,相關(guān)的算法還包括:

FM:Factorization Machines

Factorization Machines是Steffen Rendle于2010年提出的算法。

注:Steffen Rendle,弗賴堡大學博士,現(xiàn)為Google研究員。libFM的作者,被譽為推薦系統(tǒng)的新星。

FM算法實際上是一大類與矩陣分解有關(guān)的算法的廣義模型。

參考文獻1是Rendle本人的論文,其中有章節(jié)證明了SVD++、PITF、FPMC等算法,都是FM算法的特例。《機器學習(十四)》中提到的ALS算法,也是FM的特例。

參考文獻2是國人寫的中文說明,相對淺顯一些。

參考:

1.https://www.ismll.uni-hildesheim.de/pub/pdfs/Rendle2010FM.pdf

2.http://blog.csdn.net/itplus/article/details/40534885

PITF

配對互動張量分解(Pairwise Interaction Tensor Factorization)算法,也是最早由Rendle引入推薦系統(tǒng)領(lǐng)域的。

論文:

http://www.wsdm-conference.org/2010/proceedings/docs/p81.pdf

關(guān)聯(lián)規(guī)則挖掘

基本概念

關(guān)聯(lián)規(guī)則挖掘(Association rule mining)是機器學習的一個子領(lǐng)域。它最早的案例就是以下的尿布和啤酒的故事:

沃爾瑪曾今對數(shù)據(jù)倉庫中一年多的原始交易數(shù)據(jù)進行了詳細的分析,發(fā)現(xiàn)與尿布一起被購買最多的商品竟然是啤酒。
借助數(shù)據(jù)倉庫和關(guān)聯(lián)規(guī)則,發(fā)現(xiàn)了這個隱藏在背后的事實:美國婦女經(jīng)常會囑咐丈夫下班后為孩子買尿布,而30%~40%的丈夫在買完尿布之后又要順便購買自己愛喝的啤酒。
根據(jù)這個發(fā)現(xiàn),沃爾瑪調(diào)整了貨架的位置,把尿布和啤酒放在一起銷售,大大增加了銷量。

這里借用一個引例來介紹關(guān)聯(lián)規(guī)則挖掘的基本概念。

交易號TID顧客購買的商品交易號TID顧客購買的商品
T1bread, cream, milk, teaT6bread, tea
T2bread, cream, milkT7beer, milk, tea
T3cake, milkT8bread, tea
T4milk, teaT9bread, cream, milk, tea
T5bread, cake, milkT10bread, milk, tea

總結(jié)

以上是生活随笔為你收集整理的机器学习(十七)——决策树, 推荐系统进阶的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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