matlab 坐标求函数表达式,Matlab---BP神经网络(获取数学表达式)

本文介绍了如何使用Matlab进行数据预处理,包括相关性分析、聚类和数据归一化,然后详细展示了BP神经网络的训练过程,并通过实例解释了如何获取神经网络的数学表达式,以实现从坐标数据到函数表达式的转换。
摘要由CSDN通过智能技术生成

前言

源代码

数据预处理分析

1 相关性分析

2 聚类分析

3 随机获取训练数据和预测数据集

4 对数据进行归一化

BP神经网络

1 BP神经网络结构本例

2 神经网络训练后权值和阈值查看

3 神经网络训练完输出与输入关系式

0 前言

训练数据下载:

data.mat

1. 源代码

【main.m】

%% 清空环境变量

clc

clear

%% 从Excel导入变量

load data;

%% 相关性分析

R = corrcoef(tempData);

figure;

ss = size(tempData,2);

%热图,将相关性可视化出来

imagesc(R);

set(gca,'xtick',1:ss);

set(gca,'ytick',1:ss);

set(gca,'xticklabel',variables);

set(gca,'yticklabel',variables);

axis([0 ss+1 0 ss+1]);

grid;

colorbar;

%% 获取BP神经网络训练数据

%通过聚类分析得到训练数据

allData = tempKmean(tempData,variables);

[m0,n0] = size(allData)

input = allData(:,1:(end-1));

output = allData(:,end)'; %% 随机选取s组训练数据,以及t组预测数据(s+t < 25000) s = m0-(m0/20); t = (m0)/20; k = rand(1,s+t); %重新得到向量k的有序(从小到大排列)向量m,并得到对应的下标向量n [m,n]=sort(k); input_train = input(n(1:s),:)';

output_train = output(n(1:s));

input_test = input(n(s+1:s+t),:)'; output_test = output(n(s+1:s+t)); %% 训练数据归一化 [inputn,inputps] = mapminmax(input_train); [outputn,outputps] = mapminmax(output_train); %% BP网络训练 %初始化网络结构 net=newff(inputn,outputn,6); net.trainParam.epochs=1000; net.trainParam.lr=0.1; net.trainParam.goal=0.00004; %网络训练 net=train(net,inputn,outputn); %% 用训练好的BP神经网络预测函数输出 %预测数据归一化 inputn_test=mapminmax('apply',input_test,inputps);

%预测输入预测

Y = sim(net,inputn_test);

figure;

plot(Y);

title('BP神经网络预测输出','FontName','Times New Roman','FontWeight','Bold','FontSize',16)

%% 输出结果反归一化

BPoutput = mapminmax('reverse',Y',outputps)'; figure; plot(BPoutput); title(&

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值