Documentation / User's manual in C++ :
This method is called when instead of having a list of input parameters (in terms of stochastic distribution) that one
would like to transform into a design-of-experiments, the user has a dataset, made out of a very large number of points. In this case,
it is possible, using the TNeuralGas
class, to create sub-sample of points that would be
representative of the complete provided-set, based on a NeuralGas algorithm. This might be useful in order to test the
output of long and complicated codes or computations without leaving aside a possible area of the input parameter
values.
Figure III.16 shows the effect of the reduction of the sample in the simple case of a
two-dimensional plane, when considering the "geyser.dat" file and its sub-sample of 50 points.
Figure III.16. Example of a dataset reduction (the geyser one) using the NeuralGas algorithm, to go from 272 points (left) to 50 one (right)
Here is an example of how to use the neuralgas algorithm to reduce a database.
TCanvas *c = new TCanvas("Can","Can",10,32,1300,600);
c->Divide(2,1);
TDataServer *tdsGeyser = new TDataServer("tdsgeyser", "Neural Gas for Geyser");
tdsGeyser->fileDataRead("geyser.dat");
TNeuralGas * tvq = new TNeuralGas(tdsGeyser,"", 50);
tvq->setDrawProgressBar(kFALSE);
TDataServer *tdsng = tvq->getSubSample("loop=20");
c->cd(1);
tdsGeyser->draw("x2:x1");
((TH2F*)gPad->GetPrimitive("__tdshisto__0"))->SetTitle("Geyser, 272 points");
c->cd(2);
tdsng->draw("x2:x1");
((TH2F*)gPad->GetPrimitive("__tdshisto__0"))->SetTitle("VQ, 50 points");
Construction of the plot
Creation of | |
Construction of the neuralgas object from the provided database | |
Get the sub-sample as a new dataserver, after looping 20 the algorithm | |
Access the latest histogram drawn on current pad, to change its title |