BP神经网络的有标签分类Matlab代码

% 导入Excel数据
filename = 'data.xlsx'; % Excel文件名
data = xlsread(filename);

% 分离特征和标签
X = data(:, 1:end-1); % 特征数据
Y = data(:, end); % 标签数据

% 将标签转换为独热编码形式
Y_one_hot = full(ind2vec(Y'));

% 创建BP神经网络
hiddenLayerSize = 10; % 可以根据需要调整隐藏层大小
net = patternnet(hiddenLayerSize);

% 设置训练函数为Levenberg-Marquardt
net.trainFcn = 'trainlm';

% 分割数据为训练集、验证集和测试集
net.divideParam.trainRatio = 70/100;
net.divideParam.valRatio = 15/100;
net.divideParam.testRatio = 15/100;

% 训练神经网络
[net,tr] = train(net, X', Y_one_hot);

% 测试神经网络
outputs = net(X');
errors = gsubtract(Y_one_hot,outputs);
performance = perform(net,Y_one_hot,outputs);

% 将输出转换回类别标签
[~, predicted] = max(outputs);
[~, actual] = max(Y_one_hot);

% 计算分类准确率
accuracy = sum(actual == predicted) / length(actual) * 100;
fprintf('分类准确率: %.2f%%\n', accuracy);

运行结果:

分类准确率: 98.37%

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值