精华内容
下载资源
问答
  • % 线性神经网络 % 感知器的传输函数只能输出两种可能的值,而线性神经网络的输出可以是任意值 % 线性神经网络采用widow-hoff学习规则,即lms(least mean square)来更新权值和偏置%% 1.newlind--设计一个线性层 %{ 语法...
    % 线性神经网络
    % 感知器的传输函数只能输出两种可能的值,而线性神经网络的输出可以是任意值
    % 线性神经网络采用widow-hoff学习规则,即lms(least mean square)来更新权值和偏置
    
    %% 1.newlind--设计一个线性层
    %{
    语法格式:   net=newlind(P,T,Pi)
    P:          R×Q矩阵,包含Q个训练输入向量
    T:          S×Q矩阵,包含Q个期望输出向量
    Pi:         1×ID细胞数组,包括初始输入延迟
    函数返回设计好的线性神经网络net.设计的方法是求一个线性方程组在最小均方误差下的最优解:
    [w,b]×[P,1]=T
    newlind函数一经调用就不需要别的函数重新训练了
    %}
    %举个栗子:用newlind创建一个线性层并进行仿真
    x=-5:5;
    y=3*x-7;
    randn('state',2);   % 随机数种子,便于重复生成同样的随机数
    y=y+randn(1,length(y))*1.5; % 加入噪声的直线
    plot(x,y,'o');
    
    P=x;T=y;
    net=newlind(P,T);
    new_x=-5:0.2:5;
    new_y=sim(net,new_x);
    hold on;plot(new_x,new_y);
    legend('原始数据点','最小二乘拟合函数');
    net.iw
    net.b
    title('newlind用于最小二乘拟合直线');
    
    %% 2.newlin--构造一个线性层
    %{
    语法格式1:   net=newlin(P,S,ID,LR)
    语法格式2:   net=newlin(P,T,ID,LR)
    
    P:  输入变量的范围
    S:  输出节点个数
    ID: 输入延迟
    LR: 学习率,默认为0.01
    T:  S×Q2矩阵,包含Q2个输出向量的典型值,输出节点个数为S
    %}
    %举个栗子:用newlin实现上面newlind的直线拟合
    x=-5:5;
    y=3*x-7;
    randn('state',2);
    y=y+randn(1,length(y))*1.5;
    plot(x,y,'o');
    P=x;T=y;
    net=newlin(minmax(P),1,0,maxlinlr(P));  %newlin创建线性网络,maxlinlr求最大学习率
    tic;net=train(net,P,T);toc
    new_x=-5:0.2:5;
    new_y=sim(net,new_x);
    hold on;plot(new_x,new_y);
    legend('原始数据点','最小二乘拟合直线');
    title('newlin用于最小二乘线性拟合')
    net.iw
    net.b
    
    %% 3.purelin--线性传输函数
    
    %{
    语法格式1:   A=purelin(N,FP)
    N:          S×Q矩阵,其中的向量按列存放,Q个S维的输入向量
    FP:         函数参数的结构体
    
    语法格式2:  dA_dN=purelin('dn',N,A,FP)?????
    %}
    
    %% 4.learnwh--LMS学习函数
    
    %{
    语法格式:   [dW,LS]=learnwh(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)
    
    输入:
    W:          权值矩阵S×R
    P:          输入向量R×Q
    Z:          权值输入向量S×Q
    N:          网络输入向量S×Q
    A:          输出向量S×Q
    T:          期望输出向量S×Q
    E:          层误差向量S×Q
    gW:         权重梯度S×R
    gA:         输出梯度S×Q
    D:          神经元距离S×S
    LP:         学习参数,LP.lr为学习率,默认为0.01
    LS:         学习状态,初始时为空矩阵[]
    
    输出:
    dW:         权值变化矩阵
    LS:         新的学习状态
    
    语法格式:   info=learnwh('code')
    根据code值得不同返回一些有用的信息:
    'pnames':       学习参数的名称
    'pdefaults':    学习参数的默认值
    'needg':        如果函数使用了gW或gA,返回1
    
    %}
    %举个栗子:用learnwh实现一个线性神经网络
    P=-5:5;
    d=3*P-7;
    
    randn('state',2);
    d=d+randn(1,length(d))*1.5  %期望输出
    
    P=[ones(1,length(P));P] %P加上偏置
    lp.lr=0.01  %学习率
    MAX=150;    %最大迭代次数
    ep1=0.1;    %均方差终止阈值
    ep2=0.0001; %权值变化阈值
    
    %初始化
    w=[0,0];
    %循环更新
    for i=1:MAX
       fprintf('第%d次迭代:\n',i)
       e=d-purelin(w*P);    % 求得误差向量
       ms(i)=mse(e)        % 均方差
       if (ms(i)<ep1)   %如果均方差达到阈值则收敛,跳出循环
           fprintf('均方差小于指定数而终止\n');
           break;
       end
       dW=learnwh([],P,[],[],[],[],e,[],[],[],lp,[]);   %权值调整
       if (norm(dW)<ep2)
          fprintf('权值变化小于指定数而终止\n');
          break;
       end
       w=w+dW;
    end
    
    %显示
    fprintf('算法收敛于:\nw=(%f,%f),MSE:%f\n',w(1),w(2),ms(i));
    figure;
    subplot(2,1,1); %绘制散点和直线
    plot(P(2,:),d,'o');title('散点与直线拟合结果');
    xlabel('x');ylabel('y');
    axis([-6,6,min(d)-1,max(d)+1]);
    x1=-5:0.2:5;
    y1=w(1)+w(2)*x1;
    hold on;plot(x1,y1);
    subplot(2,1,2);
    semilogy(1:i,ms,'-o');
    xlabel('迭代次数');ylabel('MSE');title('均方差下降曲线');
    
    %% 5.maxlinlr--最大学习率
    
    %{
    语法格式1:  lr=maxlinlr(P)  % lr=0.9999/max(eig(p*p')),eig计算矩阵的特征值
    语法格式2:  lr=maxlinlr(P,'bias')   %把偏置作为1加入P,将偏置和权值统一计算
    %}
    X=[1 2 -4 7;0.1 3 10 6];
    lr=maxlinlr(X,'bias')
    lr2=maxlinlr(X)
    lr3=0.9999/max(eig(X*X'))
    
    %% 6.mse--均方误差性能函数
    %{
    语法格式:   perf=mse(E)=1/N∑(xi)^2,i=1,2,3,...N,N为E所有元素的个数
    对E中所有的元素求均方误差(=均方平均值)
    %}
    
    %% 7.linearlayer--构造线性层的函数
    
    %{
    语法格式:       net=linearlayer(inptDelays,widrowHoffLR)
    inputDelays:    输入延迟的行向量
    widrowHffLR:    学习率
    %}
    %用linearlayer解决线性拟合问题
    clear;clc;
    x=-5:5;
    y=3*x-7;
    randn('state',2);
    y=y+randn(1,length(y))*1.5;
    plot(x,y,'o');
    P=x;T=y;
    lr=maxlinlr(P,'bias');
    net=linearlayer(0,lr);
    tic;net=train(net,P,T);toc
    new_x=-5:0.2:5;
    new_y=sim(net,new_x);
    hold on;plot(new_x,new_y);
    title('linearlayer用于最小二乘拟合直线');
    legend('原始数据点','最小二乘拟合直线');
    xlabel('x');ylabel('y');
    s=sprintf('y=%f*x+%f',net.iw{1,1},net.b{1,1})
    text(-2,-16,s);
    
    %% 8.1手动实现二值逻辑--与
    close all;clear;clc;
    %定义变量
    P=[0,0,1,1;0,1,0,1];
    P=[ones(1,length(P));P];
    d=[0,0,0,1];
    %初始化
    w=[0,0,0];%权值向量带偏置的初始化为0向量
    lr=maxlinlr(P);%求最大学习率
    MAX=200;%迭代上限
    %循环迭代
    for i=1:MAX
       fprintf('第%d次迭代\n',i);
       v=w*P;%求出输出
       y=purelin(v);
       yy=y>=0.5;   %强模拟输出转化为二值输出,0.5为阈值
       e=d-y;
       m(i)=mse(e);
       fprintf('均方误差:\n',m(i));
       dw=lr*e*P';
       w=w+dw;  %权值向量调整
    end
    %显示
    plot([0,0,1],[0,1,0],'o');hold on;
    plot(1,1,'d');
    x=-2:.2:2;
    y=1.5-x;
    plot(x,y);
    axis([-0.5,2,-0.5,2]);
    xlabel('x');ylabel('y');
    title('线性神经网络求解逻辑与');
    legend('0','1','分类面');
    
    %% 8.2函数实现二值逻辑--与
    close all;clear;clc;
    %定义变量
    P=[0,0,1,1;0,1,0,1];
    d=[0,0,0,1];
    lr=maxlinlr(P,'bias');
    %线性网络实现
    net1=linearlayer(0,lr);
    net1=train(net1,P,d);
    %感知器实现
    net2=newp([-1,1;-1,1],1,'hardlim');
    net2=train(net2,P,d);
    %显示
    disp('线性网络输出');
    Y1=sim(net1,P);
    disp('线性网络二值输出')
    YY1=Y1>=0.5;
    disp('线性网络最终权值:');
    w1=[net1.iw{1,1},net1.b{1,1}];
    disp('感知器输出');
    Y2=sim(net2,P);
    disp('感知器二值输出');
    YY2=Y2>=0.5
    disp('感知器最终权值:');
    w2=[net2.iw{1,1},net2.b{1,1}];
    
    plot([0,0,1],[0,1,0],'o');
    hold on;
    plot(1,1,'d');
    x=-2:0.2:2;
    y1=1/2/w1(2)-w1(1)/w1(2)*x-w1(3)/w1(2);
    plot(x,y1,'-');
    y2=-w2(1)/w2(2)*x-w2(3)/w2(2);
    plot(x,y2,'--');
    axis([-0.5,2,-0.5,2]);
    xlabel('x');ylabel('y');
    title('线性神经网络用于求解逻辑与');
    legend('0','1','线性神经网络分类面','感知器分类面');
    
    %% 9.1实现二值逻辑--异或--添加非线性输入--to be continue
    %% 9.2实现二值逻辑--异或--使用Madaline--to be continue
    展开全文
  • matlab神经网络30个案例分析

    千次下载 热门讨论 2011-06-01 20:06:07
    【目录】- MATLAB神经网络30个案例分析(开发实例系列图书) 第1章 BP神经网络的数据分类——语音特征信号分类1 本案例选取了民歌、古筝、摇滚和流行四类不同音乐,用BP神经网络实现对这四类音乐的有效分类。 第2章 ...
  • MATLAB 神经网络NAR时间序列做预测

    千次阅读 2019-10-03 20:39:45
    本人用到MATLAB神经网络NAR时间序列做预测,根据网上的程序和MATLAB说明,整理出了程序如下: 公共号“数据统计分析与挖掘”中回复“数据”,获取本文所需数据。 公共号“数据统计分析与挖掘”中回复“书籍”,获取...

    本人用到MATLAB神经网络NAR时间序列做预测,根据网上的程序和MATLAB说明,整理出了程序如下:

    公共号“数据统计分析与挖掘”中回复“数据”,获取本文所需数据。
    公共号“数据统计分析与挖掘”中回复“书籍”,获取50本数据分析、python、统计学经典书籍。

    扫描二维码,回复“数据,获取本文所需数据。

    clc;close all;clear all;
    load data1; 
    M=1080;   %M为学习数据个数
    N=9720;   %N为预测数据个数
    %get the data
    data1=data(1:M);
    data2=data(M+1:M+N);


    %prepare training data 
    T=data1';
    T=con2seq(T(1:M));%m=1*ones(1,M);T=mat2cell(T,1,m);
    %prepare validation data 
    T2=data2';
    T2=con2seq(T2(1:N));%m2=1*ones(1,N);T2=mat2cell(T2,1,m2);


    %define nolinear autoregressive neural network
    inputDelays=5;
    hiddenSizes=10;
    net=narnet(inputDelays,hiddenSizes); 


    %prepare target time series data for network traning
    [Xs,Xi,Ai,Ts]=preparets(net,{},{},T);


    %traning net
    net=train(net,Xs,Ts,Xi,Ai);
    view(net);


    Y=net(Xs,Xi);
    perf=perform(net,Ts,Y)
    %prepare validation data for network simulation
    yini=T(end-max(inputDelays)+1:end);%initial value from training data 
    %combine initial value and validation data T2
    [Xs,Xi,Ai]=preparets(net,{},{},[yini,T2]);
    %predict on validation data  
    predict=net(Xs,Xi,Ai);


    %calculate error and RMSE
    Yp=cell2mat(predict);
    add=0;fch=0;
    for i=1:N
        error(i)=data2(i)-Yp(i);
        add=add+data(i)*data(i);
        fch=fch+error(i)*error(i);;
    end
    RMSE=sqrt(fch/length(data2))/sqrt(add/length(data2))


    plot(Yp,'r');
    hold on;
    plot(data2,'g');
    plot(error,'b');

    kk

    网上源代码
     

    展开全文
  • 数据挖掘的目的 数据挖掘 (Data Mining) 阶段首先要确定挖掘的任务或目的数据挖掘的目 的就是得出隐藏在数据中的有价值的信息 数据挖掘是一门涉及面很广的交叉学 科包括器学习数理统计神经网络数据库模式识别粗糙...
  • 数据挖掘使用BP神经网络用作训练网络,并且对该网络进行测试,得到准确性
  • Matlab数据挖掘公开课7神经网络数据挖掘 主讲人: 王小川 同济大学经管学院博士研究生 新浪微博/hgsz2003 目录 人工智能 及其发展 并行运算 新版本特性 神经网络 理论 GUI实现 1 人工智能 及其发展 人工智能 由人工...
  • 机器学习是一类算法的总称,这些算法企图从大量历史数据挖掘出其中隐含的规律,并用于预测或者分类,更具体的说,机器学习...这份资料包含一些适合初学者学习的神经网络实现机器学习的案例,包括语音特征,图像识别等
  • 点击上方蓝字关注“公众号”MATLAB 神经网络变量筛选—基于BP的神经网络变量筛选灰色系统理论是一种研究少数据、贫信息、不确定性问题的新方法,它以部分信息已知,部分信息未知的“小样本”,“贫信息”不确定系统...

    点击上方蓝字关注“公众号”

    3914c5d31e381ad9fb31ec485e054b00.gif

    MATLAB  神经网络变量筛选—基于BP的神经网络变量筛选

    灰色系统理论是一种研究少数据、贫信息、不确定性问题的新方法,它以部分信息已知,部分信息未知的“小样本”,“贫信息”不确定系统为研究对象,通过对“部分”已知信息的生成、开发,提取有价值的信息,实现对系统运行行为、演化规律的正确描述和有效监控。

    灰色理论强调通过对无规律的系统已知信息的研究,提炼和挖掘有价值的信息,进而用已知信息取揭示未知信息,使系统不断“白化”。

    灰色系统中建立的模型称为灰色模型(Grey Model),简称GM模型,该模型是以原始数据序列为基础建立的微分方程。

    灰色建模中最有代表性的模型是针对时间序列的GM建模,它直接将时间序列数据转化为微分方程,利用系统信息,使抽象的模型量化,进而在缺乏系统特性知识的情况下预测系统输出。

    739089987077aacfbdd81129b9ec38f0.gif

    灰色神经网络预测流程包含灰色神经网络构建,灰色神经网络训练和灰色神经网络预测三个部分。

    其中,灰色神经网络构建根据输入输出数据维数确定灰色神经网络结构。

    由于本案例输入数据为5维,输出有1维,所以灰色神经网络结构为1-1-6-1,即LA层有1个节点,输入为时间序列t,LB层有1个节点,LC层有6个节点,从第2个到第6个分别输入市场份额、需求趋势、价格波动、订单满足率、分销商联合预测等5个因素的归一化数据,输出为预测订单量。

    灰色神经网络训练用训练数据训练灰色神经网络,使网络具有订单预测能力。

    灰色神经网络预测用网络预测订单数量,并根据预测误差判断网络性能。

    共有过去3年36个月的数据,首先取前30个月的数据作为训练数据训练网络,网络共学习进化100次,然后用剩余6组数据评价网络的预测性能。

    d430157e1d175a9c18e3f5710874f238.gifa7015b5461185ef465ef726690b6fa78.pngf0acd0ea10632502a50c174ff6c253bc.png

    01

    灰色神经网络算法程序

    %% 清空环境变量
    clc
    clear
    load data
    %% 数据累加作为网络输入
    [n,m]=size(X);
    for i=1:n
        y(i,1)=sum(X(1:i,1));
        y(i,2)=sum(X(1:i,2));
        y(i,3)=sum(X(1:i,3));
        y(i,4)=sum(X(1:i,4));
        y(i,5)=sum(X(1:i,5));
        y(i,6)=sum(X(1:i,6));
    end

    b9759714bffd697e447b9d43e7d18c87.gif

    01

    训练

    %% 网络参数初始化
    a=0.3+rand(1)/4;
    b1=0.3+rand(1)/4;
    b2=0.3+rand(1)/4;
    b3=0.3+rand(1)/4;
    b4=0.3+rand(1)/4;
    b5=0.3+rand(1)/4;
    %% 学习速率初始化
    u1=0.0015;
    u2=0.0015;
    u3=0.0015;
    u4=0.0015;
    u5=0.0015;
    %% 权值阀值初始化
    t=1;
    w11=a;
    w21=-y(1,1);
    w22=2*b1/a;
    w23=2*b2/a;
    w24=2*b3/a;
    w25=2*b4/a;
    w26=2*b5/a;
    w31=1+exp(-a*t);
    w32=1+exp(-a*t);
    w33=1+exp(-a*t);
    w34=1+exp(-a*t);
    w35=1+exp(-a*t);
    w36=1+exp(-a*t);
    theta=(1+exp(-a*t))*(b1*y(1,2)/a+b2*y(1,3)/a+b3*y(1,4)/a+b4*y(1,5)/a+b5*y(1,6)/a-y(1,1));
    kk=1;

    02

    %% 循环迭代
    for j=1:10
    %循环迭代
    E(j)=0;
    for i=1:30
    %% 网络输出计算
    t=i;
    LB_b=1/(1+exp(-w11*t));   %LB层输出
    LC_c1=LB_b*w21;           %LC层输出
    LC_c2=y(i,2)*LB_b*w22;    %LC层输出
    LC_c3=y(i,3)*LB_b*w23;    %LC层输出
    LC_c4=y(i,4)*LB_b*w24;    %LC层输出
    LC_c5=y(i,5)*LB_b*w25;    %LC层输出
    LC_c6=y(i,6)*LB_b*w26;    %LC层输出
        LD_d=w31*LC_c1+w32*LC_c2+w33*LC_c3+w34*LC_c4+w35*LC_c5+w36*LC_c6;    %LD层输出
        theta=(1+exp(-w11*t))*(w22*y(i,2)/2+w23*y(i,3)/2+w24*y(i,4)/2+w25*y(i,5)/2+w26*y(i,6)/2-y(1,1));   %阀值
        ym=LD_d-theta;   %网络输出值
        yc(i)=ym;
        %% 权值修正
        error=ym-y(i,1);      %计算误差
        E(j)=E(j)+abs(error);    %误差求和       
        error1=error*(1+exp(-w11*t));     %计算误差
        error2=error*(1+exp(-w11*t));     %计算误差
        error3=error*(1+exp(-w11*t));
        error4=error*(1+exp(-w11*t));
        error5=error*(1+exp(-w11*t));
        error6=error*(1+exp(-w11*t));
        error7=(1/(1+exp(-w11*t)))*(1-1/(1+exp(-w11*t)))*(w21*error1+w22*error2+w23*error3+w24*error4+w25*error5+w26*error6);
        %修改权值
        w22=w22-u1*error2*LB_b;
        w23=w23-u2*error3*LB_b;
        w24=w24-u3*error4*LB_b;
        w25=w25-u4*error5*LB_b;
        w26=w26-u5*error6*LB_b;
        w11=w11+a*t*error7;
    end
    end  
    %画误差随进化次数变化趋势
    figure(1)
    plot(E)
    title('训练误差','fontsize',12);
    xlabel('进化次数','fontsize',12);
    ylabel('误差','fontsize',12);
    %print -dtiff -r600 28-3
    %根据训出的灰色神经网络进行预测
    for i=31:36
        t=i;
        LB_b=1/(1+exp(-w11*t));   %LB层输出
        LC_c1=LB_b*w21;           %LC层输出
        LC_c2=y(i,2)*LB_b*w22;    %LC层输出
        LC_c3=y(i,3)*LB_b*w23;    %LC层输出
        LC_c4=y(i,4)*LB_b*w24;    %LC层输出
        LC_c5=y(i,5)*LB_b*w25;
        LC_c6=y(i,6)*LB_b*w26;
        LD_d=w31*LC_c1+w32*LC_c2+w33*LC_c3+w34*LC_c4+w35*LC_c5+w36*LC_c6;    %LD层输出
        theta=(1+exp(-w11*t))*(w22*y(i,2)/2+w23*y(i,3)/2+w24*y(i,4)/2+w25*y(i,5)/2+w26*y(i,6)/2-y(1,1));   %阀值
        ym=LD_d-theta;   %网络输出值
        yc(i)=ym;
    end
    yc=yc*100000;
    y(:,1)=y(:,1)*10000;

    03

    %计算预测的每月需求量
    for j=36:-1:2
        ys(j)=(yc(j)-yc(j-1))/10;
    end
    figure(2)
    plot(ys(31:36),'-*');
    hold on
    plot(X(31:36,1)*10000,'r:o');
    legend('灰色神经网络','实际订单数')
    title('灰色系统预测','fontsize',12)
    xlabel('月份','fontsize',12)
    ylabel('销量','fontsize',12)

    04

    仿真结果图

    32df4884417ac039b54cf2087396c511.png

    ceabffea3ba81dd15ec0d0838279a384.png

    24b15724be48b80394debc4350f40b2f.gif

    具体仿真程序链接,微信公众号回复【神经网络】即可获得链接。

    未完待续

    扫码关注

    不迷路

    4819ca143a8c7495cacccc9bf2d76c4b.gif

    展开全文
  • 数据挖掘讲义马景义 数据和程序 \matlab\one-input.csv; b=xlsread'F:\4. 数据挖掘讲义马景义 数据和程序 \matlab\output.csv; c=xlsread'F:\4. 数据挖掘讲义马景义 数据和程序 \matlab\c.csv; save data1.mat
  • Matlab创建BP神经网络

    千次阅读 2019-04-19 17:40:32
    课程结课设计要求剖析一个分类器程序,这是我在网上找的一篇文章(ANN神经网络入门——分类问题(MATLAB) https://blog.csdn.net/u012321457/article/details/79273702),我这篇主要是要介绍代码其中函数的用法。...

    前言

    最近在自学吴恩达的机器学习,还有学校的数据挖掘课程。课程结课设计要求剖析一个分类器程序,这是我在网上找的一篇文章(ANN神经网络入门——分类问题(MATLAB)     https://blog.csdn.net/u012321457/article/details/79273702),我这篇主要是要介绍代码其中函数的用法。

    %读取训练数据
    [f1,f2,f3,f4,class] = textread('trainData.txt' , '%f%f%f%f%f',150);    %建议不要使用textread,请改用textscan
    
    %特征值归一化
    %[input,minI,maxI] = premnmx( [f1 , f2 , f3 , f4 ]') ;    %premnmx is an obsolete function. use mapminmax instead.
    [input,ps] = mapminmax([f1,f2,f3,f4]',0,1);
    
    %构造输出矩阵
    s = length(class);
    output = zeros(s ,3);
    for i = 1 : s
       output( i , class( i )  ) = 1 ;    %将类别1、2、3构造成[1 0 0]'  [0 1 0]'  [0 0 1]'
    end
    
    %创建神经网络
    %net = newff( minmax(input) , [10 3] , { 'logsig' 'purelin' } ,  'traingdx' ) ; 
    % Obsoleted in R2010b NNET 7.0.  Last used in R2010a NNET 6.0.4.The recommended function is feedforwardnet.
    net = feedforwardnet(10,'traingdx');
    
    %设置训练参数
    net.trainparam.show = 50 ;       %显示中间结果的周期
    net.trainparam.epochs = 500 ;    %最大迭代次数
    net.trainparam.goal = 0.01 ;     %神经网络训练的目标误差
    net.trainParam.lr = 0.01 ;       %学习率
    
    %开始训练
    net = train( net, input , output' );
    
    %读取测试数据
    [t1,t2,t3,t4,c] = textread('testData.txt' , '%f%f%f%f%f',150);
    
    %测试数据归一化
    %testInput = tramnmx ( [t1,t2,t3,t4]' , minI, maxI );  %tramnmx is an obsolete function. use mapminmax instead.
    testInput = mapminmax('apply',[t1,t2,t3,t4]',ps);
    
    %仿真
    Y = sim( net , testInput);     %对输入的特征数据输出分类结果
    
    %统计识别正确率
    [s1 , s2] = size( Y ) ;
    hitNum = 0 ;
    for i = 1 : s2
        [m , Index] = max( Y( : ,i)) ;    %获取输出矩阵Y每一列中的最大值及下标
        if( Index  == c(i)   )
            hitNum = hitNum + 1 ;
        end
    end
    sprintf('识别率是 %3.3f%%',100 * hitNum / s2 )

    运行结果:

    newff()函数

    newff函数的格式为:

            net=newff(PR,[S1 S2 ...SN],{TF1 TF2...TFN},BTF,BLF,PF),函数newff建立一个可训练的前馈网络。输入参数说明:

            PR:Rx2的矩阵以定义R个输入向量的最小值和最大值;

            Si:第i层神经元个数;

            TFi:第i层的传递函数,默认函数为tansig函数;

            BTF:训练函数,默认函数为trainlm函数;

            BLF:权值/阀值学习函数,默认函数为learngdm函数;

            PF:性能函数,默认函数为mse函数。

     

             TF

             purelin  线性传递函数 

            hardlim  硬限幅传递函数 

             hardlims  对称硬限幅传递函数 

             satlin  饱和线性传递函数 

             satlins  对称饱和线性传递函数 

             logsig  对数S 形传递函数 

             tansig  正切S 形传递函数 

            radbas  径向基传递函数 

            compet  竞争层传递函数 

     

            BTF

            trainlm  : 中型网络,内存需求最大,收敛速度最快

            traingd :梯度下降BP训练函数(Gradient descent backpropagation)

            traingdx :梯度下降自适应学习率训练函数

            traingdm:动量BP算法。 

            trainda:学习率可变的最速下降BP算法。 

            trainrp:弹性算法。 

            trainb :以权值/阈值的学习规则采用批处理的方式进行训练的函数

            trainc :以学习函数依次对输入样本进行训练的函数;

            trainr :以学习函数随机对输入样本进行训练的函数.

           变梯度算法: 

             traincgf(Fletcher-Reeves修正算法) 

             traincgp(Polak_Ribiere修正算法) 

                traincgb(Powell-Beale复位算法) 

             trainbfg(BFGS 拟牛顿算法) 

             trainoss(OSS算法)

            网络配置参数

            一些重要的网络配置参数如:

            net.trainparam.goal     :神经网络训练的目标误差

            net.trainparam.show   : 显示中间结果的周期

            net.trainparam.epochs  :最大迭代次数

            net.trainParam.lr              : 学习率

    feedforwardnet()函数

            feedforward网络可以用作输入和输出的映射,若给予足够的隐藏神经元,两(或更多)层前馈网络可以实现任何有限的输入输出功能,只含有一个隐含层的的神经网络可以拟合任意有限的输入输出映射问题

    语法:   

                feedforwardnet(hiddenSizes,trainFcn)

    hiddenSizes:隐藏层神经元个数(一个行向量),默认值10

    trainFcn:用于训练网络性能所采用的函数,默认'trainlm'

    %matlab中自带例子
    [x,t] = simplefit_dataset;
    net = feedforwardnet(10);
    net = train(net,x,t);
    view(net)
    y = net(x);
    perf = perform(net,y,t)

    train()函数

            网络训练学习函数

    语法:[ net, tr, Y1, E ]  = train( net, X, Y )

    参数:

    X:网络实际输入

    Y:网络应有输出

    tr:训练跟踪信息

    Y1:网络实际输出

    E:误差矩阵

    sim()函数

            使用网络进行仿真

    语法:Y=sim(net,X)

    参数:

    net:网络

    X   :输入给网络的K×N矩阵,其中K为网络输入(输入层)个数,N为数据样本数

    Y   :输出矩阵Q×N,其中Q为网络输出(输出层)个数

    数据集及源码下载链接: https://pan.baidu.com/s/1xMwGHKE_2witGVq6i2BnLg 提取码: 7ku5 

    展开全文
  • 使用的工具:Matlab 分类器:SVM ************* 1、案例背景: 在葡萄酒制造业中,对于葡萄酒的分类具有很大意义,因为这涉及到不同种类的葡萄酒的存放以及出售价格,采用SVM做为分类器可以有效预测相关葡萄酒的种类...
  • 3.7 基于MATLAB神经网络方法 人工神经网络在故障诊断、特征的提取和预测、非线性系统的自适应控制、不能用规则或公式描述的大量原始数据的处理等方面具有比经典计算方法优越的性能,且有极大的灵活性和自适应性...
  • 数据挖掘是一门涉及面很广的交叉学科,包括器学习、数理统计、神经网络、数据库、模式识别、粗糙集、模糊数学等相关技术。它也常被称为“知识发现”。知识发现(KDD)被认为是从数据中发现有用知识的整个过程。数据...
  • Matlab实现BP神经网络

    千次阅读 2014-04-29 19:25:26
    该实现为《数据挖掘》课程的一次作业。数据在http://www.kaggle.com/
  • Matlab小波神经网络(时间序列预测)

    千次阅读 2019-10-03 20:43:34
    Matlab(小波神经网络时间序列预测) 时间序列数据: 公共号“数据统计分析与挖掘”中回复“数据”,获取本文所需数据。 公共号“数据统计分析与挖掘”中回复“书籍”,获取50本数据分析、python、统计学经典书籍。 ...
  • 点击上方蓝字关注“公众号”MATLAB 神经网络变量筛选—基于BP的神经网络变量筛选灰色系统理论是一种研究少数据、贫信息、不确定性问题的新方法,它以部分信息已知,部分信息未知的“小样本”,“贫信息”不确定系统...
  • 在过去的几年中,神经网络的兴起与应用成功推动了模式识别和数据挖掘的研究。许多曾经严重依赖于手工提取特征的机器学习任务(如目标检测、机器翻译和语音识别),如今都已被各种端到端的深度学习范式(例如卷积神经...
  • BP神经网络预测(人口)程序(matlab

    千次阅读 2019-10-03 20:27:30
    自己测试人口预测的matlab实现: 公共号“数据统计分析与挖掘”中回复“数据”,获取本文所需数据。 公共号“数据统计分析与挖掘”中回复“书籍”,获取50本数据分析、python、统计学经典书籍。 扫描二维码,回复...
  • 数据挖掘DM.zip

    2020-07-10 16:12:36
    iris数据集、SVM、KNN、贝叶斯、神经网络数据挖掘方法对iris数据集进行分类识别。(含matlab代码)
  •  matlab具有非常方便的神经网络工具箱以及矩阵计算,且使用方便,使得其是一个优秀数据挖掘的工具。本文就不赘述神经网络以及一些其他的基础知识是什么了,只介绍我是如何做的。如果有错误的地方希望大佬指正,...
  • 公共号“数据统计分析与挖掘”中回复“数据”,获取本文所需数据。 公共号“数据统计分析与挖掘”中回复“书籍”,获取50本数据分析、python、统计学经典书籍。 扫描二维码,回复“数据”,获取本文所需数据。 ...
  • 该实现为《数据挖掘》课程的一次作业。数据在http://www.kaggle.com/网站上,所以数据为CSV格式。但BP神经网络算法为最一般的实现,所以有参考价值。close all %关闭打开的文件clear %清除内存中的数据echo on %显示...
  • 想提取公众号目前为止所有代码的小伙伴可点击推文左下角阅读原文, 提取码:7kpc...推文分类:01 | 优化算法02 | 多目标优化03 | VRPTW专题04 | 实用技巧05 | 机器学习06 | 数据挖掘07 | 运筹学基础01 | 优化算法1、...
  • 一、整体概念 神经元 激活值和激活函数 二、MLP ...Principles of training multi-layer neural ...学堂在线:数据挖掘:理论与算法,清华大学,袁博老师 炼数成金:机器学习及其MATLAB实现—从基础到实践 ...
  • 数据挖掘_BSYES算法

    2010-06-23 11:05:13
    3.1算法思想(神经网络算法) 7 3.2方法论(神经网络分类法) 7 3.3软件平台(MATLAB) 7 第四章 8 4.1 我的工作 8 4.2 工作结果小结 8 第五章 总结与展望 8 第六章 致谢 8 第七章 参考文献 8
  • 我的数据挖掘之路

    千次阅读 2012-07-15 00:04:57
    由于本科专业是生物信息(可以理解为生物统计学或者与基因数据相关的...记得大二的时候,我便开始学用 matlab,然后玩弄SVM,神经网络之类的机器学习算法做一些分析和实验。现在想想那时候可能连这些算法的基本概念都不
  • 想要搞数据挖掘,该自学些啥?

    千次阅读 2015-07-29 22:02:08
    我不太推荐MATLAB,因为我们老师严禁我们使用,但是用MATLAB搞搞神经网络是很不错的 初学者的话建议可以去把weka里面的代码都自己写一遍,会有不少收获的 推荐个微信公众号:数据挖掘DW 里面有很多很好很赞的文章,...
  • matlab可用于数据挖掘,BP神经网络,构造贝叶斯分类器,训练数据,预测数据。
  • 用python创建BP神经网络

    千次阅读 2019-04-21 09:00:17
    数据挖掘结课设计,老师要求剖析一个分类程序,一开始找了个用Matlab实现的,也就是我上一篇博客所写的。有点心虚,毕竟一共才40多行代码,问老师用剖析matlab程序行不行。结果很显然,不然就不会有这篇博客出现了。...

空空如也

空空如也

1 2 3
收藏数 56
精华内容 22
关键字:

matlab神经网络数据挖掘

matlab 订阅