zoukankan      html  css  js  c++  java
  • [数学建模(四)]MATLAB神经网络工具箱的简单应用

    问题:蠓虫分类问题

    1 问题描述

    蠓虫分类问题可概括叙述如下:生物学家试图对两种蠓虫(Af 与Apf)进行鉴别,依据的资料是触角和翅膀的长度,已经测得了9 只Af 和6 只Apf 的数据如下:

     Af: (1.24,1.27),(1.36,1.74),(1.38,1.64),(1.38,1.82),(1.38,1.90),(1.40,1.70),(1.48,1.82),(1.54,1.82),(1.56,2.08).

    Apf: (1.14,1.82),(1.18,1.96),(1.20,1.86),(1.26,2.00),(1.28,2.00),(1.30,1.96).
    现在的问题是:
    (i)根据如上资料,如何制定一种方法,正确地区分两类蠓虫。
    (ii)对触角和翼长分别为(1.24,1.80),(1.28,1.84)与(1.40,2.04)的3 个标本,用所得
    到的方法加以识别。

    已知的蠓虫数据分布如图(圆圈为Apf类,六角为Af,米字型为未知型)

    2.MATLAB 实现

    clear
    p1=[1.24,1.27;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90;1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08];  %Af
    p2=[1.14,1.82;1.18,1.96;1.20,1.86;1.26,2.00;1.28,2.00;1.30,1.96];                                %Apf
    p=[p1;p2]';
    pr=minmax(p);
    goal=[ones(1,9),zeros(1,6);zeros(1,9),ones(1,6)]; %p1类为1;p2类为0
    x=[1.24 1.80;1.28 1.84;1.40 2.04];

    for i=1:9
    plot(p1(i,1),p1(i,2),'h')
    hold on
    end

    for i=1:6
    plot(p2(i,1),p2(i,2),'o');
    end

    for i=1:3
    plot(x(i,1),x(i,2),'*')
    text (x(i,1),x(i,2),'?');
    end

    %Rx2的矩阵以定义R个输入向量的最小值和最大值;设定每层神经元个数的数组
    net=newff(pr,[3,2],{'logsig','logsig'});
    net.trainParam.show = 10; % 训练显示间隔
    net.trainParam.lr = 0.05; %学习步长
    net.trainParam.goal = 1e-10; %最小均方误差
    net.trainParam.epochs = 50000; %最大训练次数
    net = train(net,p,goal); %训练神经网络
    y0=sim(net,p); %对已知的数据进行验证
    x=x';
    y=sim(net,x); %对未知的数据进行分类

     3 结果

    目标标签设置

    goal =

    1 1 1 1 1 1 1 1 1 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 1 1 1 1 1 1

    已知数据训练后:

    y0 =

    1 至 10 列                                                                                                         11 至 15 列

    0.9999 0.9999 0.9999 0.9998 0.9995 0.9999 0.9999 0.9999 0.9999 0.0001 0.0001 0.0001 0.0001 0.0002 0.0006
    0.0001 0.0001 0.0001 0.0002 0.0005 0.0001 0.0001 0.0001 0.0001 0.9999 0.9999 0.9999 0.9999 0.9998 0.9994

    未知数据分类: 

    y =

    0.0004 0.0036 0.9899
    0.9996 0.9964 0.0101

    从结果可知:(1.24,1.80),(1.28,1.84)属于Apf,(1.40,2.04)属于Af

    4 工具箱界面简介

    更具体的介绍详见:http://blog.csdn.net/q1302182594/article/details/8790613

    神经网络训练参数说明:http://blog.sina.com.cn/s/blog_5c9288aa0101gsu2.html

    5 拓展

    可以通过蒙卡特罗法产生大量数据点,通过神经网络进行分类。

    因为有一些数据点分布在神经网络的分界面附近,因此可以大约知道分界面的位置。

    N=1000;
    k1 = 1.1 + (1.6-1.1).*rand(1,N);
    k2 = 1.2 + (2.1-1.2).*rand(1,N);
    z=[k1;k2];
    z1=sim(net,z);
    for i=1:1000
        if z1(1,i)<0.5
             plot(z(1,i),z(2,i),'o');
                hold on
        end
        
        if z1(1,i)>0.5
             plot(z(1,i),z(2,i),'h');
        end
    end

    6.非监督学习

    clear
    p1=[1.24,1.27;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90; 1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08];
    p2=[1.14,1.82;1.18,1.96;1.20,1.86;1.26,2.00; 1.28,2.00;1.30,1.96];
    p=[p1;p2]'
    pr=minmax(p)
    goal=[ones(1,9),zeros(1,6);zeros(1,9),ones(1,6)]
    net = newlvq(pr,4,[0.6,0.4])
    net = train(net,p,goal)
    Y = sim(net,p)
    x=[1.24 1.80;1.28 1.84;1.40 2.04]'
    sim(net,x)
  • 相关阅读:
    CH4302 Interval GCD
    20201017 模拟赛总结
    LOJ#2610. 「NOIP2013」货车运输
    POJ3696 The Luckiest number
    20200925 小练习总结
    更新一波状态
    AFO
    【扩展lucas定理】
    【LCT维护子树信息】uoj207 共价大爷游长沙
    [bzoj4589]Hard Nim(FWT快速沃尔什变化+快速幂)
  • 原文地址:https://www.cnblogs.com/youngsea/p/7471732.html
Copyright © 2011-2022 走看看