MATLAB实现智能计算方法实验:实验一 模糊聚类分析

资源链接

MATLAB实现智能计算方法课程所有实验代码资源链接为:MATLAB实现智能计算方法课程所有实验代码资源

实验汇总

MATLAB实现智能计算方法课程所有实验汇总博客链接为:MATLAB实现智能计算方法实验汇总

实验目的

  1. 掌握数据文件的标准化、模糊相似矩阵的建立方法、学会传递闭包矩阵的求解方法;
  2. 学会使用MATLAB软件(Python)进行模糊矩阵的编程运算和仿真,实现模糊聚类分析。

实验内容

  1. 根据下面表格中的数据,用Matlab(或Python)编程进行数据标准化处理;

  2. 根据标准化处理后的数据,用Matlab(或Python)编程,建立模糊相似矩阵,并编程求出其传递闭包矩阵;

  3. 根据模糊等价矩阵,编程绘制动态聚类图;

  4. 根据原始数据,编程确定最佳分类结果。

    noY1Y2Y3Y4Y5Y6
    x1216319401.567106
    x2237430752.69354
    x3119179861186.8979
    x411516849892.63729
    x57914646922.35624
    x679158481032.1427
    x76511458992.6797
    x86811958963.0996
    x910916659952.8686
    x1011817756892.647

实验步骤

1. 标准化处理

  • 建立原始数据矩阵

    依据题意,建立10×6的原始矩阵A,在matlab中表示如下图:

    图1.1 原始数据矩阵

    图1.1 原始数据矩阵
  • 数据规格化

    对原始矩阵应用极差正规化方法进行数据规格化,运用matlab编写fuzz函数,代码如下:

    function n = fuzz(A)
    [hei, wid] = size(A);
     n = zeros(hei, wid);
     for i = 1: hei
            for j = 1: wid
                n(i, j) = (A(i, j) - min(A(:, j)))/(max(A(:, j)) - min(A(:,j)));
            end
     end
     end
    

    在命令行输入n = fuzz(A)调用该函数,得到数据矩阵n如下图。

    图1.2 数据规格化

    图1.2 数据规格化

2. 建立模糊等价矩阵

  • 建立模糊相似矩阵

    对数据矩阵应用最大最小法得到模糊相似矩阵,编写fuzzs函数,代码如下:

    function m = fuzzs(n)
    [hei, wid] = size(n);
     m = zeros(hei, hei);
     for i = 1: hei
            for j = 1: hei
                maxnum = 0;
                minnum = 0;
                for k = 1: wid
                    maxnum = maxnum + max(n(i, k), n(j, k));
                    minnum = minnum + min(n(i, k), n(j, k));
                end
                m(i, j) = minnum/maxnum;
            end
     end
     end
    

    在命令行输入m = fuzzs(n)调用该函数,得到模糊相似矩阵m如下图。

    图2.1 模糊相似矩阵

    图2.1 模糊相似矩阵
  • 建立模糊等价矩阵

    应用传递闭包方法将模糊相似矩阵转化为模糊等价矩阵,编写synt函数,代码如下:

    function ab = synt(a)
    [hei, wid] = size(a);
    ab = zeros(hei, wid);
    flag = 0;
    while(flag == 0) 
        m = size(a, 1);
        n = size(a, 2);
        for i = 1: m
            for j = 1 :n 
                ab(i, j) = max(min([a(i, :);a(:, j)']));
            end
        end
        if(ab == a)
            flag = 1;
        else
            a = ab;
        end
    end
    end
    

    输入m0 = synt(m)调用该函数,得到模糊等价矩阵m0如下图。

    图2.2 模糊等价矩阵

    图2.2 模糊等价矩阵

3. 动态聚类

  • 𝛌-截矩阵

    根据模糊等价矩阵,建立𝛌-截矩阵,按𝛌由大到小进行聚类,编写jjz4函数,代码如下:

    function[D, k] = jjz4(b)
    L = unique(b)';
    a = size(b);
    D = zeros(a);
    for m = length(L): -1 : 1
        k = L(m);
        for i = 1: a 
            for j = 1: a 
                if b(i, j) >= k 
                    D(i, j) = 1;
                else
                    D(i, j) = 0;
                end
            end
        end
        B = unique(D, 'rows');
            [hei] = size(B);
        for j = 1: hei
            eval(['L', num2str(j) '= [];'])
        end
        for i = a: -1: 1
            for j = 1: hei
                if D(i, :) == B(j, :)           
                    p = eval(['L', num2str(j);]);
                    p = [['x', num2str(i), ' '] p];
                    eval(['L', num2str(j) '= p;']);
                end
            end
        end
        fprintf("当分类系数k=%5.4f时,", L(m));
        fprintf("所得截距阵为:\n\n");
        disp(D);
        fprintf("分类结果为:\n");
        for j = 1: hei
            fprintf("第%d类:", j);
            disp(eval(['L', num2str(j);]));
        end
        fprintf("\n");
    end
    end
    

    输入jjz4(m0)调用该函数,为了便于看到所有的结果,先将显示截距阵的一行代码注释掉,运行得到所有分类结果如下图。

    图3.1 所有分类结果

    图3.1 所有分类结果

    选取𝛌 = 0.8791时函数得到的截距阵及分类结果图如下。
    图3.2 𝛌=0.8791时截距阵

    图3.2 𝛌=0.8791时截距阵
  • 动态聚类图

    根据分类结果绘制动态聚类图如下。
    图3.3 动态聚类图

    图3.3 动态聚类图

4. 确立最佳分类结果

  • 𝛌=0.8374
    𝛌=0.8374时具有最佳分类结果,调用jjz4函数得到最佳分类的截距阵及分类结果如下图。

    图4.1 最佳分类的截距阵及分类结果

    图4.1 最佳分类的截距阵及分类结果

    由图可知一共分为了6类,其中x7,x8一类,x5,x6一类,x4,x9,x10一类,x1,x2,x3单独成一类。

  • 33
    点赞
  • 233
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 45
    评论
### 回答1: 实验七是关于“基于主成分分析的图像压缩”的智能计算方法实验。该实验目的是利用主成分分析方法对图像进行压缩,实现高效率的图像储存与传输。 首先,在MATLAB环境下,导入图像文件,并将其转化为灰度图像。然后,利用主成分分析方法将图像压缩至指定的压缩比,再将压缩后的图像进行解压缩,最后与原图进行比较,分析压缩质量。 主成分分析(Principal Component Analysis,PCA)是一种常用的线性降维分析方法,将高维数据降维至低维空间,从而提高数据的处理效率。在图像处理中,PCA可以将图像转化为主成分矢量的线性组合,即将原图像分解为多个小波分量,然后根据重要程度进行压缩。由于小波分量中最大的几个分量占图像信息的大部分,因此只需将这几个分量保存,便可实现图像压缩。 在实验中,主要使用MATLAB中自带的函数实现PCA算法,如pca和coder.pca,同时还可以使用MATLAB中的imwrite和imread函数实现图像压缩与解压缩。此外,还可以使用MATLAB中的imresize函数对图像进行调整,以实现更高的压缩比。 总之,MATLAB提供了丰富的函数和工具箱,可以方便地实现基于主成分分析的图像压缩。通过该实验,不仅可以掌握PCA算法的使用方法,还可以了解图像处理中的压缩方法,具有较高的实用价值。 ### 回答2: 实验七是“分类问题的智能计算方法及应用”的实验,主要目的是掌握分类问题的智能计算方法,并实现基于智能计算的分类应用。 在实验中,主要采用了支持向量机(SVM)和人工神经网络(ANN)两种方法来对分类问题进行处理。SVM是一种非线性分类器,具有较强的泛化能力;ANN则可以通过学习来调整网络中各层之间的连接权值,从而得到分类结果。 具体实现过程如下: 1. 首先,需要准备分类问题的数据集,并将其划分为训练集和测试集。训练集用于训练模型,测试集用于测试模型的准确率和泛化能力。 2. 对于SVM方法,需要选择合适的核函数和参数。一般而言,径向基函数(RBF)是一种较为常用的核函数,可以通过交叉验证等方法来确定最优参数。 3. 对于ANN方法,需要选择合适的网络结构和参数。一般而言,三层前馈网络是一种较为常用的网络结构,可以通过反向传播算法来训练网络,从而得到最优参数。 4. 训练好模型后,可以使用测试集来测试模型的准确率和泛化能力。同时,也可以使用模型对新的数据进行分类。 5. 最后,还可以使用其他方法来对分类问题进行处理,比如遗传算法、模糊逻辑等。不同的方法对不同的问题有不同的适用性,需要根据具体情况进行选择。 总的来说,实验七通过对分类问题的处理,进一步掌握智能计算方法的应用,提高了对算法的理解和运用能力。同时,也加强了对数据分析和机器学习的认知,对工程实践具有一定的指导意义。 ### 回答3: 实验七是关于模糊逻辑的实验,利用MATLAB实现模糊逻辑是一种基于模糊集合的逻辑,可以用来处理信息不确定、模糊的问题。在实际生活中,常常会遇到许多难以明确的问题,例如:天气预报、医学诊断、评估风险等等,这些问题都需要模糊逻辑方法来解决。 模糊逻辑的运算方式与传统的逻辑运算不同,传统的逻辑运算是真或假,而模糊逻辑运算则是存在一定程度上真或假的可能性。因此,在模糊逻辑中需要用到模糊集合、隶属度函数、模糊关系等概念。 MATLAB提供了许多工具箱,其中包括了模糊逻辑工具箱,可以方便的实现模糊逻辑的运算。下面以一个简单的汽车速度控制系统为例来介绍MATLAB实现模糊逻辑的方法。 假设一个汽车速度控制系统,其控制过程是根据车速与期望速度之间的偏差大小来控制加速度或制动。将速度偏差分为五个模糊集合:NB(Negative Big)、NM(Negative Medium)、ZE(Zero)、PM(Positive Medium)、PB(Positive Big),分别代表速度偏差令人担忧、偏低、正常、偏高、过高。假设加速度或制动也分为五个模糊集合:NB、NM、ZE、PM、PB,分别代表急刹车、轻微减速、稳定、轻微加速、急加速。 使用MATLAB中的模糊逻辑工具箱,可以通过设定隶属度函数来定义这些模糊集合。定义好这些模糊集合之后,就可以利用模糊规则和模糊推理的方法,来完成汽车速度控制系统的设计。模糊规则可以使用类似于if-then的形式表示,例如:如果速度偏差为NB,则加速度应为NB。在MATLAB中,可以将这些规则通过Fuzzy Inference System(FIS)表示出来。 最后,我们可以通过MATLAB编写代码,利用以上定义的模糊规则和FIS,对汽车速度控制系统进行建模和仿真。 综上所述,MATLAB实现模糊逻辑的步骤包括:定义模糊集合、设定隶属度函数、制定模糊规则、进行模糊推理和建模、进行仿真分析等。通过这些步骤,可以方便地处理信息不确定或模糊的问题,提高智能计算的效率和准确性。
评论 45
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

lazyn

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

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

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

打赏作者

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

抵扣说明:

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

余额充值