大規模なデータセットに対してランダム フォレスト予測を実行し、結果をデータフレームとして保存したいと考えています。https://examples.dask.org/machine-learning/parallel-prediction.htmlを読むと、「ワーカーは、単一のマシンでデータを収集することなく、予測値を共有ファイル システムに書き込むことができます」と書かれています。しかし、私はこれを行う方法を理解できません。分散クラスターに接続して次のことを行うことで、これを試しました。
x = da.from_array(i,100000)
t = model.predict(x)
t= client.persist(t)
df=dd.from_array(t)
df.to_parquet("xy.parquet")
ただし、これはクラスターで計算をトリガーせず (ダッシュボードで観察)、to_parquet
計算時x
に1TB RAM マシンでメモリ エラーが発生しますt
。クラスターに送信する他のものはすべてそこで計算されます。では、予測の結果を保存するにはどうすればよいでしょうか。
編集:これは、入力のサイズの問題のようx
です。の形をしてい(24507731,8)
ます。(24507,8)
代わりに、計算が終了した形状でランダムデータを投入するだけです。ParallelPostfit
そもそも大規模なデータの予測を可能にするはずだったので、これは非常に驚くべきことです。