2017-06-12 24 views
0

私の目標は、H2OのDRFモデルを私が持っているTRAIN、VALIDATION、TESTデータセットで作成し、TESTモデルのRMSE、R2、MSEなどを予測することです。以下はDRFモデルH2Oを使用した予測と得点

コードです:

DRFParameters rfParms = (DRFParameters) algParameter; 
rfParms._response_column = trainDataFrame._names[responseColumn(trainDataFrame)]; //The response column 

rfParms._train = trainDataFrame._key; 
//rfParms._valid = testDataFrame._key; 
rfParms._nfolds = 5; 
DRF job = new DRF(rfParms); 
DRFModel drf = job.trainModel().get(); // Train the model 
Frame pred = drf.score(testDataFrame); //Score the test 

ここで私は得点後の予測(R2、RMSE、MSE、MAEなど)を見つけることを続行するのか分かりません。

JAVAを使用したH2O DRFモデリングおよび予測計算にお役立てください。

答えて

0

モデルが回帰モデル、二項モデルモデル、多項モデルのいずれであるかによって、ModelMetricsRegression.make(),ModelMetricsBinomial.make()またはModelMetricsMultinomial.make()のいずれかを使用する必要があります。彼らはわずかに異なる署名を持っています - あなたはJavaのドキュメントでそれらを見つけることができます。あなたはdrfモデルからそれらを得ることができtrainDataFrameについては

、それは(この1つは、一般的なModelMetricsであるとして、あなたが適切な型にキャストする必要があるかもしれません)drf._output._training_metricsにあります。テストデータセットを検証フレームとして使用する場合は、drf._output._validation_metricsからメトリックを取得できます。

@Edit:

DRFModel drf = job.trainModel().get(); // Train the model 
Frame pred = drf.score(testDataFrame); //Score the test 
ModelMetricsBinomial mm = ModelMetricsBinomial.make(preds.vec(2), trainDataFrame.vec(rfParms._response_column)); 
double auc = mm.auc(); 
double rmse = mm.rmse(); 
double r2 = mm.r2(); 
// etc. 
+0

あなたは二項1のためにそれをブリーフィングしてくださいもらえますか? 私は 'pred'からR2 RMSEなどが必要です((フレームpred = drf.score(testDataFrame); // Score the test)) また、モデルからテストフレームの偏差を見つける必要があります。 コード例も教えていただけますか? –

+0

@RejoyMathew編集を参照してください、動作するはずですが、それを自分で実行しませんでした。 –

+0

迅速な応答を提供してくれてありがとう。 –

関連する問題