トレーディングにおける機械学習:理論、モデル、実践、アルゴトレーディング - ページ 3272

 
fxsaber #:

私は自分の仕事のためにこれを作り、動作するコードを共有した。必要な人は見てね。

最終的なコードはどこで見ることができますか?

 

外れ値」を扱ったことがある人はいるだろうか?エラーとしての外れ値のことではなく、稀な事象のことです。

おかしな話だが、いくつかのサンプル列では、予測変数の50%以上に外れ値が記録されていることが判明した......。

このような外れ値がモデルに入ってくるのだろうか?

つまり、このことが重要なのはNSだけではないようだ。

 
fxsaber #:

私は比較をするのではなく、それぞれのケースで誰もが測定できるコードを提供する。

文字列の長さ100はパターンの長さです。それ以上は必要ないでしょう。

15000サンプルは、相関行列の2次関数の大きさのため、メモリが制限されます。サンプル数は多ければ多いほどいい。だから私は、100万個のサンプルが存在するような自作プログラムを書いたのだ。

客観的な比較に費やす意欲も時間もない。私は自分の仕事のためにこれを作り、作業コードを共有した。必要な人は誰でも見てくれるだろう。

加速度-出力行列のバリエーションはucharに格納する。原則として、1%刻みでパーセンテージを変えて何かを見る。uchar - +- 128まで。uchar用に自己設計を修正することができる。同じメモリで行列の合計を8倍にできる。

 
Aleksey Vyazmikin #:

外れ値」を扱ったことがある人はいるだろうか?バグとしての外れ値のことではなく、稀な出来事のことです。

面白いことに、サンプルのいくつかの文字列では、予測変数の50%以上で外れ値が固定されていることが判明しました...。

これらの外れ値がモデルに含まれるかどうかは、結局のところ、かなり意欲的である。

ということは、これが重要なのはNSだけではなさそうだ......。

白鳥と黒鳥fxsaberがブログに書いていた。私は、数年に一度、一週間ほど取引をしている。一般的に、専門家は座って動きを待つ。しかし、これはテスターでの理想的なパフォーマンスです。実際の生活では、スリッページ(移動中に巨大なスリッページが発生する)がすべてを台無しにする可能性がある。

 
Forester #:

白鳥/黒鳥......。fxsaberは彼のブログでそれらについて書いた。多くのバリエーションの中で、私は次のようなものを持っていた:数年ごとに約1週間の取引。一般的に、専門家は座って動きを待つ。しかし、これはテスターで理想的なパフォーマンスです。実際の生活では、スリッページ(彼らは移動中に巨大である)がすべてを台無しにすることができます。

私はサンプルから外れ値が多いラインを削除してみた。

そして、トレーニングは激変した。

テストでは平均してプラスで、試験ではほとんどすべてマイナスで、これは100モデル中です。しかし、外れ値の除去によって結果が変わりました。

これが規則性であるとはまだ言えません。他のサンプルでも確認してみようと思います。

それに、外れ値をどのように判断するのがベストなのかという疑問もまだ残っている。今は、ランクがこの制限を超えない限り、各サイドの最大2.5%を取ることにしている。

 
一般的には、トレーニング後2、3年のサイクルで、モデルが新しいデータから突然パターンを見つけ始めるという感じがする。
 
Aleksey Vyazmikin #:

外れ値が多い行をサンプルから削除してみた。

すると、トレーニングが激変した。

テストでは平均プラス、試験ではほぼすべてマイナスという良い結果が出たとしたら、外れ値の除去で結果が変わりました。テストの結果はかなり悪くなり(平均利益はゼロに近い)、試験では逆に多くのモデルがプラスになりました。

これが規則性であるとはまだ言えませんので、他のサンプルで確認してみます。

それに、異常値をどのように判断するのがベストなのかという疑問もまだ残っている。今は、ランクがこの制限を超えない限り、各サイドの最大2.5%を取ることにしている。

2.5%(またはそれ以外)だけ取ると、外れ値の数が分布に依存することになり、それは正しくない。

100個のプロットで分位数をとり、1%以前と99%以降を削除せず、 1%と99%の値に置き換える方がよい。何も削除してはいけない。

 
fxsaber #:
NumPyはALglibとは異なるアルゴリズムを持っているようだ。しかし、巨大なPythonコミュニティ全体の中で、この問題の研究にそれなりの時間を費やした非常に強力なアルゴリズム研究者がいたことは明らかです。

ソースコードは公開されているので、見てみるといい。相関を計算する関数の 右側に[source]があり、クリックするとコードが 表示されます。我々は2885-2907行に注目しています。関数の2889では2889行目では289行目ではのののののののののののこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこのこの立てよ.をクリックすると、共分散関数にジャンプします。MQL C-like言語、すべてのC-like言語は~90%似ており、C#、Java、Python、JavaScriptをそれほど問題なく理解できます。

 
СанСаныч Фоменко #:

もし2.5%(またはそれ以外)だけを取るのであれば、削除される数は分布に依存することになり、それは正しくない。

100個のプロットで分位数をとり、1%以前と99%以後は削除せず 1%と99%の値で置き換えるのがよい。何も削除してはいけない。

データのパーセンテージを取るのであって、範囲のパーセンテージを取るのではありません。そのため、データが多い(密集している)場合、範囲スケールでは停止が速くなります。

平均と分散からのジャンプはほとんど効果がないことを示している。

ただ、他の値による置き換えの問題(ただし、定量化のためだけに行った)を探求したところ、確率を考慮して、残りのサブセットからランダムな値で置き換えるというオプションが気に入りました。

 
Aleksey Vyazmikin #:

データのパーセンテージを取るのであって、レンジのパーセンテージを取るのではない。 そのため、データが多い(密集している)場合、レンジスケールでは停止が速くなる。

平均と分散からのジャンプはほとんど効果がないことが示されている。

ただ、他の値による置き換えの問題(ただし、定量化のためだけに行った)を探求したところ、確率を考慮して、残りのサブセットからランダムな値で置き換えるというオプションが気に入りました。

数量は確率です。だから、その範囲に入る確率が1%未満/99%以上、あるいは他の値に入る確率があるデータを削除/置換する。量を切り捨てることはできません。私たちは歪んだ分布や尾を引いた分布を持っています。

彼らは、MOEによるその量の予測として、置換値を取るのが最善であると書いている。しかし、それは私には少しやり過ぎのように思える。