2017-03-23 7 views
2

私は本当にシンプルだと思っていたユースケースを持っていましたが、h2oでそれを行う方法が見つかりませんでした。あなたが知っているかもしれないと思った。h2o(python)の複数のテストセットのROC

私はモデルを一度トレーニングしてから、モデルを再トレーニングしなくても、いくつかの異なるテストセット(実際には2つ以上ありますが、検証セットとテストセット)でROCを評価します。私は今それを行うために知っている方法は、モデルを毎回再訓練が必要です。

train, valid, test = fr.split_frame([0.2, 0.25], seed=1234) 
rf_v1 = H2ORandomForestEstimator(...) 
rf_v1.train(features, var_y, training_frame=train, validation_frame=valid) 
roc = rf_v1.roc(valid=1) 

rf_v1.train(features, var_y, training_frame=train, validation_frame=test) # training again with the same training set - can I avoid this? 
roc2 = rf_v1.roc(valid=1) 

私はまた私の任意のテスト・再訓練なしのセットではなく、ROC上のいくつかの指標を与えmodel_performanceを()、使用することができます。 H2OModelMetricsオブジェクトからROCを取得する方法はありますか?

ありがとうございます!

答えて

0

はい、間接的です。 H2OModelMetricsオブジェクトからたTPRとのFPRを取得:

out = rf_v1.model_performance(test) 
fprs = out.fprs 
tprs = out.tprs 
roc = zip(fprs, tprs) 

(ちなみに、私のH2ORandomForestEstimatorオブジェクトはまったくroc()方法を持っていないようですので、私はこの出力がであることを100%確実ではありませんよ私はh2oバージョン3.10.4.7を使用しています。)

1

h2oフローを使用して、モデルのパフォーマンスを検査できます。単純に:http://localhost:54321/flow/index.html(デフォルトのポートを変更した場合は、リンク内でそれを変更します)。セルに "getModel" rf_v1 ""と入力すると、フローの複数のセルにあるモデルのすべての測定値が表示されます。それは非常に便利です。 あなたは、Pythonを使用している場合は、このようなあなたのIDEでのパフォーマンスを見つけることができます。

rf_perf1 = rf_v1.model_performance(test) 

をし、このようにROCを印刷:

print (rf_perf1.auc()) 
関連する問題