機器學習15 k means python

2021-09-03 08:53:46 字數 1613 閱讀 4521

參考部落格

基本思想:不斷更新質心,直到質心變化不大

基本思想:選取分簇之後的sse(到質心的距離平方和)是否最小分簇

基本思想:隨機選取小批量樣本,分配到最近的質心,更新質心,重複操作即可

def

standard_kmeans

(data_mat, k)

:"""

1. 初始化k個中心點

2. 計算每個樣本到中心點的距離,最近的就劃分為哪個族

3. 更新中心點

4. 判斷中心點是否有變化

5. 沒有變化,結束

6. 有變化,回到步驟2

:param data_mat:

:param k:

:return:

"""m, n = data_mat.shape

center_pt = rand_init_center(data_mat, k)

# 儲存每個點到屬於哪個族以及距離

cluster_assment = np.mat(np.zeros(

(m,2))

) change =

true

while change:

change =

false

# 遍歷所有樣本

for i in

range

(m):

min_dis_index =-1

min_dis = np.inf

# 遍歷所有的中心點

for j in

range

(k):

dis = computer_distance(center_pt[j,:]

, data_mat[i,:]

)if dis < min_dis:

min_dis = dis

min_dis_index = j

if cluster_assment[i,0]

!= min_dis_index:

change =

true

# 更新最近的中心點以及距離

cluster_assment[i,0]

= min_dis_index

cluster_assment[i,1]

= min_dis

# 如果中心沒有變化,那麼就可以退出了

ifnot change:

break

# 更新中心

for i in

range

(k):

# 提取i族的點

index = cluster_assment[:,

0].a == i

# nonzero返回乙個元組,[0] 是行號,[1]是列號

index = np.nonzero(index)

pts = data_mat[index[0]

,:]if pts.shape[0]

!=0: center_pt[i]

= np.mean(pts, axis=0)

return center_pt, cluster_assment

《機器學習實戰》筆記1 5 機器學習步驟

第一篇部落格,用來記錄 機器學習實戰 的學習筆記。從無序的資料中得到有序的資料 收集資料 爬蟲 公開資料來源 裝置輸入 血糖 頻率等 準備輸入資料 分析輸入資料 人工分析是否有缺失值 異常值等 如果資料 是可信任資料 或者在產品話系統中可略過此步驟 訓練演算法 在此步驟中機器學習才真正開始,是機器學...

機器學習筆記15 聚類

1.聚類的主要內容 決策樹 隨機森林 svm等演算法用於回歸和分類問題,都是給定輸入x,和對應的給定結果值y 有監督 通過訓練得到模型y f x 通過模型得到y的 值,比較 值與真實值。聚類 無監督 是對輸入的 x1,x2,xm 若x為n維,則該資料實際是m n維的矩陣,當對m個資料進行處理,分別歸...

機器學習12月15日學習日記

明天週六就要考六級了,前兩天沒有學習機器學習課程,六級複習的也不怎麼樣。今天看課程從邏輯回歸看,看了三個小節。做了一些筆記,以後準備在複習的時候用思維導圖將知識通一遍。第3周 邏輯回歸模型 3.11.負類 標記為0的類 2.正類 標記為1的類 以簡單的二元分類為例,其中y只能取兩個值0和1。3.2假...