protected override void Train(IDataset ds)
{
if (!(ds.nSamples() > 0))
throw new Exception("nSamples of IDataset must be > 0");
if (!(ds.nFeatures() > 0))
throw new Exception("nFeatures of IDataset must be > 0");
if (c2i.Length() < 1)
{
Intarray raw_classes = new Intarray();
raw_classes.ReserveTo(ds.nSamples());
for (int i = 0; i < ds.nSamples(); i++)
raw_classes.Push(ds.Cls(i));
ClassMap(c2i, i2c, raw_classes);
/*Intarray classes = new Intarray();
ctranslate(classes, raw_classes, c2i);*/
//debugf("info","[mapped %d to %d classes]\n",c2i.length(),i2c.length());
}
TranslatedDataset mds = new TranslatedDataset(ds, c2i);
TrainDense(mds);
}