0

私は a をトレーニングしてDRFModelおり、例外の受信を評価しています: Exception in thread "main" java.lang.ClassCastException: hex.ModelMetricsRegression cannot be cast to hex.ModelMetricsBinomial

データには、0 または 1 を含む「ラベル」と呼ばれる列があり、それがターゲット列です: dRFParameters._response_column = "label". モデルはターゲット列の値を実数として扱っているようです。

python API でもこの問題が発生し、次のH2OFrame:を使用して修正しましたhdf['label'] = hdf['label'].asfactor()。私はscalaとh2oが初めてです。h2oにターゲット列をH2OFrameバイナリ(整数)で処理させる最良の方法は何だろうと思っていました。

(これは、スタック オーバーフローに関する私の最初の質問です。より具体的にする必要があるか、コード全体を添付する必要があるかどうかを教えてください。ありがとう。)

4

2 に答える 2

0

あなたが言及した解決策は、現時点で H2O でのみ利用できるものです。

この Vec が不要になった場合は、返された Vec を削除することで少し改善できます。内部 H2O の DKV ストアから以前のベクターを削除します。古い Vec も保持する場合があるため、削除は自動的には行われません。

for( i <- 0 until h2oFrame.numCols()){
  h2oFrame.replace(i, h2oFrame.vec(i).toCategoricalVec).remove()
}

1つの列をカテゴリに変えたいだけなら、次のことができます

h2oFrame.replace(h2oFrame.find("target"),h2oFrame.vec("target").toCategoricalVec).remove()
于 2016-05-07T08:21:10.810 に答える