首先ranknet:
是pairwise排序學習演算法,利用神經網路進行計算得到文件分數,從而得到文件i在文件j之前的概率,即為文件ij之間的關係(pair),進而得到損失函式,對其進行優化
其次lambdarank:
是listwise排序學習演算法,是在ranknet基礎上進行的優化,由於最基本的pairwise誤差計算方式並不能很好地模擬使用者對搜尋引擎的期望,故考慮到排名靠前的影響越大,從而引入ndcg和err,解決ranknet在計算誤差時的缺點,優化為lambdarank
(lambda可看作是損失函式的梯度,方向是文件d在列表中的移動方向,大小是文件d移動的距離,lambda可直接對ndcg進行優化)
最後lambdamart:mart用於提公升lambda(梯度)
mart是多重加法回歸樹的簡稱,又可以稱作梯度提公升樹(gradient boosting decison tree, gbdt)該演算法訓練出的模型是一系列回歸樹模型的線性組合。回歸樹模型能夠對已知資料進行分類,並在每乙個葉子節點對應該分類的輸出值。
mart是一種整合學習演算法,不同於經典的整合學習演算法adaboost利用前一輪學習器的誤差來更新下一輪學習的樣本權重,mart每次都擬合上一輪分類器產生的殘差。比如乙個人的年齡是50歲,第一棵樹擬合的結果是35歲,第一輪的殘差為15歲;然後第二棵數擬合的結果是10歲,兩棵樹相加總的擬合結果是45歲,第二輪的殘差為5歲;第三棵數擬合的結果為2歲,三棵樹相加擬合的結果是47歲,第三輪的殘差是3歲......只要如此不斷地進行下去,擬合結果就可以達到50歲,擬合殘差的過程就是訓練資料的過程。
mart使用線性組合的方式將擬合的樹結合起來,作為最後的輸出:fn(x
lambdamart演算法將mart 作為基本模型進行訓練,用lambdarank中損失函式的構造和優化方式來訓練排序模型,並用牛頓迭代法(newton-raphson)來確定每乙個葉子節點的輸出值:
關於XGBoost一些淺薄理解
決策樹 分類 靈魂 依靠某種指標進行樹的 達到分類或回歸的目的,總希望是純度越高越好 eg id3演算法就用資訊增益度量屬性選擇標準,選擇 後資訊增益最大的屬性進行 cart,classification and regression tree 分類與回歸分析 相同點 本質都是特徵到結果 標籤的對映...
堆,棧,佇列的一些淺薄的理解
一些自己理解的概念 1 記憶體 記憶體是計算機重要的部件之一,任何程式都需要在記憶體中執行,是與cpu和外部儲存裝置資料溝通的橋梁。在計算機執行的過程中,cpu會把記憶體中的資料進行運算,當執行結束後,cpu會把迅速按結果暫時輸出到記憶體。所以記憶體也決定著計算機的穩定執行。3 常用的資料結構 陣列...
repo 的一些用法和理
repo的用法 zz wget 或者 curl bin repo 用repo sync 在抓去 android source code 的時候,會經常出現一些錯誤導致 repo sync 中斷,每次都要手動開始。可以用如下的命令,來自動重複 1 while ne 0 do repo sync don...