Contents
Description of demo_multilabel_MLP.m
Uses MLPs (Neural Networks) for multilabel classification with various options and architectures
clear all close all generateData_multiLabel
usage of multilabel MLP with two hidden layers
options = struct('nLabels',nLabels,... 'nHidden',[10 3]); model = ml_multilabel_MLP(Xtrain,ytrain,options); yhatTest = model.predict(model, Xtest); yhatTrain = model.predict(model, Xtrain); testError = sum(ytest~=yhatTest)/length(ytest); model.trainError = sum(ytrain~=yhatTrain)/length(ytrain); fprintf('Averaged misclassification test error with %s is: %.3f\n',... model.name, testError); linear_makeOneContourPlot(Xtrain,ytrain, model);
Averaged misclassification test error with Multi-Label MLP is: 0.150

usage of L2-regularized multilabel MLP with two hidden layers
options = struct('nLabels',nLabels,... 'lambdaO',1e-2,... % regularize output layer weights 'nHidden',[10 3]); model = ml_multilabel_MLP(Xtrain,ytrain,options); yhatTest = model.predict(model, Xtest); yhatTrain = model.predict(model, Xtrain); testError = sum(ytest~=yhatTest)/length(ytest); model.trainError = sum(ytrain~=yhatTrain)/length(ytrain); fprintf('Averaged misclassification test error with %s is: %.3f\n',... model.name, testError); linear_makeOneContourPlot(Xtrain,ytrain, model);
Averaged misclassification test error with Multi-Label MLP is: 0.127

usage of MLP with three hidden layers
options = struct('nLabels',nLabels,... 'nHidden',[10 10 3]); model = ml_multilabel_MLP(Xtrain,ytrain,options); yhatTest = model.predict(model, Xtest); yhatTrain = model.predict(model, Xtrain); testError = sum(ytest~=yhatTest)/length(ytest); model.trainError = sum(ytrain~=yhatTrain)/length(ytrain); fprintf('Averaged misclassification test error with %s is: %.3f\n',... model.name, testError); linear_makeOneContourPlot(Xtrain,ytrain, model);
Averaged misclassification test error with Multi-Label MLP is: 0.080
