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,...