首先介紹乙個,fuzzykmeans演算法的主要思想:
模糊均值聚類(fcm),即眾所周知的模糊isodata,是用隸屬度確定每個資料點屬於某個聚類的程度的一種聚類演算法。2023年,bezdek提出了該演算法,作為早期硬均值聚類(hcm)方法的一種改進。fcm把 n 個向量 xi(i=1,2,…,n)分為 c 個模糊組,並求每組的聚類中心,使得非相似性指標的價值函式達到最小。fcm 使得每個給定資料點用值在 0,1 間的隸屬度來確定其屬於各個組的程度。與引入模糊劃分相適應,隸屬矩陣 u 允許有取值在 0,1 間的元素。不過,加上歸一化規定,乙個資料集的隸屬度的和總等於 1:
那麼,fcm的價值函式(或目標函式)就是下式一般化形式:
這裡 uij 介於 0,1 間;ci 為模糊組 i 的聚類中心,dij=||ci-xj||為第 i 個聚類中心與第 j 個資料點間的歐幾里德距離;且 m (屬於1到無窮) 是乙個加權指數。
構造如下新的目標函式,可求得使下式達到最小值的必要條件:其實就是拉格朗日乘子法:
對上式所有輸入參量求導,使上式達到最小的必要條件為:
和
由上述兩個必要條件,模糊 c 均值聚類演算法是乙個簡單的迭代過程。在批處理方式執行時,
fcm 用下列步驟確定聚類中心 ci 和隸屬矩陣 u[1]:
步驟 1:用值在 0,1 間的隨機數初始化隸屬矩陣 u
步驟 2:用式(3)計算 c 個聚類中心 ci,i=1,…,c。
步驟 3:根據式(1)計算價值函式。如果它小於某個確定的閥值,或它相對上次價
值函式值的改變量小於某個閥值,則演算法停止。
步驟 4:用(4)計算新的 u 矩陣和。返回步驟 2。
上述演算法也可以先初始化聚類中心,然後再執行迭代過程。由於不能確保 fcm 收斂於乙個最優解。演算法的效能依賴於初始聚類中心。因此,我們要麼用另外的快速演算法確定初始
聚類中心,要麼每次用不同的初始聚類中心啟動該演算法,多次執行 fcm。
notes: 上面討論不難看出二個引數比較重要:1.聚類的數目,2.控制演算法的柔軟引數m,如果m過大,則聚類的效果很差,如果m過小,則演算法接近kmeans演算法。
這裡有該演算法的mahout實現,本篇文章也是摘抄於此:
K Means聚類演算法
k means聚類演算法 intergret kmeans演算法的基本思想是初始隨機給定k個簇中心,按照最鄰近原則把待分類樣本點分到各個簇。然後按平均法重新計算各個簇的質心,從而確定新的簇心。一直迭代,直到簇心的移動距離小於某個給定的值。k means聚類演算法主要分為三個步驟 1 第一步是為待聚類...
聚類演算法 K means
演算法接受引數 k 然後將事先輸入的n個資料物件劃分為 k個聚類以便使得所獲得的聚類滿足 同一聚類中的物件相似度較高 而不同聚類中的物件相似度較小。聚類相似度是利用各聚類中物件的均值所獲得乙個 中心物件 引力中心 來進行計算的。k means演算法是最為經典的基於劃分的聚類方法,是十大經典資料探勘演...
k means聚類演算法
說到聚類,得跟分類區別開來,分類是按人為給定的標準將樣本歸到某個類別中去,在機器學習中多是監督學習,也就是訓練樣本要給標籤 正確的類別資訊 而聚類是在某種規則下自動將樣本歸類,在機器學習中是無監督學習,不需要提前給樣本打標籤。k means聚類演算法,就是在某種度量方式下,將樣本自動劃分到k個類別中...