トレーディングにおける機械学習:理論、モデル、実践、アルゴトレーディング - ページ 2312 1...230523062307230823092310231123122313231423152316231723182319...3399 新しいコメント Maxim Dmitrievsky 2021.01.23 12:50 #23111 elibrarius: 見てきました。そうではないんです。3x3の行列を変数に書き換えただけです。しかし、新しい成分ベクトルは計算されない。 その結果、各コンポーネントについて6つの行が得られます(この例によれば)。 本当に失くしてしまって覚えていないのですが...pca版のbotがあったので、もし見つけたら後で載せますね Forester 2021.01.23 13:11 #23112 マキシム・ドミトリエフスキー: 本当に迷ってしまって思い出せない...pca版のbotがあったので、もし見つけられたら後で投稿します。 ディスク全体でPCABuildBasisという単語を検索するとよいでしょう)ファイルが削除されない場合。 Maxim Dmitrievsky 2021.01.23 13:15 #23113 elibrarius: PCABuildBasisという単語をディスク全体で検索するとよいでしょう)ファイルが削除されていない場合。 アーカイブスのクラウドにあるものはすべて古いものです 以下は、pcaまたはldaのコードの一部です(後者はコメントアウトされています)。 //+------------------------------------------------------------------+ //|Use LDA for inputs transforming | //+------------------------------------------------------------------+ CRLAgent::PCApermutation(void) { int inf; double s2s[]; //CLDA::FisherLDAN(RDFPM,RDFPM.Size(),features,2,inf,LDAmatrix); CPCAnalysis::PCABuildBasis(RDFPM,RDFPM.Size(),features,inf,s2s,LDAmatrix); RDFPMPCA.Resize(RDFPM.Size(),this.features+2); ArrayResize(PCAarr,features*features); int ldaind=0; for(int f=0;f<this.features;f++) for(int i=0;i<this.features;i++) { PCAarr[ldaind] = LDAmatrix[i][f]; ldaind++; } for(int s=0; s<this.features; s++) { for(int i=0;i<RDFPMPCA.Size();i++) { double feach = 0; for(int f=0;f<this.features;f++) feach+=RDFPM[i][f]*LDAmatrix[f][s]; RDFPMPCA[i].Set(s,feach); RDFPMPCA[i].Set(this.features,RDFPM[i][this.features]); RDFPMPCA[i].Set(this.features+1,RDFPM[i][this.features+1]); } } CDForest::DFBuildRandomDecisionForest(RDFPMPCA,RDFPMPCA.Size(),this.features,2,trees,r,RDFinfo,RDF,RDF_report); RDF_report.m_oobrelclserror = CDForest::DFRelClsError(RDF,RDFPMPCA,RDFPMPCA.Size()); ArrayResize(permutated,this.features); double buypass[]; ArrayResize(buypass,RDFPMPCA.Size()); for(int s=0; s<this.features; s++) { for(int i=0;i<RDFPMPCA.Size();i++) { buypass[i] = RDFPMPCA[i][s]; RDFPMPCA[i].Set(s,rand()/32767.0); } permutated[s][1] = s; double err = CDForest::DFRelClsError(RDF,RDFPMPCA,RDFPMPCA.Size()); if(err == 0.0) err = 0.001; permutated[s][0] = RDF_report.m_oobrelclserror / err; for(int i=0;i<RDFPMPCA.Size();i++) RDFPMPCA[i].Set(s,buypass[i]); } ArraySort(permutated); ArrayResize(permutated,this.bf_n); RDFPM.Resize(RDFPMPCA.Size(),this.bf_n+2); for(int s=0; s<this.bf_n; s++) { for(int i=0;i<RDFPMPCA.Size();i++) { RDFPM[i].Set(s,RDFPMPCA[i][(int)permutated[s][1]]); RDFPM[i].Set(bf_n,RDFPMPCA[i][this.features]); RDFPM[i].Set(bf_n+1,RDFPMPCA[i][this.features+1]); } } CDForest::DFBuildRandomDecisionForest(RDFPM,RDFPM.Size(),this.bf_n,2,trees,r,RDFinfo,RDF,RDF_report); } Maxim Dmitrievsky 2021.01.23 13:22 #23114 詳しくはこちら //+------------------------------------------------------------------+ //|Use LDA for inputs transforming | //+------------------------------------------------------------------+ CRLAgent::LDA(void) { CDecisionForest mRDF; CDFReport mRep; int inf; double s2s[]; //CLDA::FisherLDAN(RDFpolicyMatrix,RDFpolicyMatrix.Size(),features,2,inf,LDAmatrix); CPCAnalysis::PCABuildBasis(RDFpolicyMatrix,RDFpolicyMatrix.Size(),features,inf,s2s,LDAmatrix); RDFpolicyMatrix2.Resize(RDFpolicyMatrix.Size(),bestfeatures_num+2); ArrayResize(LDAarr,features*features); int ldaind=0; for(int f=0;f<this.features;f++) for(int i=0;i<this.features;i++){ LDAarr[ldaind] = LDAmatrix[i][f]; ldaind++; } for(int s=0; s<this.bestfeatures_num; s++) { for(int i=0;i<RDFpolicyMatrix.Size();i++) { double feach = 0; for(int f=0;f<this.features;f++) { feach+=RDFpolicyMatrix[i][f]*LDAmatrix[f][s]; } RDFpolicyMatrix2[i].Set(s,feach); RDFpolicyMatrix2[i].Set(bestfeatures_num,RDFpolicyMatrix[i][this.features]); RDFpolicyMatrix2[i].Set(bestfeatures_num+1,RDFpolicyMatrix[i][this.features+1]); } } CDForest::DFBuildRandomDecisionForest(RDFpolicyMatrix2,RDFpolicyMatrix2.Size(),bestfeatures_num,2,trees,r,RDFinfo,RDF,RDF_report); } Forester 2021.01.23 13:31 #23115 ありがとうございます。 Maxim Dmitrievsky 2021.01.23 13:34 #23116 elibrarius: ありがとうございます、調べてみます。 という感じです。特徴量にベクトル係数を乗じたもの に対して学習させる。 for(int s=0; s<this.bestfeatures_num; s++) { for(int i=0;i<RDFpolicyMatrix.Size();i++) { double feach = 0; for(int f=0;f<this.features;f++) { feach+=RDFpolicyMatrix[i][f]*LDAmatrix[f][s]; } RDFpolicyMatrix2[i].Set(s,feach); RDFpolicyMatrix2[i].Set(bestfeatures_num,RDFpolicyMatrix[i][this.features]); RDFpolicyMatrix2[i].Set(bestfeatures_num+1,RDFpolicyMatrix[i][this.features+1]); } } cemal 2021.01.24 11:29 #23117 Ludwigはコードを書く必要なくディープラーニングモデルを搭載しており、モデルを教えるためのプログラミングスキルは必要ありません:https://ludwig-ai.github.io/ludwig-docs/ Ludwig - code-free deep learning toolbox ludwig-ai.github.io Ludwig is a toolbox for training and testing deep learning models without writing code Forester 2021.01.24 13:04 #23118 マキシム・ドミトリエフスキー: このように特徴量にベクトル係数を乗じたものfor(int s=0; s<this.bestfeatures_num; s++) { for(int i=0;i<RDFpolicyMatrix.Size();i++) { double feach = 0; for(int f=0;f<this.features;f++) { feach+=RDFpolicyMatrix[i][f]*LDAmatrix[f][s]; } RDFpolicyMatrix2[i].Set(s,feach); RDFpolicyMatrix2[i].Set(bestfeatures_num,RDFpolicyMatrix[i][this.features]); RDFpolicyMatrix2[i].Set(bestfeatures_num+1,RDFpolicyMatrix[i][this.features+1]); } }を作成し、その成分に対してフォレストを学習させる。 1)意味がよくわからない。100列の生データの代わりに、情報を失った100列の主成分を供給するべきだったのです。 100列の入力データではなく、学習速度で情報の損失を補う10〜20個の主成分を追加すべきだった。 2) 1000行100列のGCから1000行10列のGCを作る方法がまだ見つかっていません。 最初の10個のコンポーネントから1000行を生成する必要があります。成分を含む行列は100x100になります。 Индикаторы: Portfolio Optimizer 2018.12.01www.mql5.com Portfolio Optimizer: Автор: transcendreamer... mytarmailS 2021.01.24 14:12 #23119 elibrarius: 1) ポイントがよくわからない。100列の生データの代わりに、 100列の主成分を 投入したが、この場合、 いくつかの情報が失わ れる。 100列の生データではなく、10〜20個の主成分であるべきで、情報の損失は学習のスピードで補うことができるのです。 )))) 100の形質から100の部品を作ったとすると、情報損失の割合は0.0%になります。 理論を勉強した方がいいかもしれませんね) Forester 2021.01.24 15:22 #23120 mytarmailS: ))))100個の符号のうち、100個の部品が作られた場合、情報損失の割合は0.0%である。理論を学ぶべき)) 理論的にはそうです。 それにしても、このアクションは何なんだ?速度が上がらない、むしろ遅くなる場合、追加操作のために。 100点満点で10点取らないといけないんです。解決策はあるのでしょうか? 1...230523062307230823092310231123122313231423152316231723182319...3399 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
見てきました。そうではないんです。3x3の行列を変数に書き換えただけです。しかし、新しい成分ベクトルは計算されない。
その結果、各コンポーネントについて6つの行が得られます(この例によれば)。
本当に失くしてしまって覚えていないのですが...pca版のbotがあったので、もし見つけたら後で載せますね
本当に迷ってしまって思い出せない...pca版のbotがあったので、もし見つけられたら後で投稿します。
PCABuildBasisという単語をディスク全体で検索するとよいでしょう)ファイルが削除されていない場合。
アーカイブスのクラウドにあるものはすべて古いものです
以下は、pcaまたはldaのコードの一部です(後者はコメントアウトされています)。
詳しくはこちら
ありがとうございます。
ありがとうございます、調べてみます。
という感じです。特徴量にベクトル係数を乗じたもの
に対して学習させる。
このように特徴量にベクトル係数を乗じたもの
を作成し、その成分に対してフォレストを学習させる。
1)意味がよくわからない。100列の生データの代わりに、情報を失った100列の主成分を供給するべきだったのです。
100列の入力データではなく、学習速度で情報の損失を補う10〜20個の主成分を追加すべきだった。
2) 1000行100列のGCから1000行10列のGCを作る方法がまだ見つかっていません。
最初の10個のコンポーネントから1000行を生成する必要があります。成分を含む行列は100x100になります。
1) ポイントがよくわからない。100列の生データの代わりに、 100列の主成分を 投入したが、この場合、 いくつかの情報が失わ れる。
100列の生データではなく、10〜20個の主成分であるべきで、情報の損失は学習のスピードで補うことができるのです。
))))
100の形質から100の部品を作ったとすると、情報損失の割合は0.0%になります。
理論を勉強した方がいいかもしれませんね)
))))
100個の符号のうち、100個の部品が作られた場合、情報損失の割合は0.0%である。
理論を学ぶべき))
それにしても、このアクションは何なんだ?速度が上がらない、むしろ遅くなる場合、追加操作のために。
100点満点で10点取らないといけないんです。解決策はあるのでしょうか?