1

私のスレッドを読んでくれてありがとう。

ニューラル ネットワークの入力データの書式設定/正規化に関する以前の投稿をいくつか読みましたが、クエリに具体的に対処するものを見つけることができません。長文失礼します。

競馬データを分析するための放射基底関数ネットワークを構築しようとしています。これは以前にも行われたことがあると思いますが、私が持っているデータは「特別」であり、レース/スポーツベッティング/プログラミングに強い関心があるので、試してみたいと思います!

RBFN 自体の原則は理解していると思いますが、入力データの正規化/フォーマット/スケーリングを理解するのに苦労しているため、ネットワークに対して「賢明な方法」で提示されます。出力目標値を定式化する必要があります。

たとえば、私のデータでは、馬が現在走っているレースのクラスを前のレースと比較して、-5 から +5 の間の値を持つことができる「クラス変更」を調べます。これらを -1 から +1 の間で再スケーリングする必要があると予想していますが (そうですか?!)、他のどの値よりも 1、0、または -1 のクラス変更を行うランナーが多いことに気付きました。 「過剰表現」。それは単に「データが来る方法」であるため、上位/下位クラスの変更についてさらにデータを収集することはできません。スケーリング後にデータをそのまま使用するのが最善でしょうか、それとも極端な値などをトリミングする必要がありますか?

同様に、「最後の実行からの日数」などの「継続的な」入力もあります。1 から約 1000 までの値を持つことができますが、10 から 40 の範囲の値が圧倒的に優勢です。これらの値を 0 から 1 の間にスケーリングしようとしましたが、スケーリングの前に最も極端な値をトリミングしても、特定の範囲の巨大な表現が残ってしまいます - これは私に問題を引き起こしますか? このような問題は通常どのように処理されますか?

最後に、トレーニングの「ターゲット」値をネットワークに提示する方法を理解するのに苦労しています。私の既存の結果データには、「勝敗」(0 または 1?) と、ランナーが勝ったか負けたオッズがあります。「勝ち/負け」のみを使用すると、すべての勝ちが処理され、実際にはそうではない場合でも同じように負けます。すべての小さな勝者を無視し、10 対 1 のショットを選択することで非常に収益性の高いネットワークに非常に満足します。 . 同様に、ネットワークが 20 対 1 のショットで「負けた」ことは許されますが、2/5 で賭けに負けると悪い損失になります。上記の問題を解決するために、勝者の結果 (+1 * オッズ) と敗者の結果 (-1 / オッズ) を作成することを検討しましたが、これは、「不連続性」があるため、結果が連続関数ではないことを意味します。ショートプライスの勝者とショートプライスの敗者の間。

これをカバーするために 2 つのアウトプットが必要ですか? 1 つはベット/ノー ベット用、もう 1 つは「ステーク」用ですか?

大量の質問と長い投稿で申し訳ありませんが、これは私が正しい軌道に乗るのに本当に役立ちます.

誰でも私に提供できる助けをありがとう!

敬具、

ポール

4

1 に答える 1

1

RBFN に付属のドキュメントは、これらの質問のいくつかに答える良い出発点です。データのトリミング、別名「クランプ」または「winsorizing」は、同様のデータに使用するものです。たとえば、馬の「前回の走行からの日数」は、わずか 1 日から数年までさまざまですが、20 日から 30 日程度が中心です。一部の専門家は、たとえば "> 63 =1 else 0" のような指標変数を持つことができるように、「呪文」を示すために 63 日という数字を使用します。1 つの手がかりは、任意の変数の上位または下位 5% などの異常値を見て、これらをクランプすることです。どこでもオッズ/配当を使用する場合は、必ず確率、つまり 1/(オッズ+1) を使用してください。有用なアイデアは、これらを 100% に正規化することです。

于 2014-11-09T01:40:13.160 に答える