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

 
mytarmailS:


何が問題なのでしょうか? 助けてください


仕組みはこうです。

test_vec <- numeric() # тут будем хранить показатели теста 


for(i in 151:ln){

print(i)

idx <- (i-150):i

#проводим линейную регрессию для определения правильного соотношения

x <- data[idx, ]

model <- lm(ri ~ si + 0, x)

#вычисляем разницу цен (спред)

spread <- x$ri - coef(model)[[1]] * x$si

#проводим тест Дики-Фуллера на стационарность

test <- adf.test(as.vector(spread), k = 0)

test_vec[i-150] <- test$p.value

}


plot(test_vec, type = 's')

 
アレクセイ・ブルナコフ

まず、R^2 0.55は、「メタ関数」に何らかの小さな関数変換を施すことで現実的に達成できる。もうひとつは、この関数が少し複雑な形をしていることがわかったことです。

そしてもうひとつ、「取る」ことを心がけてください。

rowMeans(df[,1:10])

...

新しい列を10個追加しましたが、nnetには何の変化もなく、結果と学習曲線はほぼ同じで、モデルは同じ予測子を選択しました。

しかし、このツリーはいきなり、より良い結果を出してくれました。森も良くなったが、1本の木が単独でリードしている(疑似r^2=0.39)、新しいデータでガラガラポンしたグラフがこれだ。

ツリーはrowMeans[,1:50]のみを選択し、学習データからその値を記憶しています。つまり、rowMeans[,1:50]とターゲットの間には、非常に近いが非線形の関係があるのである。

しかし、この10個の新しい予測変数のみを残すと、nnetはr^2=0.22となり、こちらも良くなります。

 
Dr.トレーダー

新しい列を10個追加しましたが、nnetでは何も変わりませんでした。結果と学習曲線はほぼ同じで、モデルも同じ予測子を選択します。

しかし、このツリーはいきなり、より良い結果を出してくれました。森も良くなったが、1本の木が単独でリードしている(疑似r^2=0.39)、新しいデータでガラガラポンしたグラフがこれだ。

ツリーはrowMeans[,1:50]のみを選択し、学習データからその値を記憶しています。つまり、rowMeans[,1:50]とターゲットの間には、非常に近いが非線形の関係があるのである。

しかし、この10個の新しい予測変数のみを残すと、nnetはr^2=0.22となり、こちらも良くなります。



まさにその通りです。mean(1:50)です。良い結果が出ています。これから、関数の近似を少し改良してみることにします。もし差し支えなければ、検出された修正とシミュレーション出力の散布図を掲載してください。NS用、ランダムフォレスト用。この後、私も投稿します。非直線性があるはずです。

 

アレクセイ・ブルナコフ

非直線性があるのでしょう。

グラフから判断すると、少し関係がありそうです。しかし、ニューロニックもツリーも、ある一般的な傾向を検出するだけです。そして、この予測器だけでは、明らかにモデルのトレーニングには使えない、ツリーからそれ以上のものを得ることはできないのです。

 
Dr.トレーダー

グラフから判断すると、少しは関係がありそうです。しかし、ニューロニックもツリーも、ある一般的な傾向を示しているに過ぎません。そして、この予測因子だけでは明らかにモデルの訓練にはならず、ツリーからより多くを得ることは不可能です。

ありがとうございます、ありがとうございます。

はい、そうですね。

私のグラフ

Rmseの最小化

リアルディペンデンス

のモデルです。

リアルとモデル。

原初の発想はピュアです。

実物がどうなったかは、すでにご覧いただいたノイズの発生を考慮すると。


最高のモデリング品質を実現します。

 
アレクセイ・ブルナコフ

効くんです。

ありがとうございます、私では解りませんでした・・・。
 
Dr.トレーダー

グラフから判断すると、少しは関係がありそうです。しかし、ニューロニックもツリーも、ある一般的な傾向を示しているに過ぎません。そして、この予測因子だけでは、明らかにモデルを学習するのに不十分で、ツリーからそれ以上のものを得ることは不可能なのです。

課題をまとめ、理解したことを書かなければならない。

すべて、実生活では依存の種類について何も知らないという前提で。

私の理解ではそうです。

1)価格還元のような単純なフィックの数から依存関係を引き出すことは難しく、多くの方法はうまく機能しない。しかし、一般的な原理では、畳み込みによって近似解を得ることができます。

2)事前に多くの機能を生成しておけば、従来の方法でもうまくいく可能性が高い。

3) 生チップの品質指標として、畳み込みNSの次に優れているのは従来のNSであり、他の手法もほぼ同じ結果であった。

4)多くの潜在的な生成されたフィッシュ、森、NSがうまく機能する。

5)チップの回収を人間ではなく、畳み込みNS自体に任せることが望ましいかどうかは、まだ未解決の問題である。正しい畳み込みアーキテクチャを見つけることは、おそらく事前に多くの特徴を生成するのと同じくらい大変な作業です。

博士、何か付け加えることはありますか?

 

あなたが最初に問題を投稿したときにフィックを生成しようとしたのですが、アルゴリズムは一晩中さまざまな数学的組み合わせを経て、vtreat推定によって最適な新しい予測子を選び出しました。良い結果は得られず、モデルは新しい予測変数から適切に学習することさえできませんでした。つまり、ランダムで正しい予測因子とそれに対する数学的演算を当てるか、当てないかの違いなんです。何日もかけてバリアントを生成して試してみても、やはり無駄になってしまいます。オリジナルの予測変数に対する畳み込みネットワークは、通常のロウミーンによるネットワークよりも良い結果を得たので、畳み込みネットワークにこだわる方が良いだろう。

 
Dr.トレーダー

あなたが最初に問題を投稿したときにフィックを生成しようとしたのですが、アルゴリズムは一晩中さまざまな数学的組み合わせを経て、vtreat推定によって最適な新しい予測子を選び出しました。良い結果は得られず、モデルは新しい予測変数から適切に学習することさえできませんでした。つまり、ランダムで正しい予測因子とそれに対する数学的演算を当てるか、そうでないかの違いです。何日もかけてバリアントを生成し、試してみても、やはり無駄なことです。オリジナルの予測変数に対する畳み込みネットワークは、通常のロウミーンズを使ったネットワークよりも良い結果が出ているので、畳み込みネットワークを使うのが良いと思います。

先生、ありがとうございました。

はい、それも良い点ですね。ただ、過去にスライド式増加窓で和を、スライド式ラグで差を、その他もろもろのスライド式で差し引く習慣があるのです。

なるほど、私は、ほとんどすべてのものをモデル化するには、予測変数の形式をとれば十分だという考えを持っているのですね。

現在の価格 - 価格(lag1)

現在の価格 - 価格(lag2)

...

現在の価格 - 価格(lag_n)

これは移動和(平均に変換しやすい)として扱うことができ、異なる場所での変曲、速度、加速度など、トレンドの任意の構成を再現することができる。

畳み込みネットワークといえば、私が引用したコードで実用的なことをやってみることをお勧めします。そして、ネットワークの重みとカーネルの分析に注力する。カーネルは、コンボリューションの種類を示します。重みは重要性と非直線性を示すことができる。

個人的には、すでにそこそこの結果は出ているのですが、メインの実験はとりあえずお休みしています。ただ、飽きてきた...。ある株式商品の予測を畳み込みネットワークでやってみることにしました。オーバーヘッドがかなり低い(FXのスプレッドより一桁低い)し、うまくいくというファンタジーがあるんです。詳しくは後ほどお話します。

CNNのクイックコース: http://cs231n.github.io/convolutional-networks/

 

これらのビデオ講義は、以前はYouTubeにもアップされていましたが、その後削除され、archive.orgに残っています -https://archive.org/details/cs231n-CNNs

英語ですが、とても参考になり、役に立ちました。主に畳み込みネットによる画像認識についてですが、ニューロン全般について有用な情報がたくさんあります。

理由: