public ClassifierBuildResult Build(TextDocument[] trainingSet, ClassifierParams classifierParams) { var targetTag = classifierParams.TargetTag; var featuredWords = featureSelector.Select(trainingSet, classifierParams.FeatureSelectionParams).FeaturedWords.Select(x => x.Word).ToArray(); var trainingExamples = trainingSet.Select(textDocument => textDocumentConverter.ConvertToTrainingExample(textDocument, targetTag, featuredWords)).ToArray(); var oversampledExamples = sampler.OverSample(trainingExamples, classifierParams.SamplingParams); var algorithmBuildResult = classificationAlgorithmBuilder.Build(oversampledExamples, classifierParams.ClassificationAlgorithmParams); var result = new SimpleClassifier(algorithmBuildResult.ClassificationAlgorithm, textDocumentConverter, targetTag, featuredWords); return ClassifierBuildResult.Create(result, algorithmBuildResult.Error); }
private WeightedClassifier Build(TextDocument[] trainingSet, BaggingParams baggingParams, ClassifierParams classifierParams) { var underSampledSet = baggingParams.NeedUnderSampling ? trainingSet.RandomShuffle().Take(trainingSet.Length*85/100).ToArray() : trainingSet; return new WeightedClassifier { Classifier = classifierBuilder.Build(underSampledSet, classifierParams).Classifier, Weight = 1.0 }; }
public ClassifierBuildResult Build(TextDocument[] trainingSet, ClassifierParams classifierParams) { return builders.First(x => x.Type == classifierParams.Type).Build(trainingSet, classifierParams); }