2017-12-07 3 views
1

h2oデータフレームで予測を行うときに、未知の値をどのようにキャプチャしますか?例えば訓練されていない値をキャプチャする方法h2o python

、のようなものやったとき:H 2 OのPythonのAPIに

model.predict(frame_in) 

を、プログレスバーの負荷はモデルが予測とを作っている間、その後一連のリストが出力され、それぞれに見られる未知のラベルを詳述モデル予測フィーチャの列挙型のうちの1つです。例えば。

/home/mapr/anaconda2/lib/python2.7/site-packages/h2o/job.py:69: UserWarning: 
Test/Validation dataset column 'feature1' has levels not trained on: [, <values>] 

この未知のレベルをPythonオブジェクトとして取得する方法はありますか?ありがとう。

h2o MOJO秒で作業し、getTotalUnknownCategoricalLevelsSeen()と呼ばれるjava methodありますが、私はh2o pythonドキュメントでは、このようなものを見つけることができませんでした。

答えて

0

stderrからの警告出力を一時的にキャプチャして終了しました。私は、その後の空白を削除した(

import contextlib 
import StringIO 


@contextlib.contextmanager 
def stderr_redirect(where): 
    """ 
    Temporarily redirect stdout to a specified python object 
    see https://stackoverflow.com/a/14197079 
    """ 
    sys.stderr = where 
    try: 
     yield where 
    finally: 
     sys.stderr = sys.__stderr__ 


# make prediction on data 
with stderr_redirect(StringIO.StringIO()) as new_stderr: 
    preds = est.predict(frame_in) 

print 'Prediction complete' 
new_stderr.seek(0) 
# capture any warning output 
preds_stderr = new_stderr.read() 

が続いて目に見えない値の列名とリストが含まれてのみ出力ラインにフィルタリングするために正規表現を使用し、その後、別の正規表現は、単にリストを取得するためにフィルタリングすると:ここでは、関連するスニペットです.split(',')を使用して、値のというPython文字列を取得します)。正規表現を使用して同じ行から列名を取得し、それらをタプルのリストでペアにすることもできます。

関連する問題