手撕演算法 adaboost

2021-10-08 11:26:02 字數 876 閱讀 5365

adaboost是典型的boosting演算法。

boosting演算法的核心思想是:上乙個模型對單個樣本**的結果越差,下個模型越重視這個樣本(增大該樣本的權重,加大模型**錯的成本)。提公升樹就是每個模型都是決策樹,提公升樹種效果比較好的是gbdt和xgboost,入門是adaboost。adaboost的損失函式是指數函式。

adaboost模型的訓練過程可以簡單的分為這幾步:

1.更新樣本權重。

2.訓練模型。

3.計算誤差。

4.計算該模型的投票權重。back to step1

samme演算法具體說明:

1.初始化樣本權重,所有樣本權重一致,1/n。

2.用所有樣本進行第乙個模型的訓練。

3.用訓練集資料對該模型進行評估,得到乙個評估結果(下面公式以分類誤差率為例)

4.計算該模型的投票權重。

其中l是類別數量。

return to 1:更新樣本權重

final:adaboost會選擇所有模型計算的結果中,權重和最大的類別(回歸則是加權和)。

notice:若單模型的分類準確率小於0.5,則該模型的權重會是負值,開心不。

samme.r演算法具體說明

1.更新樣本權重。

2.訓練模型,模型需要返回各個類別的概率。

3.計算該模型對各個類別的加權權重。

4.計算該模型對該樣本分類為各個類別的話語權。

5.更新樣本的權重。

其中,樣本權重再歸一化就ok了。

最終,分類結果是權重最大的類別。

手撕演算法 PCA

pca,principle component analysis。lda,linear discriminant analysis 首先說一下pca和lda的區別,二者都是降維的方法,pca的主要思想是降維後各個樣本點的方差之和最大,也就是各個樣本點要盡量的區分開。而lda的思想是降維後同類的樣本要...

手撕LRU演算法

lru是least recently used的縮寫,即最近最少使用,是一種常用的頁面置換演算法,選擇最久未使用的頁面予以淘汰。lru是一種快取淘汰策略,它認為最近使用的資料就是有用的,最久沒使用的資料就是沒用的,所以在當容量滿了之後,會先淘汰掉最久沒使用的資料,騰出空間來放新資料。leetcode...

手撕演算法 排序

時間複雜度o n 2 o n 2 o n2 空間複雜度 o 1 穩定 從第乙個元素開始,認為左邊的序列是有序的,從有序部分的最後乙個向前比較,如果當前元素小於有序部分就交換,否則比較下乙個元素。function insertmerge arr else return arr let arr 1 5,...