機器學習入門 聚類(一)

2021-08-15 07:52:12 字數 1686 閱讀 1025

聚類演算法是在沒有給定標籤和樣本值的前提下進行資料劃分,是典型的無監督學習(unsupervised learning)演算法。聚類試圖將資料集中的樣本劃分成若干個不相交的子集,稱為「簇」,或「類」。乙個好的樣本劃分肯定是簇內的樣本相似度高,而簇與簇之間的樣本相似度低。

簇是物件的集合,其中每個物件到定義該簇的原型的距離比其他簇的原型距離更近,例如在下面的k-means演算法中,原型就是簇的質心。

k-means演算法把資料集劃分為k個簇,劃分依據是簇的每乙個樣本點到質心(均值)的最小化平方誤差和,即歐氏距離。歐氏距離越小,則代表這乙個簇的緊密程度越大,簇內的樣本相似度越高。

給定樣本集d

= d=

,k-means演算法得到的簇劃分c

= c=

最小化平方誤差e=

∑i=1

k∑x∈

ci||

x−μi

||22

e=∑i=1k∑x∈ci||x−μi||22

其中μi=1

|ci|

∑x∈c

ixμi=1|ci|∑x∈cix

為簇ci ci

的均值向量

但直接求解歐氏距離最小值並不容易,因此採用迭代求解的方法。

我有幾張阿里雲幸運券分享給你,用券購買或者公升級阿里雲相應產品會有特惠驚喜哦!把想要買的產品的幸運券都領走吧!快下手,馬上就要搶光了。

1.首先隨機選取k個質心,遍歷每乙個樣本點,把樣本點歸入距它最近的質心所代表的簇中。 

2.重新計算質心位置,即當前簇中的樣本點的均值。 

3.重複以上兩步,直到演算法收斂(更新不再產生劃分變動),或者達到停止條件。

k值需要預先指定,而很多情況下k值難以確定,這是k-means的乙個缺陷。

k-means的迭代過程本質上是座標上公升的過程。k-means是必定會收斂的,但是和梯度下降一樣,只能保證收斂到區域性最優,而不能保證收斂到到全域性最優。因此初始質心的選擇對演算法的結果影響十分巨大。

座標上公升法每次通過更新函式中的一維,把其他維的引數看成常量,迭代直到當前維度收斂,再通過多次的迭代計算其他維度以達到優化函式的目的。

因為k-means演算法是求均方誤差,因此對於一些偏差較大的雜訊點非常敏感,因此在k-means基礎上可以做適當優化。

k-medoids演算法就是一種優化演算法,它和k-means唯一不同之處是:k-medoids演算法用類中最靠近中心的乙個樣本點來代表該聚類,而k-means演算法用質心來代表聚類。可以減少雜訊點帶來的影響。

二分k均值法也是一種優化演算法,二分k均值法初始時將所有點看成乙個簇,在簇的數量小於k的時候進行迭代,演算法的核心是選擇乙個簇一分為二,這裡一分為二的方法還是k均值法,只不過k變成了2。二分k均值依次計算每個簇一分為二後新的總平方誤差,選擇劃分後總體平方誤差最小的簇進行劃分。這樣就盡可能避免了k-means落入區域性最優的情況。

學習向量量化(lvq)也是試圖找到一組原型來刻畫聚類結構,但與k-means不同的是,lvq的樣本帶有類別標記。

給定樣本集d

= d=

,每個樣本x

j xj

是乙個n維向量,y

j yj

是類別標記,lvq的目標是學得一組n維原型量

,每乙個原型向量代表乙個簇的原型。原型向量的簇標記為ti∈

γ ti∈γ

同樣,lvq也是採用迭代求解的方法。

機器學習(聚類 一 )

演算法起源於分類學,物以類聚,人以群分。人們在以前都是靠經驗來分類,但是當東西一多,就很難再進行靠經驗和知識進行分類而且分類的不准,所以利用數學進行定量的分類。資料探勘,我們可以通過聚類來分別出不同的人群,概括出每一類消費者的消費模式。1 劃分法 k means演算法 k medoids演算法 cl...

機器學習 聚類

聚類的過程是將樣本分類的過程,聚類屬於無監督學習,資料中沒有label,訓練之前並不知道樣本屬於哪乙個類別,需要借鑑經驗值。kmeans聚類 模型假設 資料的分布是k個 sigma 相同的高斯分布的,每個分布裡有 n 1,n 2,n k 個樣本,其均值分別是 mu 1,mu 2,mu k 那麼每個樣...

機器學習聚類

模型調參 from sklearn.cluster import dbscan 構建空列表,用於儲存不同引數組合下的結果 res 迭代不同的eps值 for eps in np.arange 0.001,1 0.05 迭代不同的min samples值 for min samples in rang...