private IEnumerable <KeyValuePair <RoleMappedSchema.ColumnRole, string> > GetColumnRoles( RoleMappedSchema testSchema, Schema scoredSchema) { switch (PredictionKind) { case PredictionKind.BinaryClassification: yield return(RoleMappedSchema.CreatePair(RoleMappedSchema.ColumnRole.Label, testSchema.Label.Value.Name)); var scoreCol = EvaluateUtils.GetScoreColumn(Host, scoredSchema, null, nameof(BinaryClassifierMamlEvaluator.ArgumentsBase.ScoreColumn), MetadataUtils.Const.ScoreColumnKind.BinaryClassification); yield return(RoleMappedSchema.CreatePair(MetadataUtils.Const.ScoreValueKind.Score, scoreCol.Name)); // Get the optional probability column. var probCol = EvaluateUtils.GetOptAuxScoreColumn(Host, scoredSchema, null, nameof(BinaryClassifierMamlEvaluator.Arguments.ProbabilityColumn), scoreCol.Index, MetadataUtils.Const.ScoreValueKind.Probability, NumberType.Float.Equals); if (probCol.HasValue) { yield return(RoleMappedSchema.CreatePair(MetadataUtils.Const.ScoreValueKind.Probability, probCol.Value.Name)); } yield break; case PredictionKind.Regression: yield return(RoleMappedSchema.CreatePair(RoleMappedSchema.ColumnRole.Label, testSchema.Label.Value.Name)); scoreCol = EvaluateUtils.GetScoreColumn(Host, scoredSchema, null, nameof(RegressionMamlEvaluator.Arguments.ScoreColumn), MetadataUtils.Const.ScoreColumnKind.Regression); yield return(RoleMappedSchema.CreatePair(MetadataUtils.Const.ScoreValueKind.Score, scoreCol.Name)); yield break; case PredictionKind.MultiClassClassification: yield return(RoleMappedSchema.CreatePair(RoleMappedSchema.ColumnRole.Label, testSchema.Label.Value.Name)); scoreCol = EvaluateUtils.GetScoreColumn(Host, scoredSchema, null, nameof(MultiClassMamlEvaluator.Arguments.ScoreColumn), MetadataUtils.Const.ScoreColumnKind.MultiClassClassification); yield return(RoleMappedSchema.CreatePair(MetadataUtils.Const.ScoreValueKind.Score, scoreCol.Name)); yield break; default: throw Host.Except("Unrecognized prediction kind '{0}'", PredictionKind); } }