1. 程式人生 > >Boosting集合演算法詳解(一)

Boosting集合演算法詳解(一)

二、K-means

1. 演算法步驟

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

2. 距離的度量

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

dxy=i=1n(xiyi)p
其中p是一個可變引數:
  • 當p=1時,被稱為曼哈頓距離
  • 當p=2時,被稱為歐式距離
  • 當p=時,被稱為切比雪夫距離。

餘弦相似度

cos(Θ)=aTb|a||b|
  • a,b表示兩個向量,|a||b|表示向量的模。 餘弦相似度一般衡量兩個向量的相似情況,常用與文字處理。餘弦角越小越相似。

傑卡德(Jaccard)相似係數

J(A,B)=|AB||AB|
  • 這裡,AB表示集合,AB表示兩個集合公共元素的個數,AB表示兩個集合並集元素的個數。 Jaccard 相似係數適用於度量兩個集合的相似程度,取值在 0~1 之間,越大越相似。在推薦系統中常用衡量客戶或商品的相似度。

3. 變數標準化

在聚類前,通常需要對個連續變數進行標準化,因為方差大的變數比方差曉得變數對距離或相似度的影響更大,從而對聚類結果的影響更大。

常用的方法有:

正態標準化xi=ximean(X)std(X
歸一化xi=ximin(X)max(X)min(X)

4. 變數的維度分析

假設一組變數中,一個維度有5個變數,二另一個維度只有1個變數,則第一個維度的權重被明顯提高了。一般情況下,每個維度上使用的變數個數應該是一樣的,不過分析人員要結合具體場景不同維度提供不同數量的變數個數,這相當於加大了一些維度的權重。

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

5. 質心的目標函式

5.1 SSE 誤差平方和

聚類的目標通常用一個目標函式表示,該函式依賴於點之間,或點到簇的質心的臨近性;
如,考慮臨近性度量為歐幾里得距離的資料,我們使用誤差平方和(SSE)作為度量聚類質量的目標函式,即最小化簇中點到質心的距離平方和。 SSE也稱散佈(scatter),定義如下:

SSE=i=1KxCidist(ci,x)2
其中,dist是歐幾里得空間中兩個物件之間的標準歐幾里得距離。

給定這些假設,實際上可以證明:對 SSE 求導,另導數為 0 求解 ck使簇的 SSE 最小的質心是均值