数据准备
% 假设你有一个包含特征的训练数据 X,以及相应的标签 y
% 这里只是一个示例,你需要根据你的数据准备实际的训练数据
X = randn(100, 10); % 100个样本,每个样本10个特征
y = randi([0, 1], 100, 1); % 100个样本的二分类标签
% 将数据分成训练集和测试集
[trainInd, valInd, testInd] = dividerand(size(X, 1), 0.6, 0.2, 0.2);
X_train = X(trainInd, ;
y_train = y(trainInd);
X_val = X(valInd, ;
y_val = y(valInd);
X_test = X(testInd, ;
y_test = y(testInd);
% 构建神经网络模型
layers = [
fullyConnectedLayer(50) % 添加一个具有50个神经元的全连接层
reluLayer % 添加 ReLU 激活函数层
fullyConnectedLayer(1) % 添加一个输出层,这里假设是一个二分类问题,所以输出层只有一个神经元
sigmoidLayer % 输出层使用 sigmoid 激活函数
];
% 定义训练参数
options = trainingOptions(‘sgdm’, … % 使用随机梯度下降算法进行优化
‘MaxEpochs’, 10, … % 最大训练周期
‘MiniBatchSize’, 16, … % mini-batch 大小
‘InitialLearnRate’, 0.01, … % 初始学习率
‘ValidationData’, {X_val, y_val}, … % 验证集数据
‘Plots’, ‘training-progress’); % 显示训练进度图
% 训练神经网络
net = trainNetwork(X_train, y_train, layers, options);
% 在测试集上评估模型性能
y_pred = classify(net, X_test);
accuracy = sum(y_pred == y_test) / numel(y_test);
disp(['Test Accuracy: ’ num2str(accuracy)]);
这只是一个简单的示例,实际的应用可能会更加复杂。你可能需要根据你的数据和问题来调整网络的结构、训练参数等。神经网络的性能取决于许多因素,包括网络结构、训练数据的质量和数量、优化算法等。因此,需要根据具体情况进行调整和优化。