training multilabel data with traingdm function of Neural network toolbox

3 次查看(过去 30 天)
Hello Guyz
i was wondering is there any way to train multilabel-data (i.e more than 1 class labels in output for single instance ) using traingdm (gradient decent with momentum)?
here, every col of p corresponds to one output value of t
p = [-1 -1 2 2;0 5 0 5];
t = [-1 -1 1 1];
net=newff(minmax(p),[3,1],{'tansig','purelin'},'traingdm')
but i need something like this
p = [-1 -1 2 2;0 5 0 5]; t = [-1 -1 1 1 ; 1 1 -1 1 ; 1 1 1 -1 ; -1 1 -1 1];
i.e each column (instance) of p corresponds to set of output values (in this case 4)
is this possible ?
Please Help ...Thank you so much !!

采纳的回答

Greg Heath
Greg Heath 2014-3-16
For classification/pattern-recognition, newpr is favored over newff
For regression/curve-fitting, newfit is favored over newff
Both call newff but all three have different default plot selections
However, all three are doubly obsolete. So, if you have them, use the current functions patternnet or fitnet which call feedforwardnet.
When designing a classifier with c mutually exclusive classes, target should contain columns of the c-dimensional unit matrix eye(c). The row index of the single 1 is the corresponding class index in [1,c]. The relationships are
target = ind2vec(trueclass)
trueclass = vec2ind(target)
[ net tr output RegressErr] = train(...)% RegressErr = target-output
assignedclass = vec2ind(output)
ClassErr = (assignedclass ~= trueclass);
Nerr = sum(ClassErr)
PctErr = 100*Nerr/N
% For trn/val/tst breakdowns of the results, use tr.trainInd, etc
Hope this helps.
Thank you for formally accepting my answer
Greg
  1 个评论
pooja
pooja 2014-3-17
编辑:pooja 2014-3-17
Thank you for your giving your time and answer sir,
i am a beginner so i apologize for so many questions
after getting output , can we define our custom error measures ? like hamming loss ,ranking loss etc (specifically for multilabel classification)
and get performance result according to these measures?
i hope my question would be clear , thank you for considering!!

请先登录,再进行评论。

更多回答(1 个)

Greg Heath
Greg Heath 2014-3-18
Whoops! I think I misled you. My answer assumed mutually exclusive classes.
For non-mutually exclusive classes the targets can not be unit column vectors with one nonzero component.
I have two recommendations :
1. A 4 output classifier with {0,1} targets so that outputs can be interpreted as input conditional probability estimates. However, you should try either the obsolete newpr or the current patternnet which are designed for classification problems. Accept all defaults so that you don't get confused with default normalizations, transfer functions, and renormalizations.
2. If many trials of the above by varying number of hidden nodes and initial weights (as in many of my examples ... search on greg Ntrials) don't work well enough, try 4 separate classifiers.
Again, sorry for the misdirection.
Greg

类别

Help CenterFile Exchange 中查找有关 Sequence and Numeric Feature Data Workflows 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by