关于BP神经网络预测结果误差大的原因

本文探讨了使用BP神经网络进行高光谱图像分类时遇到的问题,每个像素包含220个光谱数据,共17个类别。作者在训练和测试数据集划分后,发现网络预测类别1的输出与实际类别相差较大。文章附有相关代码和图表,寻求专业意见以解决误差问题。
摘要由CSDN通过智能技术生成

我在做一个关于用BP神经网络给高光谱图像分类的算法,一个像素有220个光谱数据,每个像素对应了一类,已知的是一共有17类,现在我将每类数据都找到,并在其中选出训练集和测试集。训练集对应的输出就是类别号,如1,2,3,4等。训练好网络之后我将类别1的测试集带入到网络中,计算出的输出却和1相差甚远。下面附上图和源代码,麻烦各路大神帮忙看看,本人也是刚接触这方面的知识。

clc;
clear all;
close all;
%1.导入数据
load('C:\Users\胡磊\Desktop\Indian_pines.mat')
load('C:\Users\胡磊\Desktop\Indian_pines_gt.mat')
%将145*145*220的3维数据变为2维矩阵
x = reshape(indian_pines,145*145,220);
y = reshape(indian_pines_gt,145*145,1);

%将所有的分类找到,并分出训练集与测试集
%A1代表了类别为1的所在的行,B1代表了第1类所对应的波段
A1 = find(y == 1);
B1 = x(A1,:);
%A2代表了类别为2的所在的行,B2代表了第2类所对应的波段
A2 = find(y==2);
B2 = x(A2,:);
%A3代表了类别为3的所在的行,B3代表了第3类所对应的波段
A3 = find(y == 3);
B3 = x(A3,:);
%A4代表了类别为4的所在的行,B4代表了第4类所对应的波段
A4 = find(y == 4);
B4 = x(A4,:);
%A5代表了类别为5的所在的行,B5代表了第5类所对应的波段
A5 = find(y == 5);
B5 = x(A5
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值