这段代码摘自这个教程,内容关于如何在Infer.NET库中使用学习器。我计划将其用于机器学习,但遗憾的是我无法理解这段代码片段。请帮助我解决这个问题。
/// <summary>/// Bayes Point Machine分类器教程的映射。/// </summary>public class ClassifierMapping : IClassifierMapping<IList<Vector>, int, IList<string>, string, Vector>{ public IEnumerable<int> GetInstances(IList<Vector> featureVectors) { for (int instance = 0; instance < featureVectors.Count; instance++) { yield return instance; } } public Vector GetFeatures(int instance, IList<Vector> featureVectors) { return featureVectors[instance]; } public string GetLabel( int instance, IList<Vector> featureVectors, IList<string> labels) { return labels[instance]; } public IEnumerable<string> GetClassLabels( IList<Vector> featureVectors = null, IList<string> labels = null) { return new[] { "Female", "Male" }; }}
提前感谢您!
回答:
唯一稍微复杂的部分是yield return
:
public IEnumerable<int> GetInstances(IList<Vector> featureVectors){ for (int instance = 0; instance < featureVectors.Count; instance++) { yield return instance; }}
可以替换为:
public IEnumerable<int> GetInstances(IList<Vector> featureVectors){ var result = new List<int>(); for (int instance = 0; instance < featureVectors.Count; instance++) { result.Add(instance); } return result;}