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

 
つまり、20の予測変数があったとして、ベイズが過少訓練すれば、何が出てくるかわからない。
 
マキシム・ドミトリエフスキー

いまいちピンとこない、ここではっきりさせるべき

https://habr.com/ru/post/276355/

応用範囲が広いので、具体的にどう使うかは別問題ですが

夕方から読みます

 
マキシム・ドミトリエフスキー

あなたと話すことは何もない あなたの心理状態を見れば わかるわ あなたは子供か ただ... 忘れてちょうだい

"私たち "って、あなたのこと?まずは仕事を探せ、その年齢で親の肩に座るのはもったいない。

 
マキシム・ドミトリエフスキー

いまいちピンとこない、ここではっきりさせるべき

https://habr.com/ru/post/276355/

応用範囲が広いので、具体的にどう使うかは別問題ですが

第2部の記事の最下段。
ドロップアウトは、ベイズ主義の廉価版と見ることができ、非常にシンプルです。このアイデアは、前回の記事の最後に紹介したアンサンブルと同じアナロジーに基づいています。今度は、それを手に取り、ランダムに数個のニューロンをちぎって脇に置くと想像してください。このような操作を1000回ほど繰り返すと、それぞれ微妙に異なる1000個のネットワークがランダムにできあがります。その予測値を平均化すると、ランダムな偏差がところどころで補い合い、実際の予測値を出していることがわかる。ここで、ベイジアンネットワークがあり、その重みのセットを不確実性から1000回取り出したとすると、同じアンサンブルでも微妙に異なるネットワークが出来上がります。

ベイズアプローチの優れた点は、そのランダム性をコントロールしながら利用できることです。

....

これは、実際には、次元ネットワークがドロップアウトネットワークよりも、それほど差はないものの、良い結果をもたらすという事実に通じています。

ドロップアウトがかっこいいのは、もちろん、とてもシンプルだからです。

すなわち、ドロップアウトを伴う深層NSはベイジアンネットと同等である。そしてドロップアウトは多くのパッケージに入っているので、まずはそれを使ってプレディクター/ターゲットの魚を検索してみましょう。そして、ベイズで結果を改善するようにします。Vladimir Perervenkoの論文ではドロップアウトが使用されており、それを元に実験することが可能である。

実験してみましたが、予測因子に関する突破口は見つかりませんでした。
しかし、そこから1000個のニューロンを落とさなければならないほど深いネットワークは作っていません。N-100-100-100-1(401ニューロン)以上は試したことがない。つまり、100は削除されても、1000は削除されないということです。1000個取り除くには、4〜1万個のニューロンを持つネットワークが必要で、おそらくカウントするのに長い時間がかかるでしょう。
1000本の森でも同じような結果になる可能性がありますし、NSよりもずっと速くカウントされるでしょう。
 
エリブラリウス
N-100-100-100-1(401ニューロン)以上は試したことがない。

そんなモンスターをまともに鍛えられるわけがない。イマイチ、もっとシンプルなNSが必要なんです。100ニューロンまでのどこか。

 
エリブラリウス
第2部の記事の最下段。

すなわち、ドロップアウトのある深いNSは、ベイジアンネットワークに類似している。そしてドロップアウトは多くのパッケージに入っているので、まずはそれらを使ってそのプレディクター/ターゲットで魚を検索してみましょう。そして、ベイズで結果を改善するようにします。Vladimir Perervenkoの記事では、ドロップアウトが使用され、あなたはそれらの基礎に実験を行うことができます。

実験してみましたが、私の予想では突破口は見つかりませんでした。
しかし、そこから1000個のニューロンを落とさなければならないほど深いネットワークは作っていません。N-100-100-100-1(401ニューロン)以上は試したことがない。つまり、100は削除されても、1000は削除されないということです。1000個取り除くには、4〜1万個のニューロンを持つネットワークが必要で、おそらくカウントするのに長い時間がかかるでしょう。
1000本の森でも同じような結果になり、NSよりずっと速くカウントされる可能性があります。

