private IEnumerable <KeyValuePair <RoleMappedSchema.ColumnRole, string> > GetColumnRoles(
            RoleMappedSchema testSchema, ISchema scoredSchema)
        {
            switch (PredictionKind)
            {
            case PredictionKind.BinaryClassification:
                yield return(RoleMappedSchema.CreatePair(RoleMappedSchema.ColumnRole.Label, testSchema.Label.Name));

                var scoreInfo = EvaluateUtils.GetScoreColumnInfo(Host, scoredSchema, null, nameof(BinaryClassifierMamlEvaluator.ArgumentsBase.ScoreColumn),
                                                                 MetadataUtils.Const.ScoreColumnKind.BinaryClassification);
                yield return(RoleMappedSchema.CreatePair(MetadataUtils.Const.ScoreValueKind.Score, scoreInfo.Name));

                // Get the optional probability column.
                var probInfo = EvaluateUtils.GetOptAuxScoreColumnInfo(Host, scoredSchema, null, nameof(BinaryClassifierMamlEvaluator.Arguments.ProbabilityColumn),
                                                                      scoreInfo.Index, MetadataUtils.Const.ScoreValueKind.Probability, t => t == NumberType.Float);
                if (probInfo != null)
                {
                    yield return(RoleMappedSchema.CreatePair(MetadataUtils.Const.ScoreValueKind.Probability, probInfo.Name));
                }
                yield break;

            case PredictionKind.Regression:
                yield return(RoleMappedSchema.CreatePair(RoleMappedSchema.ColumnRole.Label, testSchema.Label.Name));

                scoreInfo = EvaluateUtils.GetScoreColumnInfo(Host, scoredSchema, null, nameof(RegressionMamlEvaluator.Arguments.ScoreColumn),
                                                             MetadataUtils.Const.ScoreColumnKind.Regression);
                yield return(RoleMappedSchema.CreatePair(MetadataUtils.Const.ScoreValueKind.Score, scoreInfo.Name));

                yield break;

            case PredictionKind.MultiClassClassification:
                yield return(RoleMappedSchema.CreatePair(RoleMappedSchema.ColumnRole.Label, testSchema.Label.Name));

                scoreInfo = EvaluateUtils.GetScoreColumnInfo(Host, scoredSchema, null, nameof(MultiClassMamlEvaluator.Arguments.ScoreColumn),
                                                             MetadataUtils.Const.ScoreColumnKind.MultiClassClassification);
                yield return(RoleMappedSchema.CreatePair(MetadataUtils.Const.ScoreValueKind.Score, scoreInfo.Name));

                yield break;

            default:
                throw Host.Except("Unrecognized prediction kind '{0}'", PredictionKind);
            }
        }