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

 
Yuriさん、vmrモデルのトレーニングはできたのですが、新しいデータを予測することができません。Load modelメニューを選択し、atachmentからtrain.vmrファイルを選択し、Use modelをクリックします。ログに「データを入力して "OK "を押してください」というテキストが表示されるのですが。しかし、それだけで、どんなデータを入力しても、灰色の非アクティブなOkボタンが表示されたままで、答えを得ることができません。train.csvとtest.csvのファイルもatacheにあり、以前投稿されたものです。
ファイル:
train.zip  38 kb
 
Dr.トレーダー
Yuriさん、vmrモデルのトレーニングはできたのですが、新しいデータを予測することができません。Load modelメニューを選択し、添付ファイルからtrain.vmrファイルを選択し、Use modelをクリックします。ログに「データを入力して "OK "を押してください」というテキストが表示されるのですが。しかし、それだけで、どんなデータを入力しても、灰色の非アクティブなOkボタンが表示されたままで、答えを得ることができません。Train.csvとtest.csvのファイルもatacheにあり、これらは以前投稿されたものです。

何か数字以外のものを入力したのでは?これにより、例外ハンドラが起動し、OKボタンが無効化されます。その場合、jPredictionを再起動する必要があります。

近い将来、ユーザーが数値以外のデータを入力したときに、少なくとも何らかの警告メッセージを出すように検討するつもりです。

P/S すでに修正しました。

例えば、数字の代わりに記号 "z "を入力してみましょう。この場合、エラーメッセージが 表示されます。

今すぐOKボタンを有効にするには、メニュー項目「ファイル」>「モデル使用」を選択します。


修正版をサイトにアップロードしました。

 

わかったんだ、エラーの原因はデータ形式が間違っていたんだ。私はpdfでやっていただいたようにデータをフォーマットしました。2行目に説明を加え、1列目にインデックスを加え、予測変数から列名を削除しました。すべてがうまくいく。モデルは、元のデータと整形されたデータの両方で学習されます。しかし、予測は、特別にフォーマットされたデータを学習用に与えた場合にのみ機能する。

しかし、残念ながら、あなたのモデルは、あなた自身のデータでテストに失敗しました。以前、train.csvとtest.csvのファイルを投稿され、良い予測性能を発揮されていましたね。確認したところ、予測誤差は50%で、全く良い性能ではありません。

テストの手順

1) train.csv ファイルを上記のようにフォーマットします。そして、そのファイルを物理的にtrain_part1.csvとtrain_part2.csvの2つに分割します。2つ目のファイルには、train.csvの最後の20行が含まれています。1つ目のファイルには 最後の20行以外が含まれているので、2つのファイルのデータが重なることはありません。

2) train_part1.csvでモデルを学習させ、予測モードに入る。train_part2.csv の行を交互に送り、予測に利用する。20回中9回しか正解できなかった、奇跡はない。

モデル自身が元の学習ファイルを学習用と検証用に2分割して、サンプル外テストを行い、予測精度が100になった場合の理由がわからないのですが...?また、学習ファイルを物理的に分割し、サンプル外れのテストを手動で行った場合、その予測はコインをはじくのと変わらないのでは?学習用サンプルから任意のサンプルを与えて予測すると、予測は正しく動作する、つまり予測関数に問題がないように見える。これはすべて非常に悪いことで、間違っています。あなたのコードには重大な誤りがあります。

ファイル:
vmr_test.zip  44 kb
 
サンサニッチ・フォメンコ

Rをよほど表面的に知っている人でなければ、「ナグ」について語ることはできないでしょう。

もちろん、Rを入れると文字列インタプリタが表示される。深く掘り下げるとバイトコードが見えてくるのですが、効率という点ではインタープリタの問題は解決していないのです。議論するようなこともないだろうし......口うるさい。

しかし、Rのパッケージを少し掘り下げてみると、Rのコードに書かれていることは、他のコードを参照していることがすぐにわかります。そして調査を始めると、計算量の多いアルゴリズムには、Rが常にサードパーティのパッケージを使用しており、それらは最大効率という原則によって選ばれていることがわかるだろう。これらは通常、CまたはFortranのライブラリです。

あるいは、たとえば行列の演算など。Rにはスカラーという概念がなく、すべてベクトルで始まり、行列演算はRにとって完全に自然であることを考えると、Rで書かれていない適切なライブラリを使用することは原則的な問題である。Intel MathKernel Libraryを使用しています。

さらに付け加えると、自分のコンピュータの全コアだけでなく、近隣のコンピュータにも計算を並列化することは、Rでは一般的な操作である。

では、何が「口うるさい」のか、何が「口うるさくない」のかは大きな問題です。

PS.

Rに何も移植する必要はなく、ただ数学を学べばいいのです。Rには必要なものがすべて揃っているし、それ以上のものもある。

SanSanychと同意見です。あらゆるアイデアに必要なものは、すでにR/の中にあるのです。

レシェトフの傲慢な発言も無理はない。そんな世界観です。

気持ちを切り替える必要はありません。意味がないんです。

 
Dr.トレーダー

モデル自身が元の学習ファイルを学習用と検証用に2分割し、サンプル外れのテストを行い、予測精度100で終わるというのは理解できないのですが...?また、学習ファイルを物理的に分割し、サンプル外れのテストを手動で行った場合、その予測はコインをはじくのと変わらないのでは?学習用サンプルから任意のサンプルを与えて予測すると、予測は正しく動作する、つまり予測関数に問題がないように見える。これはすべて非常に悪いことで、間違っています。あなたのコードには重大な誤りがあります。

確かに、コードに間違いがありますね。訂正させていただきます。
 
ウラジミール・ペレヴェンコ

SanSanychを応援しています。あらゆるアイデアに必要なものは、すでにR/の中にあるのです。

ここで反論させてもらうと、nagはスピードの意味で、ユーリに絶対賛成なんだけど...。

Rを使えば、ほとんどの問題に対してすぐに解決できるかもしれませんが、時には速度で行き詰まることもあります

そういえば、相関関数を使って多くのパラメータを探索するのはとても大変でした。最初はRの組み込み関数(ちなみにC++で書かれています)を使いましたが、様々なメソッドがオーバーロードされているため、私のサイクルの1ラウンドの計算に約3.9分、230秒かかり、この時間は受け入れられませんでした。第2段階は、他の全てを排除してRで自分の関数を書き、私の関数は30秒で動きました。しかし満足できませんでした。Rが私の最初にして唯一の言語だったので、友人に頼んで関数 corrということで、比較してみましょう。

Rのデフォルトの相関関数は230秒です。

自作R相関関数 - 30秒

C++で書かれた関数 - 0.33秒

でも、この問題は解決できますし、利便性やコードを書くスピードに関しても、Rはどの言語よりもはるかに優れていると思います。

 
mytarmailS:

ここで反論させていただくと、ナグはスピードの意味で、ユーリに絶対賛成なのですが...。

Rの場合、ほとんどの問題に対して既成の解決策が見つかる可能性が高いのですが、スピードで行き詰まることもあります。

そういえば、相関関数を使って多くのパラメータを探索するのが大変でした。最初はRの組み込み関数(ちなみにC++で書かれています)を使いましたが、様々なメソッドがオーバーロードされているため、私のサイクルの1ラウンドの計算に約3.9分、230秒かかり、この時間は許容できませんでした。第2段階は、何も考えずにRで独自の関数を書き、私の関数は30秒で動きましたが満足できませんでした。Rが私の最初かつ唯一の言語だったので、友人に頼んで関数 corrということで、比較してみましょう。

Rのデフォルトの相関係数は230秒です。

自作R相関関数 - 30秒

C++で書かれた関数 - 0.33秒

しかし、この問題は解決され、コーディングの利便性とスピードに関しては、私はRがすべての言語からはるかに離れていると思います。

で、これがRとどう関係するんだ?

繰り返しになりますが、Rにはあなたのアイデアを実現するために必要なものが、スピードも含めてすべて揃っています。

もうひとつは、誰もが、そしてすべてが使い方を知っているわけではないことです。

しかし、これは言葉の問題ではありません。

ところで、Srrのインライン関数の便利さとシンプルさには驚かされます。

グッドラック

 
mytarmailS:

ここで反論させてもらうと、ナグはスピードの意味で、ユーリに絶対賛成なのだが...。

ほとんどの問題に対して、既成の解決策が見つかる可能性が高いのですが、時にはスピードにこだわってしまうこともあります。

そういえば、相関関数を使って多くのパラメータを探索するのが大変でした。最初はRの組み込み関数(ちなみにC++で書かれています)を使いましたが、様々なメソッドがオーバーロードされているため、私のサイクルの1ラウンドの計算に約3.9分、230秒かかり、この時間は許容できませんでした。第2段階は、何も考えずにRで独自の関数を書き、私の関数は30秒で動きましたが満足できませんでした。Rが私の最初かつ唯一の言語だったので、友人に頼んで関数 corrということで、比較してみましょう。

Rのデフォルトの相関係数は230秒です。

自作R相関関数 - 30秒

C++で書かれた関数 - 0.33秒

しかし、この問題は解決され、コーディングの利便性とスピードに関しては、私はRがすべての言語からかけ離れた存在であると考えています。

一般的な質問を特定の例に置き換えるのはやめましょう。

RプログラミングSYSTEMにおけるコードの効率化について一般的な話をするならば、効率化の基本について書きました。多くのプログラミングシステムとは対照的に、Rにおける計算集約的なアルゴリズムは、最適化やGAなどのように直接使用する可能性はあるものの、間接的に使用され、プログラミング全般において最も効率的に、いくつかの内容関数の内部で使用されます。

このような効率性の最も明確な例が、最も計算量の多い演算に属する行列演算である。行列演算は単純なコード行に過ぎないので、プログラマは使用されているライブラリを全く意識しないかもしれません。

それに、私が効率化について書いていないことは、あなたが書いていることです。Rの構造が、この挿入がメインコードに有機的に付加されることを重視して、snrの部分を書く能力である。そして、あなたが挙げた例は、まさにRの典型的な例です。

 
さて、効率Rの話題を閉じることを提案します。すでに当たり前のことを繰り返し始めているので、意味は「石油、空は青、草は緑」なのです。
 

こんにちは。

リカレントニューラルネットワークのパッケージを見つけました。https://cran.r-project.org/web/packages/rnn/rnn.pdf、 私のデータでチェックするのは面白かったです。しかし、私はまだ一度も直面したことがないものに遭遇しました。リカレントネットワークは、データが3D配列の形で特殊な方法で供給されるので、例があるという事実にもかかわらず、私はまだそれがどのように動作するかを理解することはできません。

予測変数が2つでなく100ある場合、"X "変数でどのようなコードになるのか、以下に例の一部を紹介します。

#  create training numbers
X1 = sample(0:127, 7000, replace=TRUE)
X2 = sample(0:127, 7000, replace=TRUE)
#  create training response numbers
Y <- X1 + X2
#  convert to binary
X1 <- int2bin(X1)
X2 <- int2bin(X2)
Y <- int2bin(Y)
#  Create 3 d array: dim 1: samples; dim 2: time; dim 3: variables.
X <- array( c(X1,X2), dim=c(dim(X1),2) )
理由: