2017-02-27 8 views
-1

RServeパッケージを使用してRとJavaを接続するアプリケーションをビルドしました。このプロジェクトでは、出力を予測するためにneuralnetを使用します。私が使用するソースコードはどこに次のようにされている。R Rserveを使用したJavaとの統合

myneuralnetscript=function(){ 
    trainingData = read.csv("D:\\Kuliah\\Semester V\\TA\\Implementasi\\training.csv") 
    testingData = read.csv("D:\\Kuliah\\Semester V\\TA\\Implementasi\\testing.csv") 

    X1training <- trainingData$open 
    X2training <- trainingData$high 
    X3training <- trainingData$low 
    X4training <- trainingData$close 
    X5training <- trainingData$volume 
    targetTraining <- trainingData$target 

    X1testing <- testingData$open 
    X2testing <- testingData$high 
    X3testing <- testingData$low 
    X4testing <- testingData$close 
    X5testing <- testingData$volume 
    targetTesting <- testingData$target 

    xTraining <- cbind(X1training,X2training,X3training,X4training,X5training) 

    sum.trainingData <- data.frame(xTraining,targetTraining) 

    net.sum <- neuralnet(targetTraining~X1training+X2training+X3training+X4training+X5training, sum.trainingData, hidden=5,act.fct="logistic") 

    xTesting <- cbind(X1testing,X2testing,X3testing,X4testing,X5testing) 

    sum.testingData <- data.frame(xTesting,targetTesting) 

    result <- compute(net.sum,sum.testingData[,1:5]) 

    return(result) 
} 

次のように生成される出力:

ここ

enter image description here

をR.

の結果にアクセスするためのJavaのプログラムでは、
public static void main(String[] args) { 

    RConnection connection = null; 

    try { 
     /* Create a connection to Rserve instance running on default port 
     * 6311 
     */ 
     connection = new RConnection(); 

    //Directory of R script 
     connection.eval("source('D:\\\\Kuliah\\\\Semester V\\\\TA\\\\Implementasi\\\\R\\\\neuralNet.R')"); 

//Call method 
     double output = connection.eval("myneuralnetscript()").asDouble(); 

     System.out.println(output); 
} catch (RserveException | REXPMismatchException e) { 
     System.out.println("There is some problem indeed..."); 
    } 
} 

ただし、表示される出力は「実際に問題があります...」です。

+0

を取得する場合は、テキストとしてのコードを投稿することができます確認してください? – freedev

+0

私はそれを更新する必要があります。 –

+0

RserveにはJavaクライアントライブラリがあります。 Mavenには新鮮なバージョンがあります。あなたは何かを試してより詳細な質問をするべきです、今質問は広すぎます –

答えて

0

無駄なメッセージを印刷するだけで例外をキャッチしないでください。 try catchを削除し、mainを宣言してExceptionをスローします。そうすれば、実際のエラーが表示されます。

Rserveが6311でローカルに実行されていないか、評価に失敗しているか、2番目の評価の結果を1つの倍精度に強制できません。

あなたはevalのを実行する代わりに

tryCatch({CODE},e=function()e) 

を行い、復帰はトライ・エラーから継承し、メッセージ

関連する問題