問題は、使用しているデータ セットが小さすぎる可能性があります。10 個の変数があり、各変数に 10 個の値の範囲があるとします。これらの変数には 10^10 通りの構成が可能です。考えられるすべての構成をカバーするどころか、データ セットがこれほど大きくなる可能性はほとんどありません。秘訣は、変数を最も関連性の高いものに絞り込んで、この大きな潜在的な検索スペースを回避することです。
2 番目の問題は、変数の特定の組み合わせが他のものより重要である可能性があることです。
J48 アルゴリズムは、ツリーの各レベルでエントロピーを使用して、最も関連性の高い変数を見つけようとします。ツリーを通る各パスは、AND 条件として考えることができます: V1==a & V2==b ...
これは、関節相互作用による重要性をカバーしています。しかし、結果が A&B&C OR W&X&Y の結果である場合はどうなるでしょうか? J48 アルゴリズムは 1 つだけを検出し、選択された最初の変数が単独で考慮された場合に最も全体的な重要性を持つものになります。
したがって、あなたの質問に答えるには、「一般的な」母集団で最も一般的な変数構成をカバーするトレーニング セットを見つけるだけでなく、これらのトレーニング ケースを忠実に表現するアルゴリズムを見つける必要があります。忠実な意味は、一般的に目に見えないケースに適用されます.
それは簡単な作業ではありません。スポーツベッティングには多くの人々と多くのお金が関わっています。適切なトレーニング セットを選択するのと同じくらい簡単だった場合は、今では確実に見つかっているはずです。
編集:
コメントで、適切なアルゴリズムを見つける方法を尋ねられました。答えは、干し草の山から針を見つけるのと同じです。決まったルールはありません。運が良ければ偶然出くわすかもしれませんが、広い検索スペースでは、あるかどうかはわかりません。これは、非常に複雑な探索空間で最適点を見つけるのと同じ問題です。
短期的な答えは、
アルゴリズムが実際に達成できることを考えてみてください。J48 (および同様の) アルゴリズムは、結果に対する変数の影響がよく知られており、階層に従う分類に最適です。花の分類は、それが優れている可能性が高い一例です。
トレーニング セットに対してモデルをチェックします。トレーニング セットでうまく機能しない場合は、目に見えないデータでパフォーマンスが低下する可能性があります。一般に、トレーニングに対するモデルのパフォーマンスは、目に見えないデータに対するパフォーマンスを超えると予想する必要があります。
- アルゴリズムは、見たことのないデータでテストする必要があります。トレーニングセットに対するテストは、簡単な排除テストですが、過信につながる可能性があります。
- テスト用にデータの一部を予約します。 Weka はこれを行う方法を提供します。最良のシナリオは、1 つ (Leave On Out アプローチ) を除くすべてのケースでモデルを構築し、これらでモデルが平均してどのように機能するかを確認することです。
ただし、これは、手元のデータが何らかの形で偏っていないことを前提としています。
2 つ目の落とし穴は、テスト結果によってモデルの作成方法に偏りが生じることです。たとえば、許容できるテスト応答が得られるまで、さまざまなモデル パラメータを試します。J48 では、このバイアスを忍び込ませるのは簡単ではありませんが、忍び寄る場合は、テスト セットを補助トレーニング セットとして使用したことになります。
- さらにデータを収集し続けます。可能な限りテストします。上記のすべての後でも、将来のケースに対するパフォーマンスを観察できない限り、アルゴリズムがどれほど有用かはわかりません。良いモデルのように見えても動作がおかしくなり始めたら、設計図に戻る時です。
驚くべきことに、将来のデータでモデルを検証する必要性を認識していない分野 (主にソフト サイエンス) が多数あります。しかし、これは他の場所でよりよく議論される問題です。
これはあなたが探している答えではないかもしれませんが、それが現状です。
要約すれば、
- トレーニング データ セットは、「重要な」変数構成をカバーする必要があります
- 目に見えないデータに対してモデルを検証する必要があります
(1) を特定し、(2) を実行するのは難しい作業です。従うべきカットアンドドライのレシピはありません。