Мне нужно классифицировать набор данных с использованием Matlab MLP и показать классификацию.
Набор данных выглядит как
Нажмите для просмотра
То, что я сделал до сих пор:
Я создал нейронную сеть, содержащую скрытый слой (два нейрона
?? Может быть, кто-то может дать мне несколько советов о том, сколько
нейроны подходят для моего примера ) и выходной слой (один
нейрон).
Я использовал несколько разных методов обучения, таких как Delta bar
Дельта, обратное распространение (оба эти метода используются с или -out
импульс и Левенберг-Марквардт.)
Это код, который я использовал в Matlab (пример Левенберга-Марквардта)
net = newff(minmax(Input),[2 1],{'logsig' 'logsig'},'trainlm');
net.trainParam.epochs = 10000;
net.trainParam.goal = 0;
net.trainParam.lr = 0.1;
[net tr outputs] = train(net,Input,Target);
Ниже показаны скрытые границы классификации нейронов, сгенерированные Matlab на данных, я немного запутался, поскольку сеть должна давать нелинейный результат, но приведенный ниже результат выглядит так, что две граничные линии являются линейными ..
Нажмите для просмотра
Код для генерации вышеуказанного сюжета:
figure(1)
plotpv(Input,Target);
hold on
plotpc(net.IW{1},net.b{1});
hold off
Мне также нужно построить выходную функцию выходного нейрона, но я застрял на этом шаге. Кто-нибудь может дать мне несколько советов?
Заранее спасибо.