資料探勘十大經典演算法之二 K means

2021-07-15 22:33:40 字數 1857 閱讀 5937

k-means是無監督聚類演算法,主要是根據樣本的相似度或者樣本之間的距離進行自動分類。

首先,初始化聚類中心,可以隨機選擇k個樣本,也可以固定選擇其中的k個樣本作為初始化的聚類中心。

其次,計算各樣本到所有的聚類中心的相似度(此處用距離表示),將樣本分到與聚類中心相似的最大即距離最小的中心所在的類中。

再次,更新聚類中心,可以通過樣本的平均值計算

最後,迴圈迭代,直至滿足停止條件。

import numpy as np

from operator import itemgetter

defloaddata

(filename):

dataset =

file = open(filename)

for line in file.readlines():

return np.array(dataset)

defcomputedistence

(dataset,centre):

return np.sqrt(((dataset-centre)**2).sum(axis=1))

defcomputecentre

(dataset,k):

n = dataset.shape[1]

centreset = np.zeros((k,n))

minvalue = dataset.min(axis=0)

maxvalue = dataset.max(axis=0)

chagerange = maxvalue-minvalue

centreset = minvalue + chagerange*np.random.rand(k,2)

return centreset

defkmeans

(dataset,k):

m = dataset.shape[0]

clusterresult = np.zeros((m,3))

centres =computecentre(dataset,k)

clusterchanged = true

while clusterchanged:

clusterchanged=false

for i in range(m):

distence = computedistence(dataset[i],centres)

indexes, sorteddistence = zip(*sorted(enumerate(distence), key=itemgetter(1)))

if(clusterresult[i,1] !=indexes[0]):

clusterchanged = true

clusterresult[i,:] = i,indexes[0],sorteddistence[0]

for i in range(k):

tmp = dataset[np.array((clusterresult[clusterresult[:,1] == i])[:,0]).astype(np.int32)]

meanvalue = np.mean(tmp,axis=0)

centres[i,:] = np.mean(tmp,axis=0)

return centres,clusterresult

defmain

(): dataset = loaddata('testset.txt')

centres = computecentre(dataset,4)

centres,clusterresult = kmeans(dataset,4)

if __name__ == '__main__':

main()

資料探勘十大經典演算法

最近想看看資料探勘是個什麼東西,因此特別的關注了下,首先看看資料探勘包含哪些演算法,網上找到了十大經典演算法 01.c4.5 是機器學習演算法中的一種分類決策樹演算法,其核心演算法是 id3演算法 02.k means演算法 是一種聚類演算法。03.svm 一種 監督式學習 的方法,廣泛運用於統計分...

資料探勘十大經典演算法

1 c4.5 2 k means 3 svm 4 apriori 5 em 6 pagerank 7 adaboost 8 knn 9 bayes 10 cart 1 c4.5 計算增益率 step1 計算資料集d的熵 單位為位元 info d step2 計算每個屬性的熵info x d step...

十大經典資料探勘演算法

c4.5演算法 機器學習演算法中的乙個分類決策樹演算法 cart 分類與回歸樹 c4.5與cart都是決策樹演算法 id3用資訊增益,c4.5用資訊增益率,cart用gini係數 knn 樸素貝葉斯 bayes 在眾多的分類模型中,應用最為廣泛的兩種分類模型是決策樹模型 decision tree ...