From: Davide De March on 7 May 2010 08:37 i'm Working on modeling very high dimensional data with very few observation, and of course there's no way to obtain a good model in prediction, but i'd like to implement a new approach for assessing neural netowork but i really need a way not to divide the set of dat in training - validation -test, but only training and use the test set for detect the best network in prediction. how can i set the parameter in newff for exclude the validation set? i tried with: net.divideParam.trainRatio = 0.8; net.divideParam.testRatio = 0.2; but it doesn't work. I also split randomly my initial data set in 2 different sets of 80% of data for training and 20% for test as follows: Nexp = 96; Npos = 4 Domains=95 perccamp=20; Gen1 = ceil(rand(Nexp,Npos)*Domains); numtest =round((Nexp*perccamp)./100); datiinput=randperm(96); test= Gen1(datiinput(1:numtest),:); train = Gen1(datiinput(numtest+1:Nexp),:); trainp= train(:,1:Npos*Domains) traint=train(:,Npos*Domains+1) testp=test(:,1:Npos*Domains) testt=test(:,Npos*Domains+1) net= newff(p',t',nn); but i don't know how to train the net with only the testset Any suggestions?
From: droulias Roulias on 21 May 2010 04:53 "Davide De March" <davidedemarch(a)unive.it> wrote in message <hs11hg$rfe$1(a)fred.mathworks.com>... > i'm Working on modeling very high dimensional data with very few observation, and of course there's no way to obtain a good model in prediction, but i'd like to implement a new approach for assessing neural netowork but i really need a way not to divide the set of dat in training - validation -test, but only > training and use the test set for detect the best network in prediction. > > how can i set the parameter in newff for exclude the validation set? > > i tried with: > > net.divideParam.trainRatio = 0.8; > net.divideParam.testRatio = 0.2; > > but it doesn't work. > I also split randomly my initial data set in 2 different sets of 80% of data for training and 20% for test as follows: > > Nexp = 96; > Npos = 4 Hi Matlab uses a default function that divides the given training examples into "training" "validation" and "testing", dividerand.m. at nnet\nnet\nn\format you will find(hopefully) the specified file. Open it with an editor and change the ratio values at Function info category if ischar(allV) switch (allV) case 'name' trainV = 'Random Indices'; case 'fpdefaults' defaults = struct; defaults.trainRatio = 0.6; defaults.valRatio = 0.2; defaults.testRatio = 0.2; trainV = defaults; otherwise error('NNET:Arguments','Unrecognized string: %s',allV) end return endThen if you specify defaults.trainRatio = 1; defaults.valRatio = 0; defaults.testRatio = 0; Then problem solved... > Domains=95 > perccamp=20; > Gen1 = ceil(rand(Nexp,Npos)*Domains); > numtest =round((Nexp*perccamp)./100); > datiinput=randperm(96); > test= Gen1(datiinput(1:numtest),:); > train = Gen1(datiinput(numtest+1:Nexp),:); > trainp= train(:,1:Npos*Domains) > traint=train(:,Npos*Domains+1) > testp=test(:,1:Npos*Domains) > testt=test(:,Npos*Domains+1) > net= newff(p',t',nn); > > but i don't know how to train the net with only the testset > > Any suggestions?
From: Davide De March on 21 May 2010 05:09 "droulias Roulias" <droulias(a)mech.upatras.gr> wrote in message <ht5hmg$7un$1(a)fred.mathworks.com>... > "Davide De March" <davidedemarch(a)unive.it> wrote in message <hs11hg$rfe$1(a)fred.mathworks.com>... > > i'm Working on modeling very high dimensional data with very few observation, and of course there's no way to obtain a good model in prediction, but i'd like to implement a new approach for assessing neural netowork but i really need a way not to divide the set of dat in training - validation -test, but only > > training and use the test set for detect the best network in prediction. > > > > how can i set the parameter in newff for exclude the validation set? > > > > i tried with: > > > > net.divideParam.trainRatio = 0.8; > > net.divideParam.testRatio = 0.2; > > > > but it doesn't work. > > I also split randomly my initial data set in 2 different sets of 80% of data for training and 20% for test as follows: > > > > Nexp = 96; > > Npos = 4 > > > > Hi > > Matlab uses a default function that divides the given training examples into "training" "validation" and "testing", dividerand.m. at nnet\nnet\nn\format you will find(hopefully) the specified file. Open it with an editor and change the ratio values at Function info category > > if ischar(allV) > switch (allV) > case 'name' > trainV = 'Random Indices'; > case 'fpdefaults' > defaults = struct; > defaults.trainRatio = 0.6; > defaults.valRatio = 0.2; > defaults.testRatio = 0.2; > trainV = defaults; > otherwise > error('NNET:Arguments','Unrecognized string: %s',allV) > end > return > endThen > > if you specify > > defaults.trainRatio = 1; > defaults.valRatio = 0; > defaults.testRatio = 0; > > Then problem solved... > Thank you Droulias, i'will try it soon... does it works, in your opinion, also if i will split as follows? defaults.trainRatio = 0.8; defaults.valRatio = 0.2; regards D.
|
Pages: 1 Prev: xcorr for longer sequences Next: Error in Matlab communication with Com ports |