clew

気になるモノ 気になる人 気になる言葉

*

H2Oを用いたディープラーニング。まずは環境構築する。手順の覚え書き。

      2016/02/11

H2Oの環境構築 全手順

まず最初に H2Oがどんなものかとか、そういうことには一切触れません。無知な僕が説明するよりも検索して情報を集めた方がいいですからね。

ここでは実際に使うために ”何をどうすればいいのか?” ってことだけ記録しておきます。

1、H2Oのダウンロード

まずはダウンロードからです。

これはもしかしたら必要ないかも知れません。というのも実際に必要なものは ”R” だからです。

そのRもブラウザでH2Oにアクセスするためのアドレスを表示させるためだけであり、Rで式を書いて計算させるということではないようです。

ちょっと分かりづらいかもしれませんが、まず必要なものは ”R” です。ダウンロードは以下のアドレスより行いました。

http://cran.md.tsukuba.ac.jp/

ここで環境に合わせてダウンロードとインストールを行います。僕の場合はウィンドウズですから Download R for Windows でOKでした。

2、Rの作業用ディレクトリの確認

さて、Rのインストールが終了するとデスクトップ、もしくはスタートメニューにRのアイコンが表示されます。これをクリックでRを起動します。

インストール環境はすべてデフォルトです。カスタマイズはしませんでした。

あ、大事なことなんですが・・Rにおいては逐一 ”現在の作業フォルダがどこか?” ってのを確認しておく必要があります。これが分かってないと肝心のファイルやライブイラリーを呼び出すときに混乱を引き起こします。

なのでRを起動する前に ”すべての作業を行うディレクトリ” ってのを決めておきます。

たとえばマイドキュメントとか、どこでもいいので分かりやすいように名前をつけて空のフォルダをつくっておきます。

1、作業ディレクトリへのアクセス(変更)

Rのデフォルト(初期設定)では、おそらくマイドキュメントがカレントディレクトリになっているはずです。これを作業用ディレクトリに変更しなくてはなりません。

Rguiを起動すると赤い不等式? > が表示されていると思います。

これに続けていろいろな式を書いていきますが、ここではそれは使いません。もっとも単純で分かりやすい方法は画像にあるように一番上の左にある file というボタンを押します。

そうするとタブが開きます。change dir・・という箇所を選択します。

これで見慣れたエクスプローラーで開きたいフォルダを選択できるようになります。

R ディレクトリの確認

あらかじめ設定しておいたフォルダを選択しますと、ここがRの作業用フォルダとなります。

2、RにH2Oをインストールする

作業用フォルダに移動したら次にH2Oをインストールします。

# 作業ディレクトリへの移動
setwd("path") # path=先ほど作成した作業用ディレクトリへのパス

# パッケージH2Oのインストール
install.packages("h2o")

#現在起動しているRセッションにパッケージH2Oを読み込む
library(h2o)

# H2Oを起動する

# nthreadsでスレッド数を指定(-1は全てのCPUコアを使用することを意味する)

# max_mem_sizeで使用可能な最大メモリ数を指定(ここでは2GB)
localH2O = h2o.init(nthreads = -1, max_mem_size="2g")

これは http://enterprisezine.jp/article/detail/6539?p=2 からの引用ですが、以下のコードを順にペーストしていきます。貼り付ける場所は > の後ろです。貼り付けたらエンターキーを押すと処理が始まります。

処理が完了すると再び > |が点滅します。それまでは待ってください。

1、

install.packages("h2o")

2、
library(h2o)

Your next step で始まる文に注意!!

さて、とりあえず上に示したコマンドを入力すると処理が終わるのですが・・

状況によって表示内容が変化するようです。

library(h2o) というコマンドの後は・・・

Loading required package: statmod
Loading required package: survival

と、表示されているはずです。問題はこのあと・・

Your next step is~ と文章が表示されます。が、ここにH2Oへのアクセスのアドレスが表示されていれば、そのままコピー&ペーストでブラウザでアクセスできます。

もしも以下のように表示されていれば、もう一度表示されているコマンドを > のうしろに入力してエンターキーを押してください。

localH2O = h2o.init()

入力処理後・・

Successfully connected to ~ というように新たなアドレスが表示されていれば成功です。

このアドレスでブラウザでアクセスできるようになります。

ちょっと慣れないと分かりにくいのですが、H2Oってのは ”こういうもんだ” ってことですね。

3、Rの終了と保存について

さて、無事H2Oにアクセスしたあと、 ”どうしとけばいいのか?” について少し解説。

Rを使わない場合、現在の状態を保持したまま閉じます。

Rを閉じようとすると確認画面が表示されますので ”ワークスペース” を保存してください。自動的にRdateとして保存されます。呼び出すときは ファイルタブ の ロードワークスペース を選択すればOKのようです。

どうやらH2Oってのはアクセスするたびにアドレスが変わるらしくて、そのつどRにてイニシャライズ(初期化?)しなきゃダメみたいですね。

ちなみにRを閉じてすぐに保存しておいたワークスペースを開いてみました。

H2Oはすでにインストールされてるはずですから、2回目は

library(h2o)

というコマンドから始めます。
すると・・

localH2O = h2o.init()

というコマンドを打て という表示がされるんですね。

やっぱりそのつど新しいアクセスのためのアドレスを手に入れる必要があるみたいです。

なんかややこしいですね。

ブラウザ版H2Oで作業中は・・・

さて、ブラウザの方でH2Oを作業中は必ず R は開いたままにして置いてください。

作業中にRを閉じますとH2Oも動かなくなります。というか接続が切れてしまうんですね。まあ仕組みはともかく ”そういうこと” なんで。

4、データの読み込ませについて

H2Oにおいて認識されるデータ形式は ”CSV” です。そしてここが大事なんですが、文字コードはすべて UTF-8 で書きます。

以下が僕の場合の作業手順です。

1、まず必要なデータを各サイトからコピー。

2、エクセルを開いてそこにペースト。

3、必要に応じてエクセルデータを整形する。

4、整形終了後にそのエクセルデータを ”すべてコピー” する。

5、コピーデータをウインドウズのメモ帳を開いてそこにペースト。

6、ここで文字コードを ”UTF-8” で名前をつけて保存。

7、保存したメモ帳のテキストファイルをエクセルで開く。

8、エクセルで開いたテキストデータを ”区切り” する。

9、区切りができたらそのまま ”CSV” として名前をつけて保存。

これでH2Oでアップロードすると認識されます。

非常に面倒ですが仕方ないです。もっといい方法があるかもです。

H2Oにアップロードする

データのアップロードの仕方です。

ブラウザ画面の一番上にタブが並んでいます。そこの ”Data” をクリックするとメニューが開きます。

メニューのアップロードをクリックで準備完了です。

H2Oデータアップロード

画面が変わってファイル選択となります。

ここで表示されている ”Select file” をクリックしてアップロード対象ファイルを選択すればOKです。

ファイル名が表示されているので青いボタンを押して決定させます。

エラーが表示されなければ成功です。

この時点ではまだデータのアップロードは終了ではありません。おそらく日本語や記号などは文字化けしているはずです。ここでもう一度 ”submit” と書かれた青いボタンを押します。

アップしたデータが文字化けせずに正常に表示されていれば、やっと終了ですね。以下が例です。

H2O正常表示1

H2O正常表示2

日本語も記号もちゃんと表示されていますね。

ちなみに ”.hex” という変な拡張子がつけられたファイル名が ”H2O” における自作データの名前になります。

予測作業を続けるときに、そのファイル名が必要になってきます。いちいち記録する必要はありませんが、あとでファイル名を記入する必要がでてくるはず。なのでその確認方法を以下に書きます。

H2Oにおける作業状況の確認方法

まず、H2Oにおけるすべての作業は、ブラウザ画面 一番上のブラックパネルタブに集約されています。

作業状況の確認はこのタブの ”Admin” から行います。

H2O作業状況確認

タブをクリック、開いたメニューから ”Jobs” をクリックします。こうすると自分の行った作業が時系列で表示されます。

行った作業をクリックするとそのページが表示されます。タブブラウザなら開いておくことももちろん可能です。


実際の予測手順については別記事でアップ予定です。

今回はここまで。

 

 

 

 

 

 - 機械学習