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

 
アンドレイ・ハチムリアンスキー

このスレッドでは、ゲスト投稿。ある記事を共有するために立ち寄りました。

ヌメライは、カール・マルクスの「万国のプロレタリアは団結せよ!」というスローガンにひかれて、ジェフリー・ヒントン(Geoffrey Hinton)の解釈で、こう言ったのだ:)。
 
マキシム・ドミトリエフスキー

ちなみに、これは正確です。

フォーラム(あなたのお気に入りの魔術師mudoを含む...)上の白痴の数を考えると、私は自分自身のためにほとんど何の利益を得ていないので、私はもうこのトピックをサポートする必要はないと思います。

マキシム、あなたは間違っている!自分にとってのメリット、課題の策定や提示そのものにメリットがあるのです。ただし、説得するつもりはない。

 
ユーリイ・アサウレンコ

マキシム、あなたは間違っている!タスクの文言や表現そのものにメリットがあるのです。しかし、説得力はない。

この掲示板の仮面ではなく、実際のケースです。ある言葉を告げると、彼らはすべての投稿の後に2つの言葉を告げます。

 
エリブラリウス

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+の誤差が発生することがわかりました。
クロスエントロピーを理解している人はいますか? - コードが正しいのか、それとも何かが元に戻っているのか?

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



正しいクラスがゼロの確率を持つと予測される場合、loglossを計算する際に一般的に値が無限大になることがあります。なぜなら、式はゼロ係数を持つそれを除く他のすべてのクラスを含んでおり、この不具合を解決するいくつかの試みがあるようです - tmpiのループでサンプルで最高の確率値を持つクラスを見つけ、多分式に追加したかったが、おそらくそれを考えなかったでしょう:)
 
イワン・ネグレシュニー
無限大に一般的な値は、式がゼロ係数でそれを除いて他のすべてのクラスが含まれているため、ゼロ確率は、正しいクラスのために予測されている場合loglossを計算するときかもしれないし、そこに何とかこのグリッチを解決しようとしているようだ - ループ内のtmpiで与えられたサンプルで最高の確率値を持っているクラスを見つけ、多分式に追加したかったが、明らかにそれを介して考えていない:)。
tmpiは5つのエラー関数のうち、1つしか使われていません。どうやら、他の機能でダミーとして使われていたようですが、他の機能では外し忘れていたようです。
合計で、1つのtmpiが存在し、使用中であり、さらに2つのtmpiが存在するが、使用されていない。
全体としては、動作に影響はありません。
 
elibrarius:
tmpiは5つのエラー関数のうち1つでしか使われていません。どうやら、他の機能ではダミーとして使われていたのに、他では外し忘れていたようです。
全部で、1つのtmpiが存在し、使用中で、あと2つが存在するが、使用されていない。
一般的には、動作に影響はありません。

つまり、誤差を計算するための良い公式は、1つの正しいクラスだけでなく、すべてのクラスに対する確率 分布を考慮することができるということです。

とはいえ、サンプルの1つが正しいクラスである確率がゼロであれば、すべてが無限大に飛んでいくことになる。

どうやらこれが、私が二次誤差のある回帰を好む理由らしい:)

 
イワン・ネグレシュニー
私は基本的に、良い誤差計算式は、1つの正しいクラスだけでなく、すべてのクラスの確率分布を考慮することができると言っているのです。
エラー機能は5つあります。これはちょっと変ですが、他の4つは、0から1まで当然のように変化しています。だから選択肢がある)
 
今度はケシャ(サンサンチの孫)と投資家に殺されたアリョーシャに支店を任せよう。それは公平なことでしょう。
 
Alexander_K2 です。
今度はケシャ(SanSanYchの孫)と投資家から罰せられたアリョーシャにこのスレをリードしてもらいましょう。公平になる。

このトピックを削除して、他の関連するテーマで、より適切な新しいトピックを立ち上げる方が理にかなっています。

ちなみに、価格には正規分布が見られました。すべての異常は「不正確な」データ処理からであることは、すでにTipで書きました-自分たちでやっていることです)。

そのうちPythonのスレッドに書き込むか、それ以前に。

 
ユーリイ・アサウレンコ

このトピックを削除して、他の関連するテーマで、より適切な新しいトピックを立ち上げる方が理にかなっています。

ちなみに、価格には正規分布が見られました。すべての異常は「不正確な」データ処理からであることは、すでにTipで書きました-自分たちでやっていることです)。

そのうち、Pythonスレッドに投稿します。

残念なことに、この掲示板にはマテマテ、ノースウインド、プライバルのようなレベルの人がいないため、これらの話題はすべて未来がないのです。IMHO

理由: