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

 
エフゲニー・デューカ

悲しいのは、規則性、規則性と言いながら、一体何が市場を動かしているのかと聞いても言わないことです。規則性の理解は、確率というネットワークからの答えで終わって しまうからです。

あなたの解決策は、異なるデータで何百ものネットワークを構築し、その出力を確率の形で分析することだけです。

もし、あなたが市場とその法則を理解していたら?

そうすると 1つの ログルールで、何百ものネットワークで記述しているようなことが記述できる...。


例えば、ここに3つの要素しかないルールがありますが、これは100のネットと同じように取引できます。



では、そのようなルールを1000個見つけて、そこからランダムフォレストやルールのアンサンブルのようなものを作ったらどうでしょうか? 品質は向上しますか? はい、取引できますか?

100ニューロンずつの1000ニューロンからなるアンサンブルを作ろうとすると、100kニューロンを得ることになる。

結論から言うと、私のアプローチは「よりクリーン」で「より速く」「よりスケーラブル」で「説明できる」、あなたのアプローチは「開発不可能」です((

あえなく

 
mytarmailS:

結論から言うと、私のアプローチは「よりクリーン」で「より速く」「よりスケーラブル」、あなたのアプローチは「開発不可能」です(((o(*゚▽゚*)o)))

正直なところ、あなたのアプローチもあまり明確ではないのですが、もしかしたら私だけの問題かもしれません...。

 
エフゲニー・デューカ

これは私がやっていることではありませんが、私はこのコンセプトのために努力しています。

データはフィッシャーの アヤメです。

iris[sample(100,100),] 
    Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
51           7.0         3.2          4.7         1.4 versicolor
31           4.8         3.1          1.6         0.2     setosa
79           6.0         2.9          4.5         1.5 versicolor
33           5.2         4.1          1.5         0.1     setosa
73           6.3         2.5          4.9         1.5 versicolor
80           5.7         2.6          3.5         1.0 versicolor
16           5.7         4.4          1.5         0.4     setosa
74           6.1         2.8          4.7         1.2 versicolor
30           4.7         3.2          1.6         0.2     setosa
17           5.4         3.9          1.3         0.4     setosa
25           4.8         3.4          1.9         0.2     setosa
75           6.4         2.9          4.3         1.3 versicolor
57           6.3         3.3          4.7         1.6 versicolor
65           5.6         2.9          3.6         1.3 versicolor
96           5.7         3.0          4.2         1.2 versicolor
.........
......
...
..
..


ここではわかりやすくするためにランダムフォレストを学習させていますが、ニューラルネットワークのアンサンブルであると仮定しましょう。

訓練された...

予測ルールは約700種類もあるんですよ。

condition                                              pred        
  [1,] "X[,3]<=2.45"                                          "setosa"    
  [2,] "X[,3]>2.45 & X[,3]<=4.85"                             "versicolor"
  [3,] "X[,3]>2.45 & X[,3]<=4.85 & X[,4]<=1.6"                "versicolor"
  [4,] "X[,4]>1.6"                                            "virginica" 
  [5,] "X[,3]>2.45 & X[,3]<=4.95 & X[,4]<=1.75"               "versicolor"
  [6,] "X[,3]>4.95 & X[,4]<=1.55"                             "virginica" 
  [7,] "X[,3]>4.85 & X[,3]<=5.15 & X[,4]<=1.75 & X[,4]>1.55"  "versicolor"
  [8,] "X[,4]>1.75"                                           "virginica" 
  [9,] "X[,3]>5.15"                                           "virginica" 
 [10,] "X[,3]<=2.45"                                          "setosa"    
 [11,] "X[,3]<=4.95 & X[,3]>2.45 & X[,4]<=1.65"               "versicolor"
 [12,] "X[,4]>1.65"                                           "virginica" 
 [13,] "X[,3]>4.85 & X[,4]>1.65"                              "virginica" 
 [14,] "X[,4]>1.9"                                            "virginica" 
 [15,] "X[,3]>4.95 & X[,4]<=1.65"                             "virginica" 
 [16,] "X[,3]>4.95 & X[,4]<=1.75 & X[,4]>1.65"                "versicolor"
 [17,] "X[,3]>4.95"                                           "virginica" 
 [18,] "X[,4]<=0.8"                                           "setosa"    
 [19,] "X[,3]<=4.75 & X[,4]>0.8"                              "versicolor"
 [20,] "X[,3]>4.75 & X[,3]<=5 & X[,4]<=1.7"                   "versicolor"
 [21,] "X[,3]>5 & X[,4]<=1.55"                                "virginica" 
 [22,] "X[,3]>4.75 & X[,3]<=5.45 & X[,4]<=1.7 & X[,4]>1.55"   "versicolor"
 [23,] "X[,3]>5.45"                                           "virginica" 
 [24,] "X[,4]>1.7"                                            "virginica" 
 [25,] "X[,3]<=5.05 & X[,4]>0.8 & X[,4]<=1.75"                "versicolor"
 [26,] "X[,3]>4.95"                                           "virginica" 
 [27,] "X[,2]>2.6 & X[,3]<=5.05 & X[,3]>4.95"                 "versicolor"
 [28,] "X[,4]>1.75"                                           "virginica" 
 [29,] "X[,2]>3.1 & X[,3]<=5.05 & X[,4]>0.8"                  "versicolor"
 [30,] "X[,3]>5.05 & X[,4]<=1.55"                             "virginica" 
 [31,] "X[,2]<=2.85 & X[,3]>5.05 & X[,4]<=1.7 & X[,4]>1.55"   "versicolor"
 [32,] "X[,3]>5.05"                                           "virginica" 
 [33,] "X[,3]>5.05"                                           "virginica" 
 [34,] "X[,4]<=0.75"                                          "setosa"    
 [35,] "X[,3]<=4.95 & X[,4]>0.75 & X[,4]<=1.7"                "versicolor"
 [36,] "X[,4]>1.7"                                            "virginica" 
 [37,] "X[,2]>3.1 & X[,3]<=4.95 & X[,4]>0.75"                 "versicolor"
 [38,] "X[,3]>4.95"                                           "virginica" 
 [39,] "X[,3]<=4.95 & X[,4]>0.8 & X[,4]<=1.7"                 "versicolor"
 [40,] "X[,4]>1.7"                                            "virginica" 
 [41,] "X[,3]>4.95"                                           "virginica" 
 [42,] "X[,4]<=0.7"                                           "setosa"    
 [43,] "X[,2]<=2.25 & X[,4]<=1.25"                            "versicolor"
 [44,] "X[,2]<=2.25"                                          "versicolor"
 [45,] "X[,2]>2.25 & X[,4]>0.7 & X[,4]<=1.75"                 "versicolor"
 [46,] "X[,3]>5.3"                                            "virginica" 
 [47,] "X[,4]>1.75"                                           "virginica" 
 [48,] "X[,3]>2.45 & X[,3]<=4.95 & X[,4]<=1.75"               "versicolor"
 [49,] "X[,3]>4.95 & X[,4]<=1.55"                             "virginica" 
 [50,] "X[,3]>4.95 & X[,3]<=5.45 & X[,4]<=1.75 & X[,4]>1.55"  "versicolor"
 [51,] "X[,3]>4.95"                                           "virginica" 
 [52,] "X[,4]>1.75"                                           "virginica" 
 [53,] "X[,2]>3 & X[,3]>2.45 & X[,3]<=4.85"                   "versicolor"
 [54,] "X[,4]>1.75"                                           "virginica" 
 [55,] "X[,3]<=4.85 & X[,4]>0.8 & X[,4]<=1.65"                "versicolor"
 [56,] "X[,3]<=4.65 & X[,4]>1.65"                             "virginica" 
 [57,] "X[,4]>1.65"                                           "virginica" 
 [58,] "X[,3]<=5.3 & X[,4]<=1.75"                             "versicolor"
 [59,] "X[,2]>2.6 & X[,3]>4.85 & X[,3]<=5.3 & X[,4]<=1.75"    "versicolor"
 [60,] "X[,3]>5.3"                                            "virginica" 
 [61,] "X[,4]>1.75"                                           "virginica" 
 [62,] "X[,3]<=2.5"                                           "setosa"    
 [63,] "X[,3]>2.5 & X[,3]<=4.95 & X[,4]<=1.75"                "versicolor"
 [64,] "X[,3]>4.95 & X[,3]<=5.05 & X[,4]<=1.65"               "virginica" 
 [65,] "X[,4]<=1.75"                                          "versicolor"
 [66,] "X[,3]<=4.75 & X[,4]>1.65"                             "virginica" 
 [67,] "X[,3]>4.75 & X[,4]<=1.75 & X[,4]>1.65"                "versicolor"
 [68,] "X[,3]>5.35"                                           "virginica" 
 [69,] "X[,4]>1.75"                                           "virginica" 
 [70,] "X[,3]<=4.75 & X[,4]>0.7"                              "versicolor"
 [71,] "X[,4]>1.65"                                           "virginica" 
 [72,] "X[,3]>4.75 & X[,3]<=4.95 & X[,4]<=1.7"                "versicolor"
 [73,] "X[,2]<=2.65 & X[,3]>4.95"                             "virginica" 
 [74,] "X[,2]<=2.75 & X[,2]>2.65 & X[,4]<=1.7"                "versicolor"
 [75,] "X[,3]>4.75"                                           "virginica" 
 [76,] "X[,4]>1.7"                                            "virginica" 
 [77,] "X[,2]>3.1 & X[,3]>4.75 & X[,3]<=4.85"                 "versicolor"
 [78,] "X[,4]>1.7"                                            "virginica" 
 [79,] "X[,3]>2.45 & X[,3]<=5 & X[,4]<=1.65"                  "versicolor"
 [80,] "X[,4]<=1.65"                                          "versicolor"
 [81,] "X[,3]>5"                                              "virginica" 
 [82,] "X[,4]>1.65"                                           "virginica" 
 [83,] "X[,3]>2.45 & X[,3]<=5.05 & X[,4]<=1.75"               "versicolor"
 [84,] "X[,4]>1.75"                                           "virginica" 
 [85,] "X[,2]>3.1 & X[,3]>2.45 & X[,3]<=5.05"                 "versicolor"
 [86,] "X[,3]>5.05"                                           "virginica" 
 [87,] "X[,3]<=4.95 & X[,4]>0.8 & X[,4]<=1.65"                "versicolor"
 [88,] "X[,3]>4.95 & X[,4]<=1.55"                             "virginica" 
 [89,] "X[,3]<=5.45 & X[,4]<=1.65 & X[,4]>1.55"               "versicolor"
 [90,] "X[,3]>4.95"                                           "virginica" 
 [91,] "X[,4]>1.65"                                           "virginica" 
 [92,] "X[,4]>0.75 & X[,4]<=1.65"                             "versicolor"
 [93,] "X[,4]>1.65"                                           "virginica" 
 [94,] "X[,2]>3.1 & X[,3]<=4.85 & X[,4]>0.75"                 "versicolor"
 [95,] "X[,4]>1.65"                                           "virginica" 
 [96,] "X[,3]<=4.95 & X[,4]>0.8 & X[,4]<=1.75"                "versicolor"
 [97,] "X[,3]<=4.95 & X[,4]<=1.75 & X[,4]>1.65"               "virginica" 
 [98,] "X[,3]>4.95 & X[,4]<=1.55"                             "virginica" 
 [99,] "X[,3]>4.95 & X[,3]<=5.45 & X[,4]<=1.75 & X[,4]>1.55"  "versicolor"
..........................
..............
.......
....
..

この700のルールのうち7つを、品質を落とさずに作ることができるアルゴリズムがあるんです。

learner[,-c(1:3)]
     condition                                pred        
[1,] "X[,3]<=2.45"                            "setosa"    
[2,] "X[,3]<=4.95 & X[,3]>2.45 & X[,4]<=1.65" "versicolor"
[3,] "X[,3]>4.95 & X[,4]>1.7"                 "virginica" 
[4,] "X[,2]<=3.1 & X[,3]<=4.95 & X[,4]>1.65"  "virginica" 
[5,] "X[,3]>4.95 & X[,4]<=1.55"               "virginica" 
[6,] "X[,3]<=5.3 & X[,4]<=1.75"               "versicolor"
[7,] "X[,1]==X[,1]"                           "versicolor"

つまり、700ルールのランダムフォレスト全体がそうです。

悪くない?:)

 
mytarmailS:

悲しいのは、規則性、規則性と言いながら、一体何が市場を動かしているのかと聞いても言わないことです。規則性の理解は、確率という形でネットワークからの答えで終わって しまうからです。

あなたの全体のソリューションは、異なるデータで何百ものネットワークを構築し、その出力を確率の形で分析することです...

そうです、本当の意味で実用的な結果を得るためにです。

もし、あなたが市場とその法則を理解していたらどうでしょう?

なぜかというと、もしかしたら無理なのかもしれません。

そうすると 1つの ログルールで、何百ものネットで記述していることを記述することができます。

雲の上を飛ぶような、ファンタジーなんです。

は、上記のように答えました...

 
エフゲニー・デューカ

は本文中で上記のように答えています...

と書いていますね。

エフゲニー・デューカ

2.実際には、私の方法を使っても、質問されたうちの1%程度しか納得のいく回答は得られない。簡単に言えば、分灯ごとに「5分後の価格は上下どちらか」とネットに質問しても、100回に1回しか答えが返ってこないということです。

その理由は、データの99%はゴミで、1%が有用だからです。この1%は、1~3のロギングルールで記述できると思いませんか?

 
mytarmailS:

と書いていますね。

エフゲニー・デューカ

2.実際には、私の方法を使っても、1%程度しか正確な答えが得られないのです。簡単に言えば、「5分後に価格が上下するのはどこか」とネットで質問しても、100回に1回しか答えが返ってこないということです。

その理由は、データの中に99%のゴミと1%の有用な情報があるからだと思いませんか? この1%は、1~3のロギングルールで記述できると思いませんか?

残念ながらそうではありません。

ゴミの99%は、研究対象が持つ 固有の性質です。それは、その本質です。
まだ見つかっていないが、これから見つかるであろう、調和が内部にあり、シンプルでわかりやすいルールであることを、誰もが望みたいと思う。そのようなルールはありません。もちろん哲学的には存在するのでしょう。すべてのものには理由があるのです。

1%は単純なルールで記述されたものではなく、ネットワークは50万例で訓練されて到達したものであり、これらは明らかに単純なルールではありません。

 
mytarmailS:

これは私がやっていることではありませんが、私はこのコンセプトのために努力しています。

データはフィッシャーのアヤメです。


ランダムフォレストをトレーニングすることで、わかりやすくしていますが、ニューラルネットワークのアンサンブルであると仮定しましょう。

訓練された...

予測ルールは約700種類もあるんですよ。

この700のルールのうち7つを、品質を落とさずに作ることができるアルゴリズムがあるんです。

つまり、700ルールのランダムフォレスト全体がそうです。

悪くない?:)

150行のデータ(Irisのデータには150個ある)を記述するためには、(すべての行が一意であれば)せいぜい150個のルールが必要である。
700はどこから入手されたのですか?

 
elibrarius:

150行のデータ(Irisデータは150行ある)を記述するためには、(すべての行が一意であれば)最大で150のルールが必要である。
700はどこから入手されたのですか?

forrest パッケージがどのように動作するのか正確には知りませんが、100 本の木で 400-700 のルールが生成されます。おそらくすべての枝をルールとしてカウントしているのでしょう

Evgeny Dyuka:
残念ながら、これは事実ではありません。

99%のゴミは、研究対象が持つ 固有の性質です。そういう作り方、性質なんです。
私たちは皆、まだ見つけていない、しかしこれから見つける、調和のとれた内部と明確なシンプルなルールを持っていることを望みたいと思います。そのようなルールはありません。もちろん哲学的には存在するのでしょう。すべてのものには理由があるのですが、私たちの現在および将来の能力を超えています。

この1%は単純なルールで記述されているわけではなく、ネットワークは50万例で訓練されています。

ふむふむ

 
mytarmailS:

つまり、700ルールのランダムフォレスト全体です。

悪くない?:)

減葉の原理とは?類似性でグループ化し、グループから最適な選択肢を選択する ?

 
mytarmailS:

forrest パッケージがどのように動作するのか正確には知りませんが、100 本の木に設定すると 400-700 のルールが生成され、おそらくすべての枝がルールとしてカウントされます。

どうだろう...

どうやら700本が100本の合計のようです。

1本の木を作れば、魔法と同じ7つのルールが手に入る))

アヤメについて1つのツリーが出した結果は以下の通りです(精度96%、150例中エラー6個)。


 if(x[3]<1.800000){
  if(x[3]<1.000000){v[0]=1.000000;v[1]=0.000000;v[2]=0.000000;s=50;}
  else{
   if(x[2]<4.700000){
    if(x[2]<4.500000){v[0]=0.000000;v[1]=1.000000;v[2]=0.000000;s=29;}
    else{v[0]=0.000000;v[1]=0.909091;v[2]=0.090909;s=11;}}
   else{v[0]=0.000000;v[1]=0.714286;v[2]=0.285714;s=14;}}}
 else{
  if(x[0]<6.300000){v[0]=0.000000;v[1]=0.090909;v[2]=0.909091;s=11;}
  else{v[0]=0.000000;v[1]=0.000000;v[2]=1.000000;s=35;}}
 

理由: