用matlab写一段神经网络二分类程序
时间: 2023-07-20 16:11:27 浏览: 35
好的,以下是一个简单的 MATLAB 程序示例,用于构建和训练一个神经网络,用于二分类问题:
```
% 读取数据
data = load('data.mat');
X = data.X; % 特征矩阵
y = data.y; % 标签向量
% 划分训练集和测试集
train_ratio = 0.8;
train_size = round(train_ratio * size(X, 1));
train_idx = randperm(size(X, 1), train_size);
test_idx = setdiff(1:size(X, 1), train_idx);
X_train = X(train_idx, :);
y_train = y(train_idx, :);
X_test = X(test_idx, :);
y_test = y(test_idx, :);
% 构建神经网络模型
hidden_layer_size = 10;
net = patternnet(hidden_layer_size);
% 设置训练参数
net.trainFcn = 'trainscg'; % 使用 Scaled Conjugate Gradient 算法
net.trainParam.epochs = 200; % 迭代次数为 200
net.trainParam.goal = 0.01; % 目标误差为 0.01
net.trainParam.showWindow = false; % 不显示训练窗口
% 训练神经网络
[net, tr] = train(net, X_train', y_train');
% 测试神经网络
y_pred = net(X_test');
y_pred = round(y_pred);
% 计算准确率
accuracy = sum(y_pred == y_test') / length(y_test);
disp(['Accuracy: ' num2str(accuracy)]);
```
请注意,此代码仅用于示例目的,并且可能需要根据您的数据进行修改。