Encog One Of - декодировать

Я использую Encog в одном из проектов, и я застрял при расшифровке класса One-Of. Одно из действий по нормализации поля — это NormalizationAction.OneOf, которое имеет три выхода. Когда я оцениваю, я хочу декодировать предсказанное значение. как расшифровать...?

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

Приведенный выше код предназначен для равностороннего. Как я могу сделать то же самое для One-Of.

Спасибо, Канс


person kans    schedule 24.10.2013    source источник


Ответы (1)


Вот пример кода (на C#) для декодирования одного из n закодированных классов.

var outputIndex = EngineArray.MaxIndex(выход);

var classOutput = analytic.Script.Normalize.NormalizedFields[index].Classes[outputIndex].Name;

Это означает, что вы сначала получаете выходной массив, используя Network.Compute(). Затем вы пытаетесь выяснить, какой элемент в выходном массиве имеет максимальное значение (The Winner). Затем вы можете использовать этот индекс и информацию аналитика, чтобы получить имя класса.

Таким образом, вы можете использовать свой класс аналитика. Если вы сохранили файл аналитики, вы можете загрузить его в память, используя

вар аналитик = новый EncogAnalyst();

аналитик.Загрузить(AnalystFilePath.ToString());

person Abhishek Kumar    schedule 04.12.2013