adaboost 演算法
k-means 演算法
混合高斯模型演算法gmm演算法
方法:利用了凸函式jensen不等式,即jensen不等式表述如下:e(f(x))>= f(ex).
em可以看作是j的座標上公升法,e步固定
θ ,優化q,m步固q,優化
θ 。
最大期望(em)演算法是在概率(probabilistic)模型中尋找引數最大似然估計或者最大後驗估計的演算法,其中概率模型依賴於無法觀測的隱藏變數(latent variable)。最大期望經常用在機器學習和計算機視覺的資料聚類(data clustering)領域。
最大期望演算法經過兩個步驟交替進行計算:
第一步是計算期望(e),利用對隱藏變數的現有估計值,計算其最大似然估計值;
第二步是最大化(m),最大化在 e 步上求得的最大似然值來計算引數的值。
m 步上找到的引數估計值被用於下乙個 e 步計算中,這個過程不斷交替進行。
應用:主要用於從不完整的資料中計算最大似然估計。後來經過其他學者的發展,這個演算法也被用於聚類等應用。
em演算法有很多的應用,最廣泛的就是gmm混合高斯模型、聚類、hmm等等
可以說em就是為解決資料缺失問題而生的,em演算法的主要目的是提供乙個簡單的迭代演算法計算後驗密度函式,它的最大優點是簡單和穩定,但也容易陷入區域性最優。
adaboost演算法,自適應增強。它的自適應在於:前乙個基本分類器分錯的樣本會得到加強,加權後的全體樣本再次被用來訓練下乙個基本分類器,同時在每一輪中加入乙個新的弱分類器,直到達到某個預定的組都小的誤差率或者達到預先指定的最大迭代次數。(三個臭皮匠頂個諸葛亮)
具體來說,adaboost演算法總共分三步:
其中at表示最後h(x)在最終分類器中的重要程度。(目的:得到基本分類器在最終分類器的所佔權重)。
誤差率在迭代過程中逐漸較小!!
解釋:
提高錯誤點的權值,當下一次分類器再次分錯了這些點之後,會提高整體的錯誤率,這樣就導致 a 變的很小,最終導致這個分類器在整個混合分類器的權值變低。也就是說,這個演算法讓優秀的分類器佔整體的權值更高,而挫的分類器權值更低。
優點:
1、很好的利用了弱分類器進行級聯。
2、可以將不同的分類演算法作為弱分類器。
3、adaboost具有很高的精度。
4、相對於bagging演算法和random forest演算法,adaboost充分考慮的每個分類器的權重。
缺點:
1、adaboost迭代次數也就是弱分類器數目不太好設定,可以使用交叉驗證來進行確定。
2、資料不平衡導致分類精度下降。
3、訓練比較耗時,每次重新選擇當前分類器最好切分點。
應用場景:
1)用於二分類或多分類的應用場景
2)用於做分類任務的baseline
無腦化,簡單,不會overfitting,不用調分類器
3)用於特徵選擇(feature selection)
4)boosting框架用於對badcase的修正
只需要增加新的分類器,不需要變動原有分類器
相異度用通俗的話來講,就是兩個東西差異有多大。一般是用距離來做標度。共有三個計算距離公式。
閔可夫斯基距離:di
smk(
xi,x
j)=(
∑u=1
n|xi
u−xj
u|p)
1p歐式距離:di
sed(
xi,x
j)=(
∑u=1
n|xi
u−xj
u|2)
12曼哈頓距離:di
sman
(xi,
xj)=
∑u=1
n|xi
u−xj
u|歐氏距離和曼哈頓距離可以看做是閔可夫斯基距離在p=2和p=1下的特例。另外這三種距離都可以加權,這個很容易理解,不再贅述。
下面要說一下標量的規格化問題。上面這樣計算相異度的方式有一點問題,就是取值範圍大的屬性對距離的影響高於取值範圍小的屬性。例如上述例子中第三個屬性的取值跨度遠大於前兩個,這樣不利於真實反映真實的相異度,為了解決這個問題,一般要對屬性值進行規格化。所謂規格化就是將各個屬性值按比例對映到相同的取值區間,這樣是為了平衡各個屬性對距離的影響。通常將各個屬性均對映到[0,1]區間,對映公式為:a′
i=ai
−min(a
i)max(ai
)−mi
n(ai
) 其中max(ai)和min(ai)表示所有元素項中第i個屬性的最大值和最小值。例如,將示例中的元素規格化到[0,1]區間後,就變成了x』=,y』=,重新計算歐氏距離約為1.732。
k-means演算法步驟:
1、從d中隨機取k個元素,作為k個簇的各自的中心。
2、分別計算剩下的元素到k個簇中心的相異度,將這些元素分別劃歸到相異度最低的簇。
3、根據聚類結果,重新計算k個簇各自的中心,計算方法是取簇中所有元素各自維度的算術平均 數。
4、將d中全部元素按照新的中心重新聚類。
5、重複第4步,直到聚類結果不再變化。
6、將結果輸出。
適用範圍及缺陷:
時間複雜度:o(tkmn),其中,t為迭代次數,k為簇的數目,m為記錄數,n為維數
空間複雜度:o((m+k)n),其中,k為簇的數目,m為記錄數,n為維數
適用於大資料集合,伸縮性好。
缺陷: 需要事先確定簇數k和初始聚類中心,還經常以區域性最優結束,對雜訊和孤立點敏感,不適用於發現非凸面形狀的簇過大小差別很大的簇。
em演算法是像是k-means演算法的應用場景。因為k-means總是陷入區域性最優,而且對於非凸函式不適用。同樣是聚類。
gmm演算法k-means演算法的比較
1.em演算法
gmm演算法是em演算法族的乙個具體例子。
em演算法解決的問題是:要對資料進行聚類,假定資料服從雜合的幾個概率分布,分布的具體引數未知,涉及到的隨機變數有兩組,其中一組可觀測另一組不可觀測。現在要用最大似然估計得到各分布引數。
如果涉及的兩組隨機變數都是可觀測的,問題就立即可以解決了,對似然函式求取最大值就能得到分布引數的解。
em演算法先為所需求取的分布引數賦初值,使得能算出隱藏變數的期望;進而用隱藏變數的期望和可觀測變數的資料對分布引數的似然函式求最大值,得到一組解從而更新分布引數。然後用更新過的分布引數算出隱含變數的期望,再用這個期望與可觀測資料進行分布引數的更新…
即:em演算法包括隱藏變數期望計算(e-step)和似然函式最大值計算(m-step)兩個過程,一開始為分布引數賦乙個初始值,然後迭代地執行e-step和m-step,直到演算法收斂。
2.gmm演算法
gmm演算法作為em演算法族的乙個例子,它指定了各個參與雜合的分布都是高斯分布,即分布引數表現為均值mu和方差sigma。通過em演算法作為計算使用的框架,迭代地算出各個高斯分布的引數。
3.gmm和k-means的比較
相同點
都是迭代執行的演算法,且迭代的策略也相同:演算法開始執行時先對需要計算的引數賦初值,然後交替執行兩個步驟,乙個步驟是對資料的估計(k-means是估計每個點所屬簇;gmm是計算隱含變數的期望;);第二步是用上一步算出的估計值重新計算引數值,更新目標引數(k-means是計算簇心位置;gmm是計算各個高斯分布的中心位置和協方差矩陣)
不同點
1)需要計算的引數不同:k-means是簇心位置;gmm是各個高斯分布的引數
2)計算目標引數的方法不同:k-means是計算當前簇中所有元素的位置的均值;gmm是基於概率的演算法,是通過計算似然函式的最大值實現分布引數的求解的
機器學習演算法彙總
機器學習知識樹 1 bayesian mode樸素貝葉斯模型 2 k nearest neighbors knn k近鄰 3 support vector machines svm 支援向量機 4 decision trees決策樹 5 boosting 6 隨機森林 7 neural networ...
機器學習演算法彙總
1.監督式學習 在監督式學習下,輸入資料被稱為 訓練資料 每組訓練資料有乙個明確的標識或結果,如對防垃圾郵件系統中 垃圾郵件 非垃圾郵件 對手寫數字識別中的 1 2 3 4 等。在建立 模型的時候,監督式學習建立乙個學習過程,將 結果與 訓練資料 的實際結果進行比較,不斷的調整 模型,直到模型的 結...
機器學習演算法彙總(上)
分類演算法 經典演算法 前沿演算法 演化計算演算法 協同進化 演化 python機器學習 深度學習神經網路 特徵選擇演算法 本頁面一周一更新,無新文章不更新,上次更新2018年4月18日。機器學習術語表 機器學習領域權威會議與期刊整理 機器學習中一些模型為什麼要對資料歸一化?機器學習資料集劃分及交叉...