2013-10-24 2 views
2

프로젝트 중 하나에서 Encog를 사용하고 있는데 One-Of 클래스를 취소하는 동안 멈추었습니다. 필드의 정규화 작업 중 하나는 NormalizationAction.OneOf이며 세 개의 출력이 있습니다. 내가 평가할 때, 나는 예측 된 가치를 해독하고 싶다. 해독하는 방법 ...?Encog One of - 디코드

var eq = new Encog.MathUtil.Equilateral(classCount, normalizationHigh, normalizationLow); 
var predictedClassInt = eq.Decode(output); 

위 코드는 등용입니다. One-Of에서 어떻게 동일한 작업을 수행 할 수 있습니까?

감사 Kans 여기

답변

5

은 하나의 - N 부호화 복호화 클래스 (C에서) 코드 샘플이다.

var outputIndex = EngineArray.MaxIndex (출력);

var classOutput = analyst.Script.Normalize.NormalizedFields [인덱스] .Classes [outputIndex] .Name;

수단, 당신은 최대 값 (The Winner)을 가지고 출력 배열의 요소는 찾아보십시오 우선 집 Network.Compute()를 사용하여 출력 배열을 얻을. 그런 다음 해당 색인과 분석가 정보를 사용하여 클래스 이름을 가져올 수 있습니다.

분석가 클래스를 사용할 수 있습니다. 분석가 파일을 저장 한 경우 다음을 사용하여 메모리에로드 할 수 있습니다.

var analyst = new EncogAnalyst();

analyst.Load (AnalystFilePath.ToString());