Matlab:BP神经网络算法,二叉决策树

1、BP神经网络算法

(1)步骤

1.准备训练数据和目标值

2.创建并配置BP神经网络模型

3.训练BP神经网络模型

4.用BP神经网络模型预测数据

例:某企业第一年度营业额为132468,第二年度为158948,第三年度为183737,预测第四年度的营业额

复制代码
%准备训练数据和目标值
x = [1 2 3]'; %年度
y = [132468 158948 183737]'; %营业额

%创建BP神经网络模型
net = feedforwardnet(10);

%配置BP神经网络模型
net.trainParam.showWindow = false;
net.trainParam.epochs = 1000;
net.divideFcn = '';
net.performFcn = 'mse';

%调整输入输出数据的格式
x_train = x';
y_train = y';

%训练BP神经网络模型
net = train(net, x_train, y_train);

%预测第四年度的营业额
x_pred = 4; %第四年度
y_pred = sim(net, x_pred);

%输出预测结果
disp(y_pred);

(2)+可视化

复制代码
format long
p=1:16;      %输入矢量
t=0.00001*[114333 115823 117171 118517 119850 121121 122389 123626 124761 125786 126743 127627 128453 129227 129988 130756]    %目标矢量
net = newff([0 8],[10 1],{'tansig' 'purelin'},'trainlm');  %初始化神经网络 net.trainParam.epochs=2500    %确定最大训练次数
net.trainParam.goal = 0.00000001;    %确定预期误差            
net.trainParam.lr=0.02     %确定学习速率,即权值
net = train(net,p,t);       %进行训练
p2=1:120
y2 = sim(net,p2)
p=1989+p;
p2=1989+p2;
plot(p,t,'o',p2,y2,'*')   %绘制拟合曲线
grid on

2、二叉决策树

(1)步骤

1.加载数据

2.设置特征和标签

3.构建二叉决策树模型

4.预测一个新样本的标签

(2)例:

复制代码
data = [1, 2, 0;
        2, 3, 1;
        3, 4, 0;
        4, 5, 1;
        5, 6, 0;
        6, 7, 1;
        7, 8, 0;
        8, 9, 1];
X = data(:, 1:2);  %特征(第1列和第2列作为特征X)
Y = data(:, 3);    %标签(第3列作为标签Y)
tree = fitctree(X, Y);
new_sample = [9, 10];  %新样本的特征
predicted_label = predict(tree, new_sample);
disp(predicted_label);
view(tree, 'Mode', 'Graph');

2.鸢尾花数据集

复制代码
%准备数据
load fisheriris;            %加载鸢尾花数据集
X = meas(:, 3:4);           %选择两个特征作为输入
Y = species;                %类别标签

tree = fitctree(X, Y);      %构建决策树模型

view(tree, 'Mode', 'graph');%可视化决策树

%预测新样本
newX = [5 1.5];             %新样本的特征值
predictedClass = predict(tree, newX);
disp(['预测类别:' char(predictedClass)]);
相关推荐
ZCXZ12385296a1 分钟前
【深度学习实战】基于YOLO11-ConvNeXtV2的软垫物体检测与分类详解
人工智能·深度学习·分类
lsx2024061 分钟前
jEasyUI 条件设置行背景颜色
开发语言
小毅&Nora2 分钟前
【Java线程安全实战】⑭ ForkJoinPool深度剖析:分治算法的“智能厨房“如何让并行计算跑得更快
java·算法·安全
飞天小蜈蚣2 分钟前
python-django_ORM的十三个查询API接口
开发语言·python·django
煎蛋学姐3 分钟前
SSM学习互助平台网站8f554(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
学习·ssm 框架·javaweb 开发·书籍分类
wfeqhfxz25887823 分钟前
花椒种植环境中的异物检测与分类:基于QueryInst模型的10类杂质识别
人工智能·分类·数据挖掘
飞雪20075 分钟前
局域网服务发现技术, DNS-SD和mDNS具体有什么区别, 什么不同?
开发语言·局域网·mdns·airplay·dns-sd·airprint
AI_零食5 分钟前
鸿蒙跨端框架 Flutter 学习 Day 4:异步编程基础——Future 与非阻塞执行的物理真相
学习·flutter·harmonyos
人工智能AI技术9 分钟前
【Agent从入门到实践】18 脚本化编程:批量执行、自动化逻辑
人工智能·python
开开心心就好11 分钟前
打印机驱动搜索下载工具,自动识别手动搜
java·linux·开发语言·网络·stm32·物联网·电脑