Программа прогнозирования футбола encog :Непоследовательные прогнозы

Я делаю программу, которая предсказывает исход футбольного матча, используя encog. Я создал нейронную сеть, обучил ее на данных 90 совпадений методом обучения устойчивому распространению. Я отметил результаты матча как 1 за победу дома, 0 за ничью и -1 за победу на выезде.

Проблема в предсказании. Иногда я получаю показатель успеха 50%, а в другой раз я получаю всего 33%. Это похоже на использование случайной функции. Что я заметил, так это то, что почти всегда наиболее предсказуемый результат составляет 1 (около 70% ). Я попытался изменить количество скрытых слоев, количество тренировок, но безуспешно, оно все еще колеблется. Может ли кто-нибудь помочь мне или указать мне правильное направление, если я делаю что-то неправильно.

Вот код нейронной сети. Я получаю данные обучения и данные прогнозирования из базы данных.

Predictor(NeuralDataSet trainingData){
    trainingSet = trainingData;
    network = new BasicNetwork();
    network.addLayer(new BasicLayer(16));
    network.addLayer(new BasicLayer(3));
    network.addLayer(new BasicLayer(1));
    network.getStructure().finalizeStructure();
    network.reset();
}

Обучение

public void train(int epoch){
    int i =0;
    final Train train =new ResilientPropagation(network,trainingSet);
    while(i<=epoch){
        train.iteration();
        i++;
    }

}

Предсказание

public void successRate(NeuralDataSet trainingData){
    int counter = 0;
    int correct = 0;
    int home=0;
    int away=0;
    int draw=0;
    for(MLDataPair pair: trainingData ) {
        final MLData output = network.compute(pair.getInput());
        if(pair.getIdeal().getData(0)==Math.round(output.getData(0)))
            correct++;
        counter++;
    }
    System.out.println((double)correct/(double)counter);
}

1. )Я передаю данные в нейронную сеть 1000. Сейчас тестирую больше/меньше, так как ситуация стала лучше.

2,3.)У меня есть 16 входных параметров. Они состоят из :очков домашней команды, домашних побед, ничьих, поражений домашней команды, общего количества выигранных, проигранных, ничьих и формы (прироста очков в последних 5 матчах ). Те же данные относятся к команде гостей, только вместо домашних побед, ничьих, поражений хозяев. используется гостевая команда. Я попробую с разными тренировочными данными.

9
задан user1533166 16 August 2012 в 04:26
поделиться