Encog:如果没有理想数据,我该如何计算?

时间:2017-07-03 15:45:43

标签: machine-learning neural-network artificial-intelligence encog

以下是我的代码示例,仅用于解释我的问题。 (我的代码不是XOR示例,它有更多数据):

public static double XOR_INPUT[][] = { { 0.0, 0.0 }, { 1.0, 0.0 }, { 0.0, 1.0 }, { 1.0, 1.0 } };

public static double XOR_IDEAL[][] = { { 0.0 }, { 1.0 }, { 1.0 }, { 0.0 } };

...

MLDataSet trainingSet = new BasicMLDataSet(XOR_INPUT, XOR_IDEAL);

...

for(MLDataPair pair: trainingSet ) {
      final MLData output = network.compute(pair.getInput());
      System.out.println(pair.getInput().getData(0) + "," + pair.getInput().getData(1)
          + ", actual=" + output.getData(0) + ",ideal=" + pair.getIdeal().getData(0));
    }

在评估情况下(我知道理想的输出),这很好。

但在实际情况下,我的神经网络经过培训,当我不知道理想输出时:在这种情况下,方法是什么?我是否必须"化妆"理想的数据?

这个计算可以通过工作台进行吗?

1 个答案:

答案 0 :(得分:0)

注意在查询输出时,上面的循环只使用pair.getInput()。这只是数据集的输入一半,您不需要提供理想/预期。以下代码显示了如何在没有理想值的情况下执行此操作。只需将输入包装在BasicMLData对象中就可以了:

    System.out.println("Neural Network Results:");
    for(int i=0;i<XOR_INPUT.length;i++ ) {
        MLData inputData = new BasicMLData(XOR_INPUT[i]);
        final MLData output = network.compute(inputData);
        System.out.println(inputData
                + ":" + output.toString());
    }