9

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 試合で獲得したポイント) で構成されます。同じデータは、ホーム チームのホームの勝ち、引き分け、負けではなく、アウェイ チームのみに当てはまり、アウェイ チームのアウェイの勝ち、引き分け、負けが使用されます。さまざまなトレーニング データで試してみます。

4

1 に答える 1

5

情報が与えられた場合、何が問題なのかを判断するのは困難です。複数の理由が考えられます。しかし、ここにいくつかの潜在的な解決策があります。

1) トレーニング データをニューラル ネットワークに何回フィードしていますか? 通常、ネットワークを収束させるには、トレーニング データを供給する複数のパスを作成する必要があります。特にトレーニング データが 90 個しかない場合は、1 回では不十分です。

2) トレーニング データにはいくつの入力パラメーターがありますか (そしてそれらは何ですか)。通常、隠れ層ノードの数を入力パラメーターの数に調整する必要があります。これには厳密なルールはありませんが、通常、入力パラメーターとして非表示レイヤー ノードの数の少なくとも 2 倍から始めます。

3) 異なるテストデータを選択してみましたか? トレーニング データとテスト データが異なると想定しています。トレーニング データとまったく一致しないなど、選択したテスト データに何か問題がある可能性があります。また、メソッドから信頼できる推定値を取得できない可能性も十分にあります。入力パラメーターは、特定の試合で誰が勝つかを予測するには完全に不十分な場合があります。これがガベージイン、ガベージアウト、コンセプトです。

于 2012-08-16T14:03:54.923 に答える