matlab实现神经网络学习
·
在MATLAB中,可以使用Deep Learning Toolbox来创建和训练神经网络。以下是一个类似的示例,用于分类Iris数据集:
% 加载数据集
load fisheriris
inputs = meas;
targets = species;
% 将目标转换为one-hot编码
T = ind2vec(targets);
% 划分数据集
cv = cvpartition(targets,'HoldOut',0.2);
idx = cv.test;
XTrain = inputs(~idx,:);
TTrain = T(~idx,:);
XTest = inputs(idx,:);
TTest = T(idx,:);
% 定义网络架构
layers = [
sequenceInputLayer(4)
fullyConnectedLayer(12)
reluLayer
fullyConnectedLayer(8)
reluLayer
fullyConnectedLayer(3)
softmaxLayer
classificationLayer];
% 定义训练选项
options = trainingOptions('adam', ...
'MaxEpochs',150, ...
'GradientThreshold',1, ...
'InitialLearnRate',0.001, ...
'Shuffle','every-epoch', ...
'ValidationData',{XTest,TTest}, ...
'Verbose',0, ...
'Plots','training-progress');
% 训练网络
net = trainNetwork(XTrain,TTrain,layers,options);
% 评估网络
YPred = classify(net,XTest);
accuracy = sum(YPred == TTest)/numel(TTest);
fprintf('Accuracy: %.2f%%\n', accuracy*100);
更多推荐
所有评论(0)