私はH2Oにアップロードし、可能であれば単一のマシンで解析したい(あるいは、現在利用可能なハードウェアとソフトウェアよりも多くのハードウェアとソフトウェアが必要であるという確かな発見がある)、標準化され整然とした「長い」データ構造のデータを持っています。データは大きいものの、膨大ではありません。効率的な正規化された形式で3列のおそらく7000万行、スパース行列(大多数のセルがゼロ)にキャストされたときに300k×80kです。H2Oで長い形式から広い形式へデータをキャストするにはどうすればよいですか?
H2O中の分析ツールは、後者の広範なフォーマットである必要があります。全体的なモチベーションの一部は、さまざまなハードウェア設定の限界がそのようなデータを分析することですが、現時点では、データをH2Oクラスター(RがRAM内にすべて保持できるマシン)に取得するのに苦労しています。分析のためのサイズ制限について判断することはできません。これも現実のデータセットではありませんので、 - 1 61 2 1 76 1 1 89 1 1 211 1 1 296 1 1 335 1 1 404 1
ない、それは重要なこと:3つの列は、「文書ID」、「wordID」であり、「カウント」どこ
試験データは、以下のようなものです私のために、ちょうどテストセット - このテストデータはhttps://archive.ics.uci.edu/ml/machine-learning-databases/bag-of-words/docword.nytimes.txt.gz(注意、大きなダウンロード)からです。
解析するには、各documentIDの行、各wordIDの列、およびセルの数(そのドキュメント内のその単語の数)が行列で必要です。 Rの場合(これは例えばtidyr::spread
)、(この具体的なケースのようにspread
で作成された密なデータフレームは大きすぎます)tidytext::cast_sparse
、このサイズのデータでうまくいきます
最新のバージョンのH2O(h2o.aiから入手可能ですが、まだCRANにはありません)は、R関数as.h2o
を持っており、これは疎行列を理解しています。これは小さくてもまだまだ重要ではありませんデータ(例えば、3500行×7000列のテストケースでは、高密度バージョンが22秒かかると3秒で疎行列をインポートしますが、300,000×80,000の疎行列を取得すると、このエラーメッセージでクラッシュします)
asMethod(オブジェクト)でエラー:ファイル../Core/cholmod_dense.cで Cholmodエラー「大きすぎる問題」、限り前方の2つの方法があります私が言うことができるようにライン105
を:
- データをH2Oに長くてきれいで効率的な形でアップロードし、H2Oで再成形「スプレッド」操作を行います。
- R(または他の言語)で整形データの操作を行い、スパース形式でディスクに結果スパース行列を保存し、私の知る限りH2O にそこから
をアップロードし、H2Oは」doesnの#1の機能、すなわちRのtidytext::cast_sparse
またはtidyr::spread
に相当する機能を持っています。そのdata munging capabilitiesは非常に限られています。しかし、多分私は何かを逃したのだろうか?だから私の最初の(あまり楽観的ではない)質問はで、H2Oは長い形式から広い形式のデータを "キャスト"または "広げる"ことができますか?。
オプション#2はこのolder questionと同じになります。その理由は、受け入れられた答えはSVMlight形式でデータを保存することでした。しかし、これを効率的に行う方法はわかりません.SVMlight形式は、サポートベクターマシンでモデル化されていないデータには意味があることは明らかではありません(たとえば、教師なし学習問題)。RのMatrix
パッケージでサポートされているMatrixMarket形式で、疎な行列を保存することができればもっと便利ですが、私が知る限りH2Oではありません。 MatrixMarket形式は、オリジナルの長いデータと非常によく似ています。基本的には、2行のヘッダーを持つcolno rowno cellvalue
のようなスペースで区切られたファイルです。
ありがとうございます。私は今、GitHubリポジトリ(大規模では動作しませんでした)をフォークし、大きなsimple_triplet_matrixオブジェクトを持つlibsvmフォーマットをhttps://github.com/ellisp/で書き込む関数を作成しましたr-libsvm-format-read-write/blob/master/R/write-sparse-triplets-svm.R。 –
Pythonでsvmlight形式のファイルを使用したモデル構築の例はありますか? – user90772
'' df = h2o.import_file( "mydata.svmlight"、method = "SVMLight") 'を使って、H2O Pythonアルゴリズムで' training_frame = df'を設定してください。 –