public static CommonOutputs.MulticlassClassificationOutput CreateMultiClassPipelineEnsemble(IHostEnvironment env, PipelineClassifierInput input) { Contracts.CheckValue(env, nameof(env)); var host = env.Register("CombineModels"); host.CheckValue(input, nameof(input)); host.CheckNonEmpty(input.Models, nameof(input.Models)); IOutputCombiner <VBuffer <Single> > combiner; switch (input.ModelCombiner) { case ClassifierCombiner.Median: combiner = new MultiMedian(host, new MultiMedian.Arguments() { Normalize = true }); break; case ClassifierCombiner.Average: combiner = new MultiAverage(host, new MultiAverage.Arguments() { Normalize = true }); break; case ClassifierCombiner.Vote: combiner = new MultiVoting(host); break; default: throw host.Except("Unknown combiner kind"); } var ensemble = SchemaBindablePipelineEnsembleBase.Create(host, input.Models, combiner, MetadataUtils.Const.ScoreColumnKind.MultiClassClassification); return(CreatePipelineEnsemble <CommonOutputs.MulticlassClassificationOutput>(host, input.Models, ensemble)); }
public static CommonOutputs.BinaryClassificationOutput CreateBinaryPipelineEnsemble(IHostEnvironment env, PipelineClassifierInput input) { Contracts.CheckValue(env, nameof(env)); var host = env.Register("CombineModels"); host.CheckValue(input, nameof(input)); host.CheckNonEmpty(input.Models, nameof(input.Models)); IBinaryOutputCombiner combiner; switch (input.ModelCombiner) { case ClassifierCombiner.Median: combiner = new Median(host); break; case ClassifierCombiner.Average: combiner = new Average(host); break; case ClassifierCombiner.Vote: combiner = new Voting(host); break; default: throw host.Except("Unknown combiner kind"); } var ensemble = SchemaBindablePipelineEnsembleBase.Create(host, input.Models, combiner, AnnotationUtils.Const.ScoreColumnKind.BinaryClassification); return(CreatePipelineEnsemble <CommonOutputs.BinaryClassificationOutput>(host, input.Models, ensemble)); }