2016-10-19 8 views
1

私はH2Oを使用して、ユーザーIDを列の1つとして持つ大きなデータセットに対して予測を生成しています。しかし、データセットにスコアを付けると、予測データセットにはIDが含まれません。入力データセットの順番に一致するものがあります。これは、かなりばかげたIMOです。H2O元のデータセットとスコアのマージ

H2Oに予測データセット内のID列を保持するか、それともポストスコアリングを追加するかH2Oのままにするよう指示する方法はありますか?

IDで設定されたデータと一緒にpythonやRにスコアを持ってくることには、あまりうれしくはありませんが、これが唯一のオプションである場合はcbindなどを使用してください。

答えて

0

はい、最終出力として必要なフレームの情報を単純にバインドする必要があります。ここでは完全な例があります:私は、年齢とリスクカテゴリに基づいて患者の身長を予測するための回帰を行っています。 (!)

import h2o 
h2o.init() 

patients = { 
    'age':[29, 33, 65], 
    'height':[188, 157, 175.1], 
    'name':["Tom", "Dick", "Harry"], 
    'risk':['A', 'B', 'B'] 
    } 

train = h2o.H2OFrame.from_python(
    patients, 
    destination_frame="patients" 
) 

m = h2o.estimators.H2ODeepLearningEstimator() 
m.train(["age","risk"], "height", train) 
p = m.predict(train) 

train["name"].cbind(p["predict"]) 

私はテストデータを持っていないので、例のために私はトレーニングデータを予測します。最後のステップは、trainから列を取り、pの列と結合することです。

注記:注:cbind操作は、クライアントではなくH2Oクラスタで行われます(このカテゴリを使用すると、追加の列が表示されることがあります)。したがって、これが複数のマシンにまたがる1億行のデータ行であれば完璧に動作します。

P.S.代わりにm.train(["age","height"], "risk", train)を実行してください。

関連する問題