ああ、どうだろう、いくら木・林でもアクラシは成長を止め、バラストとして横たわっているだけで、何も改善されないのでは。落とすか落とさないかは、命取りです。

ベイズとドロップアウトの比較は、私見では粗雑だが、まだあまり知識がないので反論はしない、たぶんそうだろう

 
マキシム・ドミトリエフスキー

ベイズとドロップアウトの比較は、私見では粗雑だが、まだあまり知識がないので反論はしない、たぶんそうだろう

比較したのはこの記事の筆者であり、私ではない。彼は、この記事を別の大きなものから書き、その上で実験を行った。つまり、この比較はどうやらこの手法の開発者が行っているようだ。

 
マキシム・ドミトリエフスキー

ああ、どうだろう、いくら木・林でもアクラシは成長を止め、バラストとして横たわっているだけで、何も改善されない。落としても落としてもハンカチの死骸。

1000本の木で森を作るなら、各森に1%のデータを供給すべきだろう、つまり0.1ではなくr=0.01だ...推奨樹種100本の森で推奨される0.6。
 

Alglibの森で曖昧なコードを見つけたんだ。dataanalysis.mqhにあるクロスエトロピーの計算機能のフルコード。

//+------------------------------------------------------------------+
//| Average cross-entropy (in bits per element) on the test set      |
//| INPUT PARAMETERS:                                                |
//|     DF      -   decision forest model                            |
//|     XY      -   test set                                         |
//|     NPoints -   test set size                                    |
//| RESULT:                                                          |
//|     CrossEntropy/(NPoints*LN(2)).                                |
//|     Zero if model solves regression task.                        |
//+------------------------------------------------------------------+
static double CDForest::DFAvgCE(CDecisionForest &df,CMatrixDouble &xy,
                                const int npoints)
  {
//--- create variables
   double result=0;
   int    i=0;
   int    j=0;
   int    k=0;
   int    tmpi=0;
   int    i_=0;
//--- creating arrays
   double x[];
   double y[];
//--- allocation
   ArrayResizeAL(x,df.m_nvars);
   ArrayResizeAL(y,df.m_nclasses);
//--- initialization
   result=0;
   for(i=0;i<=npoints-1;i++)
     {
      for(i_=0;i_<=df.m_nvars-1;i_++)
         x[i_]=xy[i][i_];
      //--- function call
      DFProcess(df,x,y);
      //--- check
      if(df.m_nclasses>1)
        {
         //--- classification-specific code
         k=(int)MathRound(xy[i][df.m_nvars]);
         tmpi=0;
         for(j=1;j<=df.m_nclasses-1;j++)
           {
            //--- check
            if(y[j]>(double)(y[tmpi]))
               tmpi=j;
           }

         //--- check
         if(y[k]!=0.0)
            result=result-MathLog(y[k]);
         else
            result=result-MathLog(CMath::m_minrealnumber);
        }
     }
//--- return result
   return(result/npoints);
  }

赤で示したコードは、何も使用されていないもの(tmpi)を考慮しています。では、なぜ収録されているのでしょうか?
何かが欠けているか、コードが完全にクリーンアップされていないかのどちらかです。
一般的には、1本の木を検索したいから、この機能に手を出し始めた。そして、forestの木の本数=1としたところ、すべての誤差が0から1の間にあり、この100から300+の誤差が発生することがわかりました。
クロスエントロピーを理解している人はいますか? - コードが正しいのか、それとも何かが元に戻っているのか?

ウィキペディアに よると、次のようになるはずです。



 

catbustと比較してみました。問題なく返ります。テストでは通常>0.5です。まあ、いつも通りです。

明日、計算を見てみます。もしかしたら、デバッグ用のコードが残っているかもしれません。

一般的に、この指標は、早期休憩などに使われるものではないので、ここでは役に立たない...結果的に情報不足である。分類ミスを取られ、それっきり
理由: