基于模糊C均值聚类(FCM)的图像分割原理

基于模糊C均值聚类(FCM)的图像分割原理

图像分割概述

图像分割就是把图像细分为构成它的对象或子区域,这些区域是互不相交的,每个区域都满足特定区域的一致性。分割的程度主要取决于人们想要解决的问题,当感兴趣的区域或对象已经被区分出来,分割就算是完成了。计算机视觉中的图像理解,包括目标检测、特征提取和目标识别都依赖于图像分割的质量。

目前,图像分割算法一般书围绕高亮度值的两个基本特性设计的:不连续性和相似性。亮度值的不连续性的应用途径主要是基于像素点特性,如灰度值,的不连续变化分割图像,如最常用的边缘检测。而利用亮度值的相似性可以形成一套机制,即依据事先指定的准则将图像分割为相似的区域。一些实例包括门限处理、区域分离、区域生长和聚类等。而采用模糊C均值聚类及其扩展算法进行图像分割的好处是避免了阈值的设定问题,聚类的过程不需要人工干预,只需输入预想的分类数目即可实现自动化的图像分割。

FCM聚类算法(Fuzzy C- Means)

1. FCM原理

模糊C均值聚类- FCM的核心就是“模糊”,相较于K-means这种“硬”聚类,FCM提供了更为灵活的聚类结果。对于图像中像素点的分割往往并不能划分成明显分离的簇类,讲一个对象划分到一个特定的簇是由一些不符合客观认知的。

模糊指的就是对每个对象和每个簇类赋予一个权值,指明一个对象属于该簇的可能程度即可。当然基于概率的方法也可以给出一个权值,但是实际情况中往往很难给出一个合适的统计模型用以计算权值,所以自然的,非概率特性的FCM聚类算法就是一个比较好的选择。

2. FCM聚类流程

  1. 设置目标函数的精度,模糊指数与算法的最大迭代次数
  2. 初始化隶属度矩阵 U k U^{k} Uk
  3. 计算聚类中心 C C C
  4. 更新隶属度矩阵 U k + 1 U^{k+1} Uk+1
  5. 判断是否满足迭代终止条件,如果不满足则继续进行3,4
  6. 如果满足终止条件则停止迭代并返回聚类的簇类结果。

3. 具体步骤

Step 1. 初始化隶属度矩阵

FCM模糊聚类算法中将只取 1 1 1 0 0 0的普通集合概念推广到 0 → 1 0\to1 01区间内的多个取值,即隶属度,用“隶属度”来描述数据点和聚类中心之间的隶属关系。
U n × m ( 0 ) = [ u i j ] U^{(0)}_{n\times m} = [u_{ij}] Un×m(0)=[uij]
在公式(1)中, U n × k ( 0 ) U_{n\times k}^{(0)} Un×k(0)表示初始隶属度矩阵, n n n表示数据集中数据对象的个数, m m m表示簇类的个数, u i j u_{ij} uij表示数据对象 x i x_i xi对簇类中心 c j ∈ C = [ c j ∈ [ 1 , 2 , … , m ] ] c_j\in C=[c_{j\in[1,2,\dots,m]}] cjC=[cj[1,2,,m]]的隶属度,其数值越大,数据对象越靠近聚类中心 c j c_j cj

Step 2. 判断是否超过最大迭代次数

设定最大迭代次数 m a x _ i t e r max\_iter max_iter的值,判断当前迭代次数 i t e r iter iter是否超过了最大迭代次数。如果超过了则直接返回聚类结果,如果未超过则继续后续过程。

Step 3. 计算聚类中心

传统均值聚类算法在确定聚类中心时,一般最简单的就是找到属于某一类的所有样本点,然后这一类的类中心就是这些样本点的平均值。而对于FCM模糊聚类而言,在聚类中心 c j c_j cj确定之后,首先将所有点到该类的隶属度求和 ∑ i = 1 n u i j \sum_{i=1}^{n}u_{ij} i=1nuij,然后对于每个点,隶属度除以隶属度和就是所占的比重,乘以 x i x_i xi就是当前数据对象点对于这个类 j j j的贡献值:
c j = ∑ i = 1 n ( u i j m ⋅ x i ) ∑ i = 1 n u i j m = ∑ i = 1 n ( u i j m ∑ i = 1 n u i j m ⋅ x i ) c_j = \frac{\sum_{i=1}^{n}(u_{ij}^{m}\cdot x_i)}{\sum_{i=1}^{n}u_{ij}^{m}} = \sum_{i=1}^{n}(\frac{u_{ij}^{m}}{\sum_{i=1}^{n}u_{ij}^{m}}\cdot x_i) cj=i=1nuijmi=1n(uijmxi)=i=1n(i=1nuijmuijmxi)
如公式(2)中, c j c_j cj表示第 j j j个簇类中心, n n n表示数据集中数据对象的个数, m m m表示聚类簇的个数, u i j u_{ij} uij表示对象 x i x_i xi与聚类中心 c j c_j cj之间的隶属度。

Step 4. 更新隶属度矩阵

基于Step 3 中计算所得的各簇类中心点及原始数据集合,通过隶属度计算公式对隶属度矩阵进行更新:
u i j = 1 ∑ k = 1 m ( ∣ ∣ x i − c j ∣ ∣ ∣ ∣ x i − c k ∣ ∣ ) 2 m − 1 u_{ij} = \frac{1}{\sum_{k=1}^{m}(\frac{||x_i-c_j||}{||x_i-c_k||})^{\frac{2}{m-1}}} uij=k=1m(∣∣xick∣∣∣∣xicj∣∣)m121
如公式(3)中, u i j u_{ij} uij表示更新后的对象 x i x_i xi和聚类中心 c j c_j cj之间的隶属度, m m m表示聚类的簇类数量。由分式的下半部分可知,其中分子表示对象 x i x_i xi到簇类中心 c j c_j cj的距离,而分母则表示当前对象到所有聚类中心的距离之和,因此,当对象 x i x_i xi越靠近聚类中心 c j c_j cj,则下半部分整体值越小,隶属度 u i j u_{ij} uij则越大。

Step 5. 判断是否满足迭代终止条件

在不超过最大迭代次数的前提下,迭代终止条件如下:
max ⁡ i j { ∣ u i j ( i t e r ) − u ( i t e r − 1 ) ∣ } ≤ ε \max_{ij}{\{|u_{ij}^{(iter)}-u^{(iter-1)}|\}}\le\varepsilon ijmax{uij(iter)u(iter1)}ε
如公式(4)中, u i j ( i t e r ) u_{ij}^{(iter)} uij(iter)表示在当前迭代次数 i t e r iter iter下更新的对象 x i x_i xi与簇类中心 x j x_j xj之间的隶属度, u i j ( i t e r − 1 ) u_{ij}^{(iter-1)} uij(iter1)表示更新之前的对象 x i x_i xi与聚类中心 x j x_j xj之间的隶属度, ε \varepsilon ε表示误差阈值。上式含义为,继续迭代,隶属度不再发生较大变化时,即认为隶属度不变,即已经达到局部最优或全局最优状态,迭代结束,并返回模糊聚类结果。

FCM算法推导

  • 定义数据集大小为 m m m,聚类中心点个数为 c c c u i j u_{ij} uij为第 j j j个中心点的隶属度,并且 0 < u i j < 1 0<u_{ij}<1 0<uij<1,显然有 ∑ j = 1 c u i j = 1 , i = 1 , 2 , 3 , ⋯   , m \sum_{j=1}^{c}u_{ij}=1,i=1,2,3,\cdots,m j=1cuij=1,i=1,2,3,,m

  • 类似于K-means算法中的距离概念,定义:
    J = ∑ i = 1 n ∑ j = 1 c u i j α ∣ ∣ x i − c j ∣ ∣ 2 J = \sum_{i=1}^{n}\sum_{j=1}^{c}u_{ij}^{\alpha}||x_i-c_j||^2 J=i=1nj=1cuijα∣∣xicj2
    其中 α \alpha α为超参数, ∣ ∣ x i − c j ∣ ∣ ||x_i-c_j|| ∣∣xicj∣∣表示第 i i i个数据到第 j j j个中心的距离。显然为了让分类更加合理, J J J应当尽可能地小。换言之,当 J J J不再减小或者减小幅度足够小时,算法结束。

  • 运用拉格朗日乘子法合并函数 J J J和约束条件 ∑ j = 1 c u i j = 1 , i = 1 , 2 , … , m \sum_{j=1}^{c}u_{ij}=1,i=1,2,\dots,m j=1cuij=1,i=1,2,,m得到
    J = ∑ i = 1 n ∑ j = 1 c u i j α ∣ ∣ x i − c j ∣ ∣ 2 + ∑ i = 1 m λ i ( ∑ j = 1 c u i j − 1 ) J = \sum_{i=1}^{n}\sum_{j=1}^{c}u_{ij}^{\alpha}||x_i-c_j||^2 + \sum_{i=1}^{m}\lambda_i(\sum_{j=1}^{c}u_{ij}-1) J=i=1nj=1cuijα∣∣xicj2+i=1mλi(j=1cuij1)
    这里对输入参数求导,从而得到目标函数达到最小值的条件:
    z j = ∑ i = 1 m u i j α x i ∑ i = 1 m u i j α u i j = 1 ∑ k = 1 c ( d i j d i k ) 2 α − 1 z_j = \frac{\sum_{i=1}^{m}u_{ij}^{\alpha}x_i}{\sum_{i=1}^{m}u_{ij}^{\alpha}}\\ u_{ij} = \frac{1}{\sum_{k=1}^{c}(\frac{d_{ij}}{d_{ik}})^{\frac{2}{\alpha-1}}} zj=i=1muijαi=1muijαxiuij=k=1c(dikdij)α121

传统FCM图像分割实例

hf1

对于上图分别进行FCM聚类分割与K-means聚类分割的效果图如下:

K=3的K- means

image-20220930171930378

K=3的FCM

image-20220930172058255

K=4的K-means

image-20220930172155434

K=4的FCM

image-20220930172242639

FCM算法改进

对于FCM算法的改进这里仅包括在图像分割领域常有的改进,其中包括:FCM_S1,FCM_S2,EnFCM,FGFCM,FLICM,NWFCM,KWFLICM,NDFCM,FRFCM

未完待续

1. FLICM

FLICM是一种基于局部空间信息模糊聚类的图像分割算法。它融合了新的正则因子 G k i G_{ki} Gki,表达了该聚类充分利用局部空间信息和局部灰度信息,可以达到算法抵抗噪声干扰的目的。其表达形式为:
G k i = ∑ j ∈ N i ; i ≠ j 1 d i j + 1 ( 1 − u k j ) m ∣ ∣ x j − v k ∣ ∣ 2 G_{ki} = \sum_{j\in N_i;i\ne j}\frac{1}{d_{ij}+1}(1-u_{kj})^m||x_j-v_k||^2 Gki=jNi;i=jdij+11(1ukj)m∣∣xjvk2

公式(8)中, x i x_i xi是中心像素点, x j x_j xj是邻域像素, d i j = ∣ ∣ x j − v k ∣ ∣ d_{ij}=||x_j-v_k|| dij=∣∣xjvk∣∣表示邻域像素到中心像素的欧式距离, u k j u_{kj} ukj表示像素 x i x_i xi属于第 k k k类的隶属度, v k v_k vk表示第 k k k类的聚类中心, m m m是模糊加权指数。

FLICM算法所对应的聚类目标函数为:
J m = ∑ i = 1 N ∑ k = 1 c [ u k i m ∣ ∣ x i − v k ∣ ∣ 2 + G k i ] J_m = \sum_{i=1}^{N}\sum_{k=1}^{c}[u_{ki}^{m}||x_i-v_k||^2+G_{ki}] Jm=i=1Nk=1c[ukim∣∣xivk2+Gki]
公式(9)中, x i x_i xi表示第 i i i个像素的灰度值, v k v_k vk表示第 k k k类的聚类中心, u k j u_{kj} ukj表示像素 x i x_i xi属于第 k k k类的隶属度, N N N是像素个数, m m m是模糊加权指数。

再满足 ∑ k = 1 c u k i = 1 , u k i ∈ [ 0 , 1 ] , i = 1 , 2 , … , N \sum_{k=1}^{c}u_{ki}=1,u_{ki}\in[0,1],i=1,2,\dots,N k=1cuki=1,uki[0,1],i=1,2,,N的条件下,聚类中心和隶属度迭代表达式为:
u k i = 1 ∑ j = 1 c ( ∣ ∣ x i − v k ∣ ∣ 2 + G k i ∣ ∣ x i − x j ∣ ∣ 2 + G j i ) 1 m − 1 u_{ki} = \frac{1}{\sum_{j=1}^{c}(\frac{||x_i-v_k||^2+G_{ki}}{||x_i-x_j||^2+G_{ji}})^{\frac{1}{m-1}}} uki=j=1c(∣∣xixj2+Gji∣∣xivk2+Gki)m111

v k = ∑ i = 1 N u k i m x i ∑ i = 1 N u k i m v_k = \frac{\sum_{i=1}^{N}u_{ki}^{m}x_i}{\sum_{i=1}^{N}u_{ki}^{m}} vk=i=1Nukimi=1Nukimxi

公式(11)中与传统FCM算法中的 v k v_k vk表达式相同,但是二者的聚类目标函数并不相同。

1.1 FLICM的特征

FLICM中定义了一种新颖的模糊因子用以替代ENFCM和FCM- S及其变体中使用的参数 a a a和FGFCM中使用的 λ \lambda λ,新的模糊局部邻域因子可以自动确定空间和灰度关系,并且完全不需要任何参数选择。

  1. 它相对独立于噪声的类型,因此,在没有先验的噪声知识情况下,他是FCM聚类变种的更好的选择。
  2. 模糊局部约束以模糊方式同时合并了局部空间和局部灰度关系。
  3. 可以自动确定模糊局部约束,因此不需要任何参数的确定。
  4. 通过模糊的局部约束自动实现图像细节和噪点之间的平衡,同时增强了聚类性能。

2. NW-FCM

3. GG- FCM

一种半监督的FCM,其中通过考虑每个像素的局部邻域来确定几何条件。

4. FCM-S

其中对经典FCM的目标函数进行了修改,以补偿强度的不均匀性,并允许像素的标记受到其紧邻像素的影响。FCM-S的一个缺点就是每一次迭代过程中都需要计算邻域标签。

FCM-S允许像素的标记受到紧邻像素影响的方式为,以邻域效应充当正则化器,并使解决方案偏向于分段均质标记,修改后的目标函数为:
J m = ∑ i = 1 N ∑ j = 1 c u j i m ∣ ∣ x i − v j ∣ ∣ 2 + a N R ∑ i = 1 N ∑ j = 1 c u j i m ∑ r ∈ N i ∣ ∣ x r − v j ∣ ∣ 2 J_m = \sum_{i=1}^{N}\sum_{j=1}^{c}u_{ji}^{m}||x_i-v_j||^2+\frac{a}{N_{R}}\sum_{i=1}^{N}\sum_{j=1}^{c}u_{ji}^{m}\sum_{r\in N_{i}}||x_r-v_j||^2 Jm=i=1Nj=1cujim∣∣xivj2+NRai=1Nj=1cujimrNi∣∣xrvj2
公式(12)中 x i x_i xi是第 i i i个像素的灰度值, N N N是像素总数, v j v_j vj是第 j j j个中心的原型值, u j i u_{ji} uji表示第 i i i个像素相对于聚类 j j j的模糊隶属关系, N R N_{R} NR是其基数, x r x_r xr代表 x i x_i xi的邻居, N i N_i Ni代表落入像素 x i x_i xi周围窗口的邻居集合。参数 a a a用于控制紧邻项的效果。根据定义,每个采样点 x i x_i xi满足 ∑ c u j i = 1 \sum_cu_{ji}=1 cuji=1的约束。

隶属度矩阵与聚类中心点的计算如下:
u i j = ( ∑ k = 1 c ( ∣ ∣ x j − v i ∣ ∣ 2 + α N R ∑ r ∈ N j ∣ ∣ x r − v i ∣ ∣ 2 ∣ ∣ x j − v k ∣ ∣ 2 + α N R ∑ r ∈ N j ∣ ∣ x r − v k ∣ ∣ 2 ) 1 m − 1 ) − 1 u_{ij}=(\sum_{k=1}^{c}(\frac{||x_j-v_i||^2+\frac{\alpha}{N_{R}}\sum_{r\in N_{j}}||x_r-v_i||^2}{||x_j-v_k||^2+\frac{\alpha}{N_{R}}\sum_{r\in N_{j}}||x_r-v_k||^2})^{\frac{1}{m-1}})^{-1} uij=(k=1c(∣∣xjvk2+NRαrNj∣∣xrvk2∣∣xjvi2+NRαrNj∣∣xrvi2)m11)1

v i = ∑ j = 1 n u i j m ( x j + α N R ∑ r ∈ N j x r ) ( 1 + α ) ∑ j = 1 n u i j m v_i = \frac{\sum_{j=1}^{n}u_{ij}^{m}(x_j+\frac{\alpha}{N_R}\sum_{r\in N_{j}}x_r)}{(1+\alpha)\sum_{j=1}^{n}u_{ij}^{m}} vi=(1+α)j=1nuijmj=1nuijm(xj+NRαrNjxr)

公式(14)分子中的 ∑ r ∈ N j x r N R \frac{\sum_{r\in N_{j}}x_r}{N_R} NRrNjxr实际上是窗口内 x i x_i xi附近的紧邻像素点的平均灰度值,即由图像像素周围的所有相邻平均值组成的均值滤波图像。

5. FCM-S1,FCM-S2

FCM- S的两个变体用一减少计算时间,这两种算法分别引入了额外的均值和中值滤波图像,这些图像可以预先计算,以代替FCM-S的邻域项,因此,FCM-S1与FCM-S2的执行时间都大大减少了。

6. ENFCM

增强的FCM算法来加速图像的分割过程。首先由原始图像和每个像素的局部邻域平均灰度级形成线性加权和图像,然后,基于灰度直方图而不是求和图像的像素执行聚类。由于图像中的灰度级数通常比其像素小得多,因此减少了ENFCM算法的计算时间。

7. FGFCM

该算法结合了空间信息,局部像素邻域的强度和图像中的灰度级数。该算法从原始图像及其局部空间和灰度邻域形成非线性加权和图像,由于基于灰度直方图进行聚类,因此FGFCM的计算时间非常短,分割图像的质量得到了很好的增强。

8. ENFCM与FGFCM的问题

ENFCM与FGFCM具有相同的关键参数 a a a或者 λ \lambda λ。此参数的作用是用于控制原始图像及其对应的均值或中值滤波图像之间的折中。这个参数对于性能有很大的影响,但是这个参数是矛盾的,若是要对抗图像中存在的大量噪声,就需要将这个参数设置的比较大,另一方面,需要设置足够小的参数用于保持图像的清晰度和细节。因此, a a a的确定实际上在某种程度上取决于噪声。对于图像中的所有像素邻域, a a a的值是固定的

  • 2
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 模糊c均值聚类是一种经典的图像处理算法,该算法可以有效地对图像进行模糊分类和分割。其主要原理是根据数据点间的相似性将它们聚类到不同的类别,以获得更清晰的图像边缘和纹理。 以下是模糊c均值聚类的matlab源代码示例: ```matlab % 读取原始图像 image = imread('image.jpg'); % 图像灰度化 gray_image = rgb2gray(image); % 对图像进行模糊c均值聚类 num_clusters = 4; % 设置聚类的类别数 max_iterations = 100; % 设置聚类的最大迭代次数 fuzzy_exponent = 2; % 设置聚类算法中的模糊指数 options = [fuzzy_exponent, max_iterations, 1e-5, 0]; [cluster_image, cluster_centers] = fcm(gray_image(:), num_clusters, options); % 将聚类结果重新映射到图像 cluster_image = reshape(cluster_image, size(image, 1), size(image, 2)); % 显示聚类结果 figure; imagesc(cluster_image); colormap jet; title('聚类结果'); % 显示聚类中心 figure; for i = 1:num_clusters subplot(2, 2, i); imshow(uint8(cluster_centers(i))); title(['聚类中心 ', num2str(i)]); end % 保存聚类结果 imwrite(cluster_image, 'cluster_image.jpg'); ``` 上述代码中,首先读取原始图像并将其灰度化,然后通过设置聚类的类别数、最大迭代次数和模糊指数等参数,使用fcm函数进行模糊c均值聚类聚类结果被重新映射到图像后进行显示,并将结果保存为一张新的图像文件。 ### 回答2: 图像处理中的模糊c均值聚类算法是一种基于隶属度的聚类方法,它可以将图像中的像素点分成若干类别,并计算每个像素点属于每个类别的隶属度。这种方法主要用于图像分割、图像压缩和图像挖掘等方面。 算法的步骤如下: 1. 初始化聚类中心:随机选择k个像素点作为初次的聚类中心。 2. 计算隶属度矩阵:计算每个像素点属于每个类别的隶属度值,通过迭代计算更新隶属度矩阵。 3. 计算聚类中心:根据隶属度矩阵,重新计算每个类别的聚类中心。 4. 判断迭代结束条件:检查聚类中心是否发生变化,如果发生变化,则进行下一轮迭代;若未发生变化,则停止迭代。 5. 根据隶属度矩阵重新分割图像:根据隶属度矩阵,将图像中的像素点重新分为k个类别。 接下来是MATLAB中的模糊c均值聚类算法源代码的一个示例: ```matlab function [U, centers] = fuzzyCMeansClustering(image, k, m, max_iter) % 参数说明: % image:输入图像 % k:聚类的类别数量 % m:隶属度的模糊度(通常为2) % max_iter:最大迭代次数 % 将图像转化为矩阵 image = double(image); [row, col] = size(image); data = reshape(image, row * col, 1); % 随机初始化聚类中心 centers = rand(k, 1) * 256; % 初始化隶属度矩阵 U = rand(row * col, k); for iter = 1:max_iter % 更新隶属度矩阵 for i = 1:row * col for j = 1:k dist = abs(data(i) - centers(j)); U(i, j) = 1 / sum((dist ./ dist) .^ (2 / (m - 1))); end end % 更新聚类中心 for j = 1:k centers(j) = sum((U(:, j) .^ m) .* data) / sum(U(:, j) .^ m); end % 判断迭代结束条件 if iter > 1 && norm(U - U_prev) < 1e-5 break; end U_prev = U; end % 根据隶属度矩阵重新分割图像 [~, labels] = max(U, [], 2); segmented_image = reshape(labels, row, col); % 返回隶属度矩阵和聚类中心 U = reshape(U, row, col, k); end ``` 以上就是模糊c均值聚类算法以及MATLAB源代码的简要介绍。这段代码实现了模糊c均值聚类算法,并可以将图像进行分割。 注意:为了使源代码更易读,可能省略了部分细节和参数校验的代码,请使用时根据需要进行相应的修改和完善。 ### 回答3: 模糊c均值聚类FCM)是一种经典的图像处理算法,用于将图像中的像素点划分到不同的聚类中。它通过迭代计算每个像素点属于每个聚类的隶属度来实现图像的聚类FCM算法的主要步骤如下: 1. 初始化聚类中心:随机选择或者根据先验知识设置聚类中心的数量和位置。 2. 计算隶属度:对于每个像素点,计算其到每个聚类中心的隶属度。这里使用的是欧几里得距离作为距离度量。 3. 更新聚类中心:根据隶属度更新聚类中心的位置。 4. 重复步骤2和3,直到达到迭代停止的条件,如聚类中心不再改变或达到最大迭代次数。 根据以上算法描述,可以通过MATLAB实现FCM算法的源代码。以下为一个简单的MATLAB源代码示例: ```matlab function [membership, centers] = fuzzyCMeans(image, num_clusters, fuzziness, max_iteration) % image: 输入图像 % num_clusters: 聚类中心数量 % fuzziness: 模糊系数 % max_iteration: 最大迭代次数 % 初始化聚类中心 img_size = size(image); num_pixels = img_size(1) * img_size(2); centers = rand(num_clusters, 1) * 255; % 迭代更新 for iter = 1:max_iteration membership = zeros(num_clusters, num_pixels); for i = 1:num_clusters for j = 1:num_pixels dist = sqrt((image(j) - centers(i))^2); membership(i, j) = 1 / sum((dist / (dist)).^(2/(fuzziness-1))); end end membership = membership ./ sum(membership); % 更新聚类中心 for i = 1:num_clusters centers(i) = sum((membership(i,:).^fuzziness) .* image) / sum(membership(i,:).^fuzziness); end % 判断是否达到停止条件 if max(abs(centers - prev_centers)) < 1e-5 break; end prev_centers = centers; end end ``` 以上代码是一个基本的FCM算法实现,可以根据输入的图像、聚类中心数量、模糊系数和最大迭代次数执行模糊c均值聚类,并返回隶属度和最终的聚类中心。 需要注意的是,这只是一个简单的示例代码,并没有考虑到一些优化和改进的细节。在实际应用中,可能需要进一步对代码进行调整和改进,以适应具体问题的要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CavalierJHC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值