public TTarget Predict(IEnumerable <TProperty> properties) { var ladder = new Dictionary <TTarget, double>(); foreach (var weightedModel in weightedModels) { IAdaBootModel <TProperty, TTarget> model = weightedModel.Key; double weight = weightedModel.Value; TTarget classification = model.Classify(properties); ladder.AddOrIncrease(classification, weight, o => o + weight); } TTarget target = ladder.OrderByDescending(o => o.Value).First().Key; return(target); }
private void UpdateModelWeight(IAdaBootModel <TProperty, TTarget> model, double errorRate) { this.weightedModels[model] = Math.Log(1 - errorRate, errorRate); }