2017-04-20 10 views
2

H2oパッケージを使用してランダムフォレストモデルを実行すると、次のエラーが発生します。次のように私は走ったH2oパッケージの文字列ベクトルで操作できません

Error: DistributedException from localhost/127.0.0.1:54321, caused by java.lang.IllegalArgumentException: Operation not allowed on string vector.

コードはでした: -

fit = h2o.randomForest(x = indep, y = dep, training_frame = QCAnalysis_sub_h2o, seed = 1234, ntrees = 500, mtries = 3, max_depth = 50) 

が親切にエラーに明らかにする。

+1

例のデータを追加してください。列の1つが入力として許可されていない文字ベクタです – timfaber

答えて

2

class(QCAnalysis_sub_h2o)が "H2OFrame"で、indepベクトルに文字列である列が含まれていないことを確認してください。また、as.h2o()を使用してR data.frameをH2O Frameに変換すると、列の型が保持されるため、文字列を要素に自動的に変換することはありません。各列のas.factor()機能を使用して自動的に行う必要があります(例:df[,"mycol"] <- as.factor(df[,"mycol"])。 H2Oにコピーする前に、R data.frameでこれを行うことができます。または、H2Oフレーム内のカラムを修正することができます。

あなたがh2o.importFile()コマンドを使用して直接H2OにディスクからCSVファイルを読み込む場合は、デフォルトでは要因に文字列を含む任意の列に変わりますので、私はあなたがおそらくR.

+0

ランダムフォレストはinuptとして要素だけを受け入れますか? – user3342643

+0

数字ではない(言い換えれば、カテゴリ別の)データの場合、H2Oアルゴスは因子列のみを許可しますが、文字列/文字列は許可しません。 –

+0

@ErinLeDellこの手動変換は、ターゲット列に対してのみ必要と思われますか? 'auto'は入力変数のみを修正しますか?ドキュメントが明確でないhttps://h2o-release.s3.amazonaws.com/h2o/rel-ueno/2/docs-website/h2o-docs/data-science/algo-params/categorical_encoding.html – Tagar

0

からこのフレームを上書きコピーすることを前提としいくつかのサンプルコード:

QCAnalysis_sub_h2o <- h2o.importFile(path = normalizePath("QCAnalysis_sub_h2o.csv"),header=T) 

は(ない場合は、as.data.frameでデータフレームを指定)

xとyは、あなたが

を読み取ることh2o.randomforestする列を必ず明記してください