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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Boosting集合算法详解(一)

發(fā)布時間:2023/12/4 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Boosting集合算法详解(一) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文是關(guān)于聚類算法的第二篇K-means,感興趣的同學(xué)可以前往http://ihoge.cn/2018/clustering.html
閱讀完整版。

二、K-means

1. 算法步驟

<1> 選擇KK個點作為初始質(zhì)心
<2> Repeat:
<3> 將每個點指派到最近的質(zhì)心,形成KK個簇
<4> 重新計算每個簇的質(zhì)心
<5> Until: 質(zhì)心不發(fā)生變化終止

2. 距離的度量

閔可夫斯基距離

閔可夫斯基距離不是一種距離,而是一類距離的定義。對于 n 維空間中的兩個點 x(x1,x2,x3,...,xn)x(x1,x2,x3,...,xn)y(y1,y2,y3,...,yn)y(y1,y2,y3,...,yn),那么xxyy亮點之間的閔可夫斯基距離為:

dxy=i=1n(xi?yi)p?dxy=∑i=1n(xi?yi)p
其中p是一個可變參數(shù):

  • 當(dāng)p=1時,被稱為曼哈頓距離
  • 當(dāng)p=2時,被稱為歐式距離
  • 當(dāng)p=時,被稱為切比雪夫距離。

余弦相似度

cos(Θ)=aTb|a|?|b|cos(Θ)=aTb|a|?|b|

  • a,ba,b表示兩個向量,|a||a||b||b|表示向量的模。 余弦相似度一般衡量兩個向量的相似情況,常用與文本處理。余弦角越小越相似。

杰卡德(Jaccard)相似系數(shù)

J(A,B)=|A?B||A?B|J(A,B)=|A?B||A?B|

  • 這里,ABA、B表示集合,A?BA?B表示兩個集合公共元素的個數(shù),A?BA?B表示兩個集合并集元素的個數(shù)。 Jaccard 相似系數(shù)適用于度量兩個集合的相似程度,取值在 0~1 之間,越大越相似。在推薦系統(tǒng)中常用衡量客戶或商品的相似度。

3. 變量標(biāo)準(zhǔn)化

在聚類前,通常需要對個連續(xù)變量進行標(biāo)準(zhǔn)化,因為方差大的變量比方差曉得變量對距離或相似度的影響更大,從而對聚類結(jié)果的影響更大。

常用的方法有:

正態(tài)標(biāo)準(zhǔn)化xi=xi?mean(X)std(Xxi=xi?mean(X)std(X
歸一化xi=xi?min(X)max(X)?min(X)xi=xi?min(X)max(X)?min(X)

4. 變量的維度分析

假設(shè)一組變量中,一個維度有5個變量,二另一個維度只有1個變量,則第一個維度的權(quán)重被明顯提高了。一般情況下,每個維度上使用的變量個數(shù)應(yīng)該是一樣的,不過分析人員要結(jié)合具體場景不同維度提供不同數(shù)量的變量個數(shù),這相當(dāng)于加大了一些維度的權(quán)重。

除了機遇業(yè)務(wù)定義進行變量的選擇,另一種常用的方法是在聚類之前進行主成分分析。

5. 質(zhì)心的目標(biāo)函數(shù)

5.1 SSE 誤差平方和

聚類的目標(biāo)通常用一個目標(biāo)函數(shù)表示,該函數(shù)依賴于點之間,或點到簇的質(zhì)心的臨近性;
如,考慮臨近性度量為歐幾里得距離的數(shù)據(jù),我們使用誤差平方和(SSE)作為度量聚類質(zhì)量的目標(biāo)函數(shù),即最小化簇中點到質(zhì)心的距離平方和。 SSE也稱散布(scatter),定義如下:

SSE=Ki=1xCidist(ci,x)2SSE=∑i=1K∑x∈Cidist(ci,x)2
其中, distdist是歐幾里得空間中兩個對象之間的標(biāo)準(zhǔn)歐幾里得距離。

給定這些假設(shè),實際上可以證明:對 SSE 求導(dǎo),另導(dǎo)數(shù)為 0 求解 ckck使簇的 SSE 最小的質(zhì)心是均值

??ckSSE=??ckKi=1xCi(ci,x)2=0??ckSSE=??ck∑i=1K∑x∈Ci(ci,x)2=0

最終得到:

xCk2(ck?xk)=0?mkck=xCkxk?ck=1mkxCkxk∑x∈Ck2(ck?xk)=0?mkck=∑x∈Ckxk?ck=1mk∑x∈Ckxk

文檔數(shù)據(jù)

考慮文檔數(shù)據(jù)和余弦相似性度量。這里我們假定文檔數(shù)據(jù)用文檔——詞矩陣表示,我們的目標(biāo)是最大化簇中文檔與簇的質(zhì)心的相似性;該量乘坐簇的凝聚度(cohesion)。對于該目標(biāo),可以證明,與歐幾里得數(shù)據(jù)一樣,簇的質(zhì)心是均值。總 SSE 的類似量是總凝聚度(total cohesion):

TotalCohesion=Ki=1xCicosine(ci,x)TotalCohesion=∑i=1K∑x∈Cicosine(ci,x)

關(guān)于凝聚度的知識,會在下文模型評估里面詳細(xì)介紹

5.2 SAE 絕對誤差和

為了表明KK均值可以用各種不同的目標(biāo)函數(shù),我們考慮如何將數(shù)據(jù)分成KK個簇,使得點到其簇中心的曼哈頓距離之和最小。如下式絕對誤差和(SAE)

SAE=Ki=1xCi|ci?x|SAE=∑i=1K∑x∈Ci|ci?x|

??ckSAE=??ckKi=1xCi|ci?x|=0??ckSAE=??ck∑i=1K∑x∈Ci|ci?x|=0

最終得到:

xCk??ck|ck?x|=0?xCksign(x?ck)=0?ck=median{xCk}∑x∈Ck??ck|ck?x|=0?∑x∈Cksign(x?ck)=0?ck=median{x∈Ck}
即簇中點的中位數(shù)。一組點的中位數(shù)的計是直截了當(dāng)?shù)?#xff0c;并且減少受離群值的影響。

5.3 常見的鄰近度、質(zhì)心和目標(biāo)函數(shù)組合

鄰近度函數(shù)質(zhì)心目標(biāo)函數(shù)
曼哈頓距離中位數(shù)最小化對象與質(zhì)心的絕對誤差和SAE
平方歐幾里得距離均值最小化對象與質(zhì)心的誤差平方和SSE
余弦均值最大化對象與質(zhì)心的余弦相似度和
Bregman散度均值最小化對象到質(zhì)心的Bregman散度和

Bregman散度實際上是一類緊鄰性度量,包括平方歐幾里得距離。Bregman散度函數(shù)的重要性在于,任意這類函數(shù)都可以用作以均值為質(zhì)心的 K-means 類型的聚類算法的基礎(chǔ)。

6. 選擇初始質(zhì)心

當(dāng)質(zhì)心隨機初始化時,K-means 將產(chǎn)生不同的總 SEE。選擇適當(dāng)?shù)某跏假|(zhì)心是基本 K-menas 過程的關(guān)鍵步驟。常見的是隨機選取,但這種情況下簇的質(zhì)量常常很差。考慮什么情況下選擇的初始質(zhì)心能找到最優(yōu)解?答案是:每個簇剛好分到一個質(zhì)心。事實證明發(fā)生這種情況的概率是非常非常低的。

常見一種技術(shù)是:多次運行,然后選取具有最小 SEE 的簇集。該策略雖然簡單,但是效果可能不太好,依然是概率事件。

另一種有效的技術(shù)是:取一個樣本,并使用層次聚類技術(shù)對他聚類。從層次聚類中提取 KK 個簇,并用這些簇的質(zhì)心作為初始質(zhì)心。該方法雖然有效,但僅對下列情況有效:(1)樣本相對較小,例如數(shù)百到數(shù)千(層次聚類開銷較大);(2)KK 相對與樣本大小較小。

還有一種方法是:隨機選擇第一個點或者所有點到質(zhì)心作為第一個點。然后對于每個候機初始質(zhì)心,選擇里已經(jīng)選取的初始質(zhì)心最遠(yuǎn)的點,并且把該方法應(yīng)用與點樣本。 這樣可以大大緩解可能會選擇離群點作為質(zhì)心的可能,并且大大減小計算量。

另外,我們也可以采用對初始化問題不太敏感的 K-means 的變種,二分K-means、使用后處理來“修補”
所產(chǎn)生的簇集

7. 時間復(fù)雜性和空間復(fù)雜性

  • 所需空間:O((m+K)n)O((m+K)n),m 是點數(shù), n 是屬性數(shù)

  • 所需時間:O(I?K?m?n)O(I?K?m?n)II<script type="math/tex" id="MathJax-Element-34">I</script> 是收斂所需迭代次數(shù),通常很小,可以是有界的。

8. K-means 其他問題

8.1 處理空簇

K-means 存在的問題之一是:如果所有的點在指派的步驟都為分配到某個簇,就會得到空簇。這種情況下需要選擇一個替補質(zhì)心,否則誤差將會偏大。

  • 方法一: 選擇一個距離當(dāng)前任何質(zhì)心最遠(yuǎn)的點
  • 方法二: 從具有最大 SSE 的簇中選擇一個替補質(zhì)心。浙江分裂簇并降低聚類的總 SSE。

8.2 離群點

當(dāng)然我們想到的第一反應(yīng)是刪除離群點,但是有些聚類應(yīng)用,不能刪除離群點。在某些情況下(財經(jīng)分析),明顯的離群點可能是最令人感興趣的點。

那么問題來了,如何識別離群點?

  • 方法一:聚類前刪除離群點
  • 方法二:后處理離群點。如刪除那些具有不尋常影響的點(尤其是多次運行算法時),另外也可以刪除那些很小的簇,他們嘗嘗代表離群點的組。

8.3 后處理降低 SSE

  • 增加簇個數(shù)

    • 分裂一個簇:通常選擇具有最大 SSE 的簇,頁可以分裂在特定屬性上具有最大標(biāo)準(zhǔn)差的簇。
    • 引進一個新的質(zhì)心:通常選擇離所有質(zhì)心最遠(yuǎn)的點。
  • 減少簇個數(shù)

    • 拆散一個簇: 通常選擇拆散使總 SSE 增加最少的簇, 刪除對應(yīng)的質(zhì)心
    • 合并兩個簇: 通常選擇合并質(zhì)心最接近的兩個簇,或者合并兩個導(dǎo)致總 SSE 增加最少的簇。這兩種方法與層次聚類使用的方法相同,分別乘坐質(zhì)心方法和 Ward 方法。

9. 二分 K-means

二分 K-means 算法時基于 K-means 算法的直接擴充,它基于一種簡單想法:為了得到 K 個簇,將所有點的集合分裂成兩個簇,從這些簇中選取一個繼續(xù)分裂,如此下去,知道產(chǎn)生 K 個簇。

算法實現(xiàn)步驟:

<1> 初始化簇表,是指包含有所有的點組成的簇。
<2> Repeat

<3> 從簇表中取出一個簇
<4> 對選出的簇進行多次二分“實驗”
<5> for i = 1 to 試驗次數(shù) do:
<6> 使用基本 K-means,二分選定的簇
<7> end for
<8> 從二分實驗中選擇具有最小 SSE 的兩個簇
<9> 將這兩個簇添加到簇表中

<10> Until 簇表包含 K 個簇。

待分裂的簇有許多不同的選擇方法。可以選擇最大的簇,選擇具有最大 SSE 的簇,或者使用一個基于大小和 SSE 的標(biāo)準(zhǔn)進行選擇。不同的選擇導(dǎo)致不同的簇。

我們通常使用結(jié)果簇的質(zhì)心作為基本 K-means 的初始質(zhì)心,對結(jié)果逐步求精。 因為盡管 K-means 可以保證找到使 SSE 局部最小的聚類,但是自二分 K-means 算法中,我們“局部地”使用了 K-means ,即二分個體簇。因此,最終的簇集并不代表使 SSE 局部最小的聚類。

10. K-means優(yōu)缺點

10.1 優(yōu)點

  • 簡單并且可以用于各種數(shù)據(jù)類型;
  • 具備適合的空間復(fù)雜度和計算負(fù)責(zé)度,適用于大樣本數(shù)據(jù);
  • K-means 某些變種甚至更有效 (二分K-means)且不受初始化問題影響。

10.2 缺點

  • 不能處理非球形簇、不同尺寸和不同密度的簇;
  • 對離群點敏感;
  • K-means 僅限于具有中心(質(zhì)心)概念的數(shù)據(jù)。有一種相關(guān)的 K-中心點聚類技術(shù)沒有這種限制,但是開銷更大。

參考文獻:

總結(jié)

以上是生活随笔為你收集整理的Boosting集合算法详解(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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