機器學習實戰之KMean

2021-07-22 02:07:46 字數 775 閱讀 1468

kmeans演算法步驟:

1. 確定聚類個數k

2. 隨機選擇k個質心

3. 對於所有樣本點:

根據樣本點到質心的距離分類

4. 分類完成後,如果所有樣本點的類別沒有變化,演算法結束

如果有變化,重新計算質心(當前類中樣本的平均值),回到步驟3

幾個問題:

1. 聚類個數k的確定

2. 初始時質心的選取

3. 容易出現區域性最優解

考慮在多維空間中將資料點分組/聚類的問題。假設有乙個資料集包含n個觀測到的d維變數x。我們的目標是將這些資料分割為k類,k是給定的數值。可以自然而然地想到,類內距離應該比類間聚類要小。選擇乙個d維向量mu:k(k=1,…..k)表示k類的中心。接下來我們要找一組mu:k,使得每個資料點到距離它最近的mu:k的距離平方和最小。定義乙個目標函式,也可以成為畸變函式:

其中rnk

我們的目標是找到rnk和uk來最小化函式j。可以通過在每次迭代中分別關於rnk和uk最小化j。首先選擇uk的初始值,然後保持uk不變,關於rnk最小化j。第二步,保持rnk不變。關於uk最小化j。重複這兩步直到收斂。

當rnk固定的時候考慮關於uk的最小化。目標函式j是uk的乙個二次函式,通過將uk的導數設為0來最小化。

很容易可以得到

分母等於聚類k中的點的個數,因此這個公式就很好理解:uk等於分配到聚類k中點的期望/均值。

兩個步驟:重新分配資料點和重新計算聚類中心。已知重複,直到分配資料點不再變化或者達到最大迴圈次數。(或者前後兩次j的值相差不超過乙個常量)

機器學習之K Mean聚類演算法

知識點 coding utf 8 import numpy as np import pandas as pd from sklearn.cluster import kmeans 非監督學習 聚類演算法 1 隨機再資料當中抽取三個樣本,當作三個類別的中心點 k1,k2,k3 2 計算其餘的點分別到...

機器學習實戰 第十章 K mean聚類

本系列目的在於總結每乙個分類器的特點 優點 缺點 使用資料型別 使用時的注意事項等 相關 自己搜。python 建議使用2.7 python常用函式庫 numpy scikit learn等 python整合環境 anaconda 畢業季,玩了20天。優點 1 程式設計容易實現。缺點 1 區域性最小...

機器學習實戰之KMeans

from numpy import def loaddataset filename datamat fr open filename for line in fr.readlines curline line.strip split t fltline map float,curline retu...