public RankingEvaluator(IHostEnvironment env, RankingEvaluatorOptions options) : base(env, LoadName) { // REVIEW: What kind of checking should be applied to labelGains? // add the setter to utils here if (options.DcgTruncationLevel <= 0) { throw Host.ExceptUserArg(nameof(options.DcgTruncationLevel), "DCG Truncation Level must be greater than 0"); } Host.CheckUserArg(options.LabelGains != null, nameof(options.LabelGains), "Label gains cannot be null"); _truncationLevel = options.DcgTruncationLevel; _groupSummary = options.OutputGroupSummary; var labelGains = new List <Double>(); string[] gains = options.LabelGains.Split(','); for (int i = 0; i < gains.Length; i++) { Double gain; if (!Double.TryParse(gains[i], out gain)) { throw Host.ExceptUserArg(nameof(options.LabelGains), "Label Gains must be of floating or integral type"); } labelGains.Add(gain); } _labelGains = labelGains.ToArray(); }
public RankingMamlEvaluator(IHostEnvironment env, Arguments args) : base(args, env, AnnotationUtils.Const.ScoreColumnKind.Ranking, "RankerMamlEvaluator") { Host.CheckValue(args, nameof(args)); Utils.CheckOptionalUserDirectory(args.GroupSummaryFilename, nameof(args.GroupSummaryFilename)); var evalOpts = new RankingEvaluatorOptions(); evalOpts.DcgTruncationLevel = args.DcgTruncationLevel; evalOpts.LabelGains = args.LabelGains; evalOpts.OutputGroupSummary = !string.IsNullOrEmpty(args.GroupSummaryFilename); _evaluator = new RankingEvaluator(Host, evalOpts); _groupSummaryFilename = args.GroupSummaryFilename; _groupIdCol = args.GroupIdColumn; }