2015-01-08 2 views
-3

이 코드 부분은 Infer.NET 라이브러리의 Learners 사용과 관련하여 this tutorial에서 가져온 것입니다. 기계 학습을 위해 사용할 계획이지만 불행히도이 코드 조각을 얻을 수 없습니다. 제발 도와주세요.C# 코드의이 부분을 이해할 수 없습니다.

/// <summary> 
/// A mapping for the Bayes Point Machine classifier tutorial. 
/// </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" }; 
    } 
} 

감사합니다.

+1

정확하게 이해하지 못하는 부분은 무엇입니까? – Vladimirs

답변

2

유일한 원격으로 복잡 비트는 yield return입니다 :

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; 
} 
0

이것은 IClassifierMapping 인터페이스를 구현하는 매핑 클래스를 생성한다 :

public IEnumerable<int> GetInstances(IList<Vector> featureVectors) 
{ 
    for (int instance = 0; instance < featureVectors.Count; instance++) 
    { 
     yield return instance; 
    } 
} 

는로 대체 될 수있다. 여기서 볼 수 있듯이

http://research.microsoft.com/en-us/um/cambridge/projects/infernet/docs/Infer.NET%20Learners%20-%20Bayes%20Point%20Machine%20classifiers%20-%20API%20-%20Mappings%20-%20Standard%20Data%20Format%20Mapping.aspx 

은 다른 매핑 인터페이스가 있습니다.

http://research.microsoft.com/en-us/um/cambridge/projects/infernet/docs/Infer.NET%20Learners%20-%20Bayes%20Point%20Machine%20classifiers%20-%20API%20-%20Mappings.aspx 

이 매핑 클래스를 사용하면 이제 베이 즈 포인트 머신 분류자를 만들 수 있습니다.

코드의 복잡도에 관해서는 westons 대답을 볼 수 있습니다.

관련 문제