TERR(R)によるH2O操作

TERRによるH2Oの実行

H2OをWEBで操作してディープラーニングを走らせてみましたが、
ある程度カラムが増えてくると操作が遅くなってきますし、スクリプトベースで手順を記載した方が再実行性が高いので、学習をバッチ処理で実行して見ます。

H2OはRやPythonのパッケージも配布しているので、それらの言語を使用してスクリプト化する事ができます。
Rによる実装は至る所で紹介されているので、どうせなら自社製品のTERRで動作させます。

TERRとはTIBCO社が開発しているR言語のコンパチエンジンです。
TIBCO社は元々S-PlusというS言語エンジンを開発していたのですが、
R言語が世の中の主流になってきたので、R言語の実装系として再開発しました。
再開発しただけあり、パフォーマンスはRの10倍以上と謳っています。

使用したTERRのバージョンは4.3です。4.2ではinstall.packagesに失敗しました。
また、事前にjava -jar h2o.jarでH2Oのエンジンを起動しておく必要があります。

# パッケージのインストール
install.packages("h2o" , dependencies = TRUE )

# ライブラリ呼び出し
library ( h2o ) 

h2o.init()

少しエラーが出ていますが、動作します。

# H2O ライブラリ内にあるirisデータのファイルパスを取得
irisPath = system.file("extdata", "iris.csv", package = "h2o")

# ファイルをhexにインポート
iris.hex = h2o.importFile( path = irisPath)

# モデルを構築
iris.model=  h2o.deeplearning(x = 1:4, y = "C5", training_frame = iris.hex)

結果のiris.modelを見てみます。


今回はやたら精度が悪いですね。

POJOファイルのダウンロード

# POJOファイルのダウンロード
h2o.download_pojo( iris.model , getwd()  )

既定ではユーザーディレクトリにjavaファイルが作成されます。