模糊聚类方法

模糊聚类方法模糊方法

模糊集的基本概念

模糊集与模糊逻辑

模糊集定义

  • img

    隶属度属于模糊评价函数里的概念:模糊综合评价是对受多种因素影响的事物做出全面评价的一种十分有效的多因素决策方法,其特点是评价结果不是绝对地肯定或否定,而是以一个模糊集合来表示。

    X是论域;A是 μ A μ_A μA确定的子集(模糊集); μ A μ_A μA代表x属于A的程度,是隶属函数

隶属度函数

元素x在论域U中,有A(x)∈(0,1),则称A为U上的模糊集,A(x)为称为x对A的隶属度。当x变化时,A(x)就是一个函数,称为A的隶属函数。A(x)越接近1,表示x属于A的程度越高。这条不易理解

img

模糊集表示方法

img

img

模糊集是在论域上新定义的一种模糊类型的集合

模糊集运算

模糊聚类方法

对于模糊集合之间的运算规律而言,除了互补律不成立之外,其他运算规律都是与二值函数的运算规律一样成立的。

模糊集的特性

img

img

模糊与概率的区别

img

模糊关系(模糊矩阵)

img

模糊关系的合成,就类似于矩阵的乘法,但是运算符不是取乘号与加号而是取交和并。

模糊关系合成运算

img

模糊关系合成运算的MATLAB程序

function [R]=fuzzymm(A,B) %模糊矩阵合成运算的Matlab实现 R = AxB; %运算规则,先"取小后取大" %输入必须为二阶矩阵A为m行n列, B为n行p列; [m,n]=size(A);[q,p]=size(B);%获得输入矩阵的维度信息 if n~=q disp('第一个矩阵的列数和第二个矩阵的行数不相同!'); else R=zeros(m,p);%初始化矩阵 for k =1:m for j=1:p temp=[]; for i =1:n Min = min(A(k,i),B(i,j)); %求出第i对的最小值 temp=[temp Min]; %将求出的最小值加入的数组中 end R(k,j)=max(temp); end end end end 

img

模糊变换

img

img

模糊逻辑

模糊聚类方法

语言变量是模糊逻辑的重要概念

模糊聚类方法

模糊聚类方法含有多个前提条件的称为多维模糊规则,可以表示为:如果u1是A1,且u2是A2,…,且umAm,则vB。

模糊推理

模糊聚类方法

img

模糊聚类方法

数据挖掘中的模糊方法

计算流程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eLJfzQ2L-23)(https://s2.loli.net/2022/07/15/V1yZNEi4Yuew7Jg.png)]

模糊C均值聚类

img

目标函数中c表示c类,n表示样本的数量,m为加权指数,一般取1.5-3.5 。u表示隶属函数,d用于计算样本点与中心点之间的欧几里德距离,通过这个公式,我们就可以计算每个样本点属于哪一类。对于目标函数的求解,我们可以使用拉格朗日乘子法进行求解,对所有输入参量求导,使式达到最小的必要条件为:u…c…

模糊C均值聚类算法是一个简单的迭代过程。在批处理方式运行时,FCM用下列步骤确定聚类中心ci和隶属矩阵U[1]:…用值在0,1间的随机数初始化隶属矩阵U,计算c个聚类中心,计算价值函数。如果它小于某个确定的阀值,或它相对上次价值函数值的改变量小于某个阀值,则算法停止。

实验中我们使用的是iris数据集,这个数据集…通过算法我们的出了聚类的结果,0,1,2就表示聚类的类别,我们可以看到,0类都标记正确,1类有13个错误标记,2类有3个标记错误。因此我们得到最终的聚类准确率为89.33%,右图是横纵坐标分别为特征2和特征3时对应的聚类结果。

模糊聚类方法

模糊C-均值聚类算法 步骤

https://blog.csdn.net/weixin_/article/details/

这个缺少最关键的更新迭代那一步。更新矩阵U那一步。

https://blog.csdn.net/vendetta_gg/article/details/这个就是隶属度矩阵的推导过程。

  1. 导入数据并转换为矩阵;样本综述为n个;
    X = [ x 1 x 2 ⋮ x n ] = [ x 11 x 12 … x 1 p x 21 x 22 … x 2 p ⋮ ⋮ … ⋮ x n 1 x n 2 ⋯ x n p ] X=\left[\begin{array}{c} x_{1} \\ x_{2} \\ \vdots \\ x_{n} \end{array}\right]=\left[\begin{array}{cccc} x_{11} & x_{12} & \ldots & x_{1 p} \\ x_{21} & x_{22} & \ldots & x_{2 p} \\ \vdots & \vdots & \ldots & \vdots \\ x_{n 1} & x_{n 2} & \cdots & x_{n p} \end{array}\right] X=
    x1x2xn
    =

    x11x21xn1x12x22xn2x1px2pxnp

    X是由n个样品的P个变量观测值构成的矩阵。




  2. 设定聚类个数c和加权指数m,最大迭代数和收敛精度;

    聚类个数 2 ≤ c ≤ n 2≤c≤n 2cn

  3. 用随机数初始化隶属度矩阵 μ i j μ_{ij} μij
  4. 计算聚类中心;

    V = ( v 1 , v 2 , . . . v c ) V=(v_1,v_2,…v_c) V=(v1,v2,vc)为c个类的聚类中心,其中 v i = ( v i 1 , v i 2 , . . . v i p , ) v_i=(v_{i1},v_{i2},…v_{ip},) vi=(vi1,vi2,vip,)
    v i = ∑ j = 1 n x j μ i j m ∑ j = 1 n μ i j m ( i = 1 , 2 , . . . , c ) {v_i} = \frac{
    {\sum\nolimits_{j = 1}^n {
    {x_j}{\mu _{ij}}^m} }}{
    {\sum\nolimits_{j = 1}^n {
    {\mu _{ij}}^m} }} (i=1,2,…,c)
    vi=j=1nμijmj=1nxjμijm(i=1,2,,c)

    更新隶属度矩阵;
    u i j = [ ∑ k = 1 c ( d i j d k j ) 2 m − 1 ] − 1 ( i = 1 , 2 , . . . c ; j = 1 , 2 , . . . n ) u_{i j}=\left[\sum_{k=1}^{c}\left(\frac{d_{i j}}{d_{k j}}\right)^{\frac{2}{m-1}}\right]^{-1} (i=1,2,…c; j=1,2,…n) uij=[k=1c(dkjdij)m12]1(i=1,2,c;j=1,2,n)






  5. 迭代算法,直至收敛;
  6. 根据迭代结果,由最后的隶属度矩阵确定所属的类,显示聚类结果。

FCM算法用隶属度确定每个样本属于某个聚类的程度。它与K-means算法和中心点算法等相比,计算量可大大减少,因为它省去了多重迭代的反复计算过程,效率将大大提高。同时,模糊聚类分析可根据数据库中的相关数据计算形成模糊相似矩阵,形成相似矩阵之后,直接对相似矩阵进行处理即可,无需多次反复扫描数据库。

根据实验要求动态设定m值,以满足不同类型数据挖掘任务的需要,适于高纬度数据的处理,具有较好的伸缩性,便于找出异常点。但m值是根据经验或者实验得来的,故具有不确定性,可能影响实验结果;并且,优于梯度法的搜索方向总是沿着能量减小的方向,使得算法存在易陷入局部极小值和对初始化敏感的缺点。为了克服上述缺点,可在FCM算法中引入寻优法,以摆脱FCM聚类运算时可能陷入的局部极小点,优化聚类效果。

鸢尾花(iris)数据集分析

%% % 模糊C均值聚类的方法实现 % # 导入数据集 clc clear irisInput = readtable('\\tsclient\d\0-work\学习\模糊方法\Iris数据集\iris.txt'); % 导入.txt文件 iris= irisInput(:,2:6); %取数据中的一部分 % 处理数据集 ; x = table2array( iris(1:150,1) ); %将表格转换成阵列 classf = table2cell( iris(1:150,5) ); %将表格转换成字符串数组 %对种类进行编码 y = zeros(150, 1); y(strcmp(classf, 'setosa')) = 1; y(strcmp(classf, 'versicolor')) = 2; y(strcmp(classf, 'virginica')) = 3; % %% % 2. 设定聚类个数和加权指数,最大迭代数和收敛精度 n = size(x,1); %样本个数 p = size(x,2); %一个样本中的变量数 c = 3; %类个数 m = 1.5; %加权指数m的取值范围是(1.5,3.5) maxtimes = 150; precision = 0.0001; %% % 3.初始化隶属矩阵,取[0,1]的随机数,隶属度矩阵的维度是cXn %% U = rand(c,n); %初始化随机矩阵,范围[0,1] v = zeros(c,p); %c行p列的矩阵,对每一类每一个变量的中心 J = zeros(200,1); J(1) = 0; errorJ = 1; times = 1; %% % 4. 计算聚类中心 while (errorJ>precision && times 
  
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213701.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午5:50
下一篇 2026年3月18日 下午5:50


相关推荐

  • python字符串格式化深入详解(四种方法)

    python字符串格式化深入详解(四种方法)前言 本文详细整理了 python 字符串格式化的几种方式 一 使用 符号来进行格式化格式符为真实值预留位置 并控制显示的格式 格式符可以包含有一个类型码 用以控制显示的类型 如下 s 字符串 采用 str 的显示 r 字符串 采用 repr 的显示 c 单个字符 b 二进制整数 d 十进制整数 i 十进制整数 o

    2026年3月19日
    2
  • 字符串和时间转换sql「建议收藏」

    字符串和时间转换sql「建议收藏」oracle:当前时间:sysdate–dual(Oracle中的一张内部表,只有一行一列,一般用作特定查询)时间转字符串:to_char(date,format)selectto_char(sysdate,‘yyyy”年”mm”月”dd”日”’)时间转字符串fromdual;2019年04月18日字符串转时间:to_date(str,format)…

    2022年5月5日
    74
  • Activiti6详细教程

    Activiti6详细教程一、为什么选择Activitiactiviti介绍Activiti是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理,工作流,服务协作等领域的一个开源,灵活的,易扩展的可执行流程语言框架。工作流引擎对比二、核心7大接口、28张表7大接口(一)7大接口RepositoryService:提供一系列管理流程部署和流程…

    2022年7月21日
    40
  • 数据库三大范式是什么?(3NF详解)

    数据库三大范式是什么?(3NF详解)什么是范式 范式是数据库设计时遵循的一种规范 不同的规范要求遵循不同的范式 最常用的三大范式第一范式 1NF 属性不可分割 即每个属性都是不可分割的原子项 实体的属性即表中的列 第二范式 2NF 满足第一范式 且不存在部分依赖 即非主属性必须完全依赖于主属性 主属性即主键 完全依赖是针对于联合主键的情况 非主键列不能只依赖于主键的一部分 第三范式 3NF 满足第二范式 且不存在传递依赖 即非主属性不能与非主属性之间有依赖关系 非主属性必须直接依赖于主属性 不能间接依赖主属性 A amp g

    2026年3月19日
    2
  • pycharm jinja2_Python django

    pycharm jinja2_Python djangojinja2语法基本语法在jinja2中,存在三种语法:控制结构{%%}变量取值{{}}注释{##}下面是一个简单的jinja2例子{#Thisisjinjacode{%forfileinfilenames%}…{%endfor%}#}可以看到,for循环的使用方式和Python比较类似,但是没有了句尾的冒号,另外需要使用endfor最为结尾,其实在jinja2…

    2025年8月13日
    4
  • vim 使用指南

    vim 使用指南

    2021年4月23日
    220

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号