class UniversalClassifier extends AbstractLearner<UniversalClassifierModel> implements Classifier<UniversalClassifierModel> {

    @Override
    public UniversalClassifierModel train(Dataset dataset) {
        NaiveBayesModel nominalModel = null;
        KnnModel numericModel = null;
        DictionaryModel textModel = null;
        if (settings.contains(ClassifierSetting.TEXT)) {
            LOGGER.debug("training text classifier");
            textModel = textClassifier.train(dataset);
        }
        if (settings.contains(ClassifierSetting.KNN)) {
            LOGGER.debug("training knn classifier");
            numericModel = new KnnLearner(new NoNormalizer()).train(dataset);
        }
        if (settings.contains(ClassifierSetting.BAYES)) {
            LOGGER.debug("training bayes classifier");
            nominalModel = new NaiveBayesLearner().train(dataset);
        }
        return new UniversalClassifierModel(nominalModel, numericModel, textModel);
    }

    public  UniversalClassifier();
    public  UniversalClassifier(FeatureSetting featureSetting, ClassifierSetting... settings);

}