8

forecastライブラリを使用して R で開発された ARIMA モデルを Java コードに変換したいと考えています。予測部分のみを実装する必要があることに注意してください。フィッティングはR自体で行うことができます。関数を見て、predictそれを Java コードに変換します。他の誰かが以前に同様の状況にあり、同じためにJavaライブラリをうまく使用できたのではないかと思っていました.

同様に、おそらくこれは具体的な答えのないより一般的な質問です。モデルの構築は Matlab/R で行うことができるが、予測/予測は Java/C++ で行う必要がある状況に対処する最善の方法は何ですか? ますます、私はそのような状況に何度も遭遇しています。弾丸を噛んで自分でコードを書く必要があると思いますが、これは通常、フィッティング/見積もりを自分で書くほど難しくありません。トピックに関するアドバイスは役に立ちます。

4

4 に答える 4

11

「R or Matlab」から「C++ or Java」について書いています。これにより、2 x 2 の選択肢が得られますが、これは私の好みでは自由度が高すぎます。そのため、ターゲットとして C++ に集中させてください。

Rでプロトタイピングし、C++ でデプロイするという、より単純なケースを考えてみましょう。使用するRパッケージが実際に C または C++ で実装されている場合、これは非常に簡単になります。必要なルーチンを他の依存関係 (ヘッダー ファイル、定義、データ構造など) から「単に」解きほぐし、必要なデータとパラメーターを提供する必要があります。私は過去に本番システムでそれを行いました。

ここでは、予測パッケージについて説明します。これはたまたまRcppArmadilloパッケージに依存しており、それ自体が優れたArmadillo C++ ライブラリをRにもたらします。そのため、実際にこれを自己完結型のユニットとして書き直すことができる可能性があります。

Armadilloは、Matlab を C++ に移植することを念頭に置いて作成されているため、Matlab を C++ に移植する場合にも興味深いものです。私はいくつかの比較的大規模な Matlab コードを C++ に移植し、大幅な速度向上を実現しました。

于 2012-04-10T13:44:11.030 に答える
1

Richante の回答に関する詳細情報: Matlab には、C/C++、C#、Java などのコンパイル済み言語との相互運用のための非常に優れた機能がいくつかあります。あなたの特定のケースでは、ツールボックス Matlab Builder JA が特に関連性があることに気付くかもしれません。これにより、Matlab コードを Java に直接エクスポートできます。つまり、Matlab でのモデル構築段階で構築したコードを Java から直接呼び出すことができます。

Mathworks からの詳細情報はこちら.

于 2012-04-10T16:45:23.890 に答える
1

これが R で可能かどうかはわかりませんが、Matlab では Java から Matlab コードを操作できます - http://www.cs.virginia.edu/~whitehouse/matlab/JavaMatlab.htmlを参照してください。これにより、Matlab にすべての予測コードを残し、Java で書かれたインターフェイスなどを持つことができます。

または、予測コードを Java で記述して、モデルを作成し、Matlab に依存せずにそのモデルを使用するプログラムを配布できるようにすることもできます。ここでは Matlabコンパイラが役立つかもしれませんが、使用したことはありません。

Matlab と Java の間で乱雑に対話する最後の簡単な方法は、(Linux 上で) Java と Matlab をインターフェイスする pty/tty ペアを持つ疑似端末を使用することです。この場合、Java から Matlab にデータを送信し、Matlab に予測結果を返させます。これはRでも機能すると思いますが、構文がわかりません。

ただし、一般的には、コードを再実装することは適切な解決策であり、Java+matlab とのインターフェイスや Matlab ライブラリの作成方法を学習するよりもおそらく迅速です。

于 2012-04-10T13:35:58.220 に答える