在無監督學習中,我們的訓練集可以寫成只有x(1
)x^
x(1)
,x (2
)x^
x(2)
……一直到x(m
)x^
x(m)
。我們沒有任何標籤 yyy。
我們希望有一種演算法能夠自動的把這些資料分成有緊密關係的子集或是簇。
演算法步驟綜述
k-均值是乙個迭代演算法,假設我們想要將資料聚類成n個組,其方法為:
首先選擇k個隨機的點,稱為聚類中心(cluster centroids);
簇分配(cluster assignment) 對於資料集中的每乙個資料,按照距離k個中心點的距離,將其與距離最近的中心點關聯起來,與同乙個中心點關聯的所有點聚成一類。
移動聚類中心(move centroids) 計算 每乙個組 的平均值,將該組所關聯的中心點移動到平均值的位置。
重複步驟 2-4 直至中心點不再變化。
定義損失函式變數
假設有k個簇,c(i
)c^
c(i)
表示樣本x(i
)x^
x(i)
當前所屬的簇的索引編號 ,c(i
)∈(1
,2
,3...k)
c^∈(1,2,3...k)
c(i)∈(
1,2,
3...
k)μ
kμ_k
μk 表示 第k個聚類中心 的位置,其中 k∈1
,2,3
,4...
kk∈1,2,3,4...k
k∈1,2,
3,4.
..k根據以上定義:則μc(
i)
μ_c(i)
μc(i)
表示樣本x(i
)x^(i)
x(i)
所屬簇的中心的 位置座標
k-means演算法的優化目標
損失函式為 每個樣本到其所屬簇的中心的距離和的平均值 ,優化函式的輸入引數為 每個樣本所屬的簇的編號c(i
)c^
c(i)
和每個簇中心的座標μ
kμ_k
μk 這兩個都是在聚類過程中不斷變化的變數。此代價函式也被稱為 畸變函式(distortion function)
k-means演算法步驟與優化函式隨機初始化遵循法則
隨機初始化的侷限性
改進初始化方式–多次隨機初始化肘部法則(elbow method)
目標法則
機器學習 聚類 密度聚類演算法
一,介紹 密度聚類演算法有多種,我們這裡主要介紹一種著名的密度聚類演算法 dbscan。首先,我們通過下圖了解幾個概念 1 鄰域,與中心x距離不超過 距離,如上圖紅色虛線圈 2 核心物件,確定聚類的初始點,如上圖的x1 3 密度直達,在聚類核心物件鄰域內的點,如上圖x2由x1密度直達 4 密度可達,...
機器學習 聚類演算法
k means演算法 聚類概念 無監督問題 我們手裡沒有標籤了 難點 如何評估,如何調參 聚類 相似的東西分到一組 k means演算法 基本概念 要得到簇的個數,需要指定k值 距離的度量 常用歐幾里得距離和余弦相似度 先標準化 優化目標 質心 均值,即向量各維取平均即可 k means演算法 工作...
機器學習 聚類演算法
和之前講的兩個演算法不一樣 非監督型型別 檢測所有資料的中心來,為源來聚合。但沒有乙個結果,結果不固定 package com.mllib import org.apache.spark.mllib.clustering.kmeans import org.apache.spark.mllib.li...