资源简介
ANN程序 MATLAB语言 用于数据处理 只要换数据就能用
代码片段和文件信息
clc;clear;close all
disp(‘PLS预测的RMSECVRMSEP训练集及预测集的R‘)
load TenSesameAddSoybeanOil_NIR_20150121
meanornot = 1;
mean_method = 1;
switch mean_method
case 1
for i = 1:50
Spectra(i:)= mean(spectra(3*i-2:3*i:));
end
Target = target;
case 2
Spectra = spectra;
Target((3*i-2):(3*i)) = target(i);
end
for columm = 1;
name = ynames;
disp(name{columm});
%-----------------KS对数据划分,训练集2/3,预测集1/3-------------------------
[mn] = size(cal);
[modeltest] = kenstone(calfloor(2/3*m));
x_train = cal(model:);
x_pred = cal(test:);
y_train = caltar(modelcolumm);
y_pred = caltar(testcolumm);
[m_trainn_train] = size(x_train);
%———————————----——数据中心化—————————--------------------
pretreatment = 3;%对于ANN,采用第2个中心化最好
switch pretreatment;
case 1 %中心化
mean_x_train = mean(x_train);
x_train = x_train - repmat(mean_x_trainsize(x_train1)1);
x_pred = x_pred - repmat(mean_x_trainsize(x_pred1)1);
mean_y_train = mean(y_train);
y_train = y_train - repmat(mean_y_trainsize(x_train1)1);
case 2 %Normalize
std_x_train = std(x_train01);
mean_x_train = mean(x_train1);
std_y_train = std(y_train01);
mean_y_train = mean(y_train);
y_train = (y_train - repmat(mean_y_trainsize(y_train1)1))./repmat(std_y_trainsize(y_train1)1);
x_train = (x_train-repmat(mean_x_trainsize(x_train1)1))./repmat(std_x_trainsize(x_train1)1);
x_pred = (x_pred-repmat(mean_x_trainsize(x_pred1)1))./repmat(std_x_trainsize(x_pred1)1);
case 3 %最大最小归一化
[train_xps_x] = mapminmax(x_train‘);
[train_yps_y] = mapminmax(y_train‘);
x_train = train_x‘;
y_train = train_y‘;
pred_x = mapminmax(‘apply‘x_pred‘ps_x);
x_pred = pred_x‘;
y_pred = mapminmax(‘apply‘y_predps_y);
end
%-------------------------BP-ANN外部预测------------------------------------
disp(‘BP-ANN直接预测‘); %学习速率,动量项,隐含层节点数为nodenumber
net = newff(minmax(x_train‘)[nodenumber1]{‘tansig‘‘purelin‘}‘traingdm‘);
%训练函数trainlm使用的学习算法为Levenberg-Marquadt,优点收敛速度快
%训练函数traingd使用的学习算法是梯度下降法,收敛速度很慢
%动量BP算法:训练函数traingdm(Gradient descent with momentum backpropagation)
%弹性BP算法:训练函数traingrp()
%准牛顿BP算法:训练函数trainbfg()
inputWeights = net.IW{11};
inputbias = net.b{1};
layerWeights = net.LW{21};
layerbias = net.b{2};
%net.trainParam.show = 50; %训练显示间隔
net.trainParam.lr = 0.01; %学习速率Learning rate,默认值0.01
%net.trainParam.mc = 0.9; %动量项Momentum constant,默认值0.9
net.trainParam.epochs = 2000; %最大训练次数
net.trainParam.goal = 1e-3;
[nettr]
相关资源
- 数字图像处理作业canny边缘检测坎尼边
- RBF神经网络建模与预测(1)
- 格子玻尔兹曼MATLAB运用(LBGK_D2Q9_poi
- Canny边缘检测Matlab代码
- Modelling.the.Wireless.Propagation.Channel.A.s
- Robotics Modelling Planning and Control
- 三种不同路径规划的仿真
- OPTICAL SCANNING HOLOGRAPHY WITH MATLAB
- 基于MATLAB的图像边缘检测算法的仿真
- 机器人学导论课后答案及参考书籍R
- 用matlab编出的Manner-KendallM-K程序非参数
- mann_kendall趋势分析
- mann-kendall突变分析matlab代码
- ANN人工神经网络的matlab实现
- 人工神经网络预测matlab
- shannon计算的matlab函数代码
- path-planning 路径规划d*算法
- path-planning 路径规划RRT算法
- 仿真了两径瑞利衰落信道模型和多径
- matlab心电滤波处理hanning滤波、多项式
- canny边缘检测算法的matlab实现
- 基于matlab的canny算子的实现
- canny滤波器
- 图像处理,matlab程序,retinex_frankle_
- QPSK with matlab code and pi/4 DQPSK
- matlab中hanning汉宁窗设计数字高通滤波
- canny算子源码(matlab)
- 基于MATLAB的canny算子
- 图像处理/图像分割实验/prewitt/robert
- canny算子边缘检测,与matlab自带函数效
评论
共有 条评论