聚類分析之 Kmeans演算法(一)

2021-07-29 09:49:15 字數 1078 閱讀 5696

聚類分析是一種靜態資料分析方法,常被用於資料探勘、機器學習、模式識別等領域,聚類是一種無監督式的學習方法。它是在未知樣本類別的情況下,通過計算樣本彼此間的距離(歐式距離,馬式距離,漢明距離,余弦距離等)來估計樣本所屬類別。從結構性來劃分,聚類方法分為自上而下和自下而上兩種方法。聚類的演算法有很多種,大約幾十種,k-means演算法是十大經典資料探勘演算法之一。

k-means演算法是最為經典的基於劃分的聚類方法,是十大經典資料探勘演算法之一。它是一種自下而上的聚類方法。k-means演算法最大的優點是好理解、簡單、執行速度快,但只能應用於連續性的資料;缺點是聚類的結果與我們初始設定的中心點的選擇有直接關係,並且需要我們自己提供聚類的數目,但是可以通過多次聚類取最佳的結果來設定初始的聚類數目,如果當我們不知道樣本集將要聚成多少個類別的時候,那麼這時候不適合用kmeans演算法,推薦使用其他方法來聚類,如(hierarchical 或meanshift)。

k-means演算法的基本思想是:以空間中k個點為中心進行聚類,對最靠近他們的物件歸類。通過迭代的方法,逐次更新各聚類中心的值,直至得到最好的聚類結果,大概就是這個意思,「物以類聚、人以群分」。具體流程如下:

首先輸入乙個k的值,此值是我們自己設定的,k表示將資料集經過聚類得到的分組個數。

從資料集中隨機選擇k個資料點作為初始中心點。

對集合中每乙個資料點,分別計算與每乙個初始中心點的距離,資料點離哪乙個中心的越近,就歸類此類。

通過均值等方法對聚成的類再進行新的中心點確定。

若新的中心點與原來的中心點之間的距離小於乙個閾值(設定好的乙個閾值),說明比較穩定,那麼此聚類達到了我們的期望,演算法結束。

如果新的中心點與原來的中心點之間的距離很大,那麼需要迭代以上的3-5步驟。

聚類基本流程圖

k-means演算法的關鍵點在於初始中心的選擇和距離公式。

kmeans的應用場景非常多,除了一般的聚類場景(例如對使用者進行分群組等)外,我們還可以用kmeans實現單變數的離散化,因為一般的等頻和等距的離散化方法往往會忽略變數中潛在的分布特徵,而基於聚類的離散化可以一定程度地保留變數的分布特徵。

聚類分析 K Means演算法

k means演算法 這是基於劃分的聚類演算法,該演算法效率較高,對大規模資料進行聚類時被廣泛使用。基本思路 把資料集劃分成k 個簇,每個簇內部的樣本非常相似,不同簇之間的差異非常大。k means演算法是乙個迭代演算法,先隨機選擇 k個物件,每個物件代表了起中心,對於剩下的物件,將其賦給最近的簇,...

k means聚類分析

k means演算法是machine learning領域內比較常用的演算法之一。首先從n個資料物件任意選擇 k 個物件作為初始聚類中心 而對於所剩下其它物件,則根據它們與這些聚類中心的相似度 距離 分別將它們分配給與其最相似的 聚類中心所代表的 聚類 然 後再計算每個所獲新聚類的聚類中心 該聚類中...

K means聚類分析

主成分分析 pca pca n components 0.9 data pca.fit transform cross 降維x data 500 x.shape 對類別預設為4 km kmeans n clusters 4 km.fit x predict km.predict x 顯示聚類結果 p...