저는 컴퓨터 학습과 Encog에 처음으로 익숙하지만, Encog가 예제에서 일관된 결과를 제공하여 적어도 Encog에 대해 더 쉽게 배울 수있을 것으로 기대했을 것입니다. 나에게 Encoge는 실행될 때마다 다른 방향성 결과를 줄 것이다.Encog Neural Network는 항상 일관성없는 결과를 나타냅니다.
이유가 무엇인지 더 잘 이해할 수 있습니까? 아래는 사용되는 수정 된 샘플 코드입니다. 올바른
방향 : 올바른 10/25
방향 : 올바른 8/25
방향 : 6/25
... 그것은 신경 네트워크에 대해 꽤 흔한 일
public class MainPredict {
public static void main(String[] args) {
Co.println("--> Main Predict");
final MarketLoader marketLoader = new YahooFinanceLoader();
final MarketMLDataSet marketDataSet = new MarketMLDataSet(marketLoader, Config.INPUT_WINDOW, Config.PREDICT_WINDOW);
final MarketDataDescription marketDataDescription = new MarketDataDescription(Config.TICKER, MarketDataType.adjusted_close, true, true);
marketDataSet.addDescription(marketDataDescription);
Calendar end = new GregorianCalendar();// end today
Calendar begin = (Calendar) end.clone();// begin 30 days ago
begin.add(Calendar.DATE, -60);
end.add(Calendar.DATE, -60);
begin.add(Calendar.YEAR, -2);
marketDataSet.load(begin.getTime(), end.getTime());
marketDataSet.generate();
BasicNetwork basicNetwork = EncogUtility.simpleFeedForward(marketDataSet.getInputSize(), Config.HIDDEN1_COUNT, Config.HIDDEN2_COUNT, marketDataSet.getIdealSize(), true);
ResilientPropagation resilientPropagation = new ResilientPropagation(basicNetwork, marketDataSet);
resilientPropagation.setRPROPType(RPROPType.iRPROPp);
// EncogUtility.trainToError(resilientPropagation, 0.00008);
EncogUtility.trainConsole(basicNetwork, marketDataSet, 3);
System.out.println("Final Error: " + basicNetwork.calculateError(marketDataSet));
MarketEvaluate.evaluate(basicNetwork);
Encog.getInstance().shutdown();
}
}