您可以通过多种方式完成任务。但是,典型的流程是:
获取您的数据 --> 使用存储在 encog 分析器中的归一化信息对其进行归一化 ---> 创建归一化输入的输入数组 --> 将其传递给经过训练的网络并计算输出(或预测分类问题中的类别)
我已经为这个场景更新了Iris demo(评估阶段)(我在Pluralsight Course中介绍过:
以下是部分代码:
// Evaluating a new data set with no class information
var extraEvaluationSet = EncogUtility.LoadCSV2Memory(Config.ExtraEvaluationFile.ToString(),
network.InputCount, 0, true, CSVFormat.English, false);
int extraFileCount = 0;
using (var file = new System.IO.StreamWriter(Config.ExtraEvaluationFileOutput.ToString()))
{
file.WriteLine("sepal_l,sepal_w,petal_l,petal_w,predicted");
foreach (var item in extraEvaluationSet)
{
//normalize input
double normalized_sepal_l = analyst.Script.Normalize.NormalizedFields[0].Normalize(item.Input[0]);
double normalized_sepal_w = analyst.Script.Normalize.NormalizedFields[1].Normalize(item.Input[1]);
double normalized_petal_l = analyst.Script.Normalize.NormalizedFields[2].Normalize(item.Input[2]);
double normalized_petal_w = analyst.Script.Normalize.NormalizedFields[3].Normalize(item.Input[3]);
double[] inputToNetwork = { normalized_sepal_l, normalized_sepal_w, normalized_petal_l, normalized_petal_w };
count++;
//output
var output = network.Compute(new BasicMLData(inputToNetwork));
int classCount = analyst.Script.Normalize.NormalizedFields[4].Classes.Count;
double normalizationHigh = analyst.Script.Normalize.NormalizedFields[4].NormalizedHigh;
double normalizationLow = analyst.Script.Normalize.NormalizedFields[4].NormalizedLow;
var eq = new Encog.MathUtil.Equilateral(classCount, normalizationHigh, normalizationLow);
var predictedClassInt = eq.Decode(output);
var predictedClass = analyst.Script.Normalize.NormalizedFields[4].Classes[predictedClassInt].Name;
var resultLine = string.Format("{0},{1},{2},{3},{4}", item.Input[0], item.Input[1], item.Input[2], item.Input[3],predictedClass);
file.WriteLine(resultLine);
Console.WriteLine("Count :{0} Properties [{1},{2},{3},{4}] ,Predicted : {5} ",
extraFileCount, item.Input[0], item.Input[1], item.Input[2], item.Input[3], predictedClass);
}
}
演示代码可在以下链接中找到:
http://bit.ly/1GRg0u7(执行前请编辑数据文件夹路径)