H2o-installation
H2O-インストール
H2Oは、以下にリストする5つの異なるオプションで構成および使用できます-
- Pythonでインストールする
- Rにインストール
- WebベースのフローGUI
- Hadoop *アナコンダクラウド
以降のセクションでは、利用可能なオプションに基づいてH2Oのインストール手順を確認します。 オプションのいずれかを使用する可能性があります。
Pythonでインストールする
PythonでH2Oを実行するには、インストールにいくつかの依存関係が必要です。 そこで、H2Oを実行するための最小限の依存関係のインストールを開始しましょう。
依存関係のインストール
依存関係をインストールするには、次のpipコマンドを実行します-
$ pip install requests
コンソールウィンドウを開き、上記のコマンドを入力して要求パッケージをインストールします。 次のスクリーンショットは、Macマシンでの上記コマンドの実行を示しています-
リクエストをインストールした後、以下に示すように、さらに3つのパッケージをインストールする必要があります-
$ pip install tabulate
$ pip install "colorama >= 0.3.8"
$ pip install future
依存関係の最新のリストは、H2O GitHubページで入手できます。 この記事の執筆時点では、次の依存関係がページにリストされています。
python 2. H2O — Installation
pip >= 9.0.1
setuptools
colorama >= 0.3.7
future >= 0.15.2
古いバージョンの削除
上記の依存関係をインストールした後、既存のH2Oインストールを削除する必要があります。 これを行うには、次のコマンドを実行します-
$ pip uninstall h2o
最新バージョンのインストール
今、私たちは次のコマンドを使用してH2Oの最新バージョンをインストールしましょう-
$ pip install -f http://h2o-release.s3.amazonaws.com/h2o/latest_stable_Pyl h2o
インストールが正常に完了すると、画面に次のメッセージが表示されます-
Installing collected packages: h2o
Successfully installed h2o-3.26.0.1
インストールのテスト
インストールをテストするために、H2Oインストールで提供されるサンプルアプリケーションの1つを実行します。 最初に次のコマンドを入力してPythonプロンプトを開始します-
$ Python3
Pythonインタープリターが起動したら、Pythonコマンドプロンプトで次のPythonステートメントを入力します-
>>>import h2o
上記のコマンドは、プログラムにH2Oパッケージをインポートします。 次に、次のコマンドを使用してH2Oシステムを初期化します-
>>>h2o.init()
画面にはクラスタ情報が表示され、この段階で次のように見えるはずです-
これで、サンプルコードを実行する準備ができました。 Pythonプロンプトで次のコマンドを入力して実行します。
>>>h2o.demo("glm")
デモは、一連のコマンドを備えたPythonノートブックで構成されています。 各コマンドを実行すると、その出力がすぐに画面に表示され、次の手順に進むためにキーを押すように求められます。 ノートブックの最後のステートメントの実行に関する部分的なスクリーンショットはここに示されています-
この段階で、Pythonのインストールが完了し、独自の実験の準備が整いました。
Rにインストール
R開発用のH2Oのインストールは、インストール用にRプロンプトを使用することを除いて、Python用のインストールと非常によく似ています。
Rコンソールの開始
マシンのRアプリケーションアイコンをクリックして、Rコンソールを起動します。 コンソール画面は、次のスクリーンショットに示すように表示されます-
H2Oのインストールは、上記のRプロンプトで行われます。 RStudioを使用する場合は、Rコンソールのサブウィンドウにコマンドを入力します。
古いバージョンの削除
まず、Rプロンプトで次のコマンドを使用して古いバージョンを削除します-
> if ("package:h2o" %in% search()) { detach("package:h2o", unload=TRUE) }
> if ("h2o" %in% rownames(installed.packages())) { remove.packages("h2o") }
依存関係のダウンロード
次のコードを使用してH2Oの依存関係をダウンロードします-
> pkgs <- c("RCurl","jsonlite")
for (pkg in pkgs) {
if (! (pkg %in% rownames(installed.packages()))) { install.packages(pkg) }
}
H2Oのインストール
Rプロンプトで次のコマンドを入力してH2Oをインストールします-
> install.packages("h2o", type = "source", repos = (c("http://h2o-release.s3.amazonaws.com/h2o/latest_stable_R")))
次のスクリーンショットは、期待される出力を示しています-
RにH2Oをインストールする別の方法があります。
CRANからRにインストールする
CRANからRをインストールするには、Rプロンプトで次のコマンドを使用します-
> install.packages("h2o")
あなたはミラーを選択するように求められます-
--- Please select a CRAN mirror for use in this session ---
ミラーサイトのリストを表示するダイアログボックスが画面に表示されます。 最寄りの場所または選択したミラーを選択します。
インストールのテスト
Rプロンプトで、次のコードを入力して実行します-
> library(h2o)
> localH2O = h2o.init()
> demo(h2o.kmeans)
生成される出力は、次のスクリーンショットに示すようになります-
RでのH2Oのインストールが完了しました。
Web GUIフローのインストール
GUI Flowをインストールするには、H20サイトからインストールファイルをダウンロードします。 ダウンロードしたファイルを任意のフォルダーに解凍します。 インストールにh2o.jarファイルが存在することに注意してください。 次のコマンドを使用して、コマンドウィンドウでこのファイルを実行します-
$ java -jar h2o.jar
しばらくすると、以下がコンソールウィンドウに表示されます。
07-24 16:06:37.304 192.168.1.18:54321 3294 main INFO: H2O started in 7725ms
07-24 16:06:37.304 192.168.1.18:54321 3294 main INFO:
07-24 16:06:37.305 192.168.1.18:54321 3294 main INFO: Open H2O Flow in your web browser: http://192.168.1.18:54321
07-24 16:06:37.305 192.168.1.18:54321 3294 main INFO:
フローを開始するには、指定されたURL* http://localhost:54321 *をブラウザーで開きます。 次の画面が表示されます-
この段階で、Flowのインストールは完了です。
Hadoop/Anaconda Cloudにインストールする
あなたがベテランの開発者でない限り、ビッグデータでH2Oを使用することは考えないでしょう。 ここで言うと、H2Oモデルは数テラバイトの巨大なデータベースで効率的に実行されます。 データがHadoopインストールまたはクラウドにある場合は、H2Oサイトに記載されている手順に従って、それぞれのデータベースにインストールします。
マシンにH2Oを正常にインストールしてテストしたので、実際の開発の準備ができました。 最初に、コマンドプロンプトから開発を確認します。 以降のレッスンでは、H2Oフローでモデルテストを行う方法を学習します。
コマンドプロンプトでの開発
次に、H2Oを使用して、機械学習アプリケーションの開発に自由に利用できる有名なアヤメのデータセットの植物を分類することを考えてみましょう。
シェルウィンドウで次のコマンドを入力してPythonインタープリターを起動します-
$ Python3
これにより、Pythonインタープリターが開始されます。 次のコマンドを使用してH2Oプラットフォームをインポートします-
>>> import h2o
分類にはランダムフォレストアルゴリズムを使用します。 これは、H2ORandomForestEstimatorパッケージで提供されます。 次のようにimportステートメントを使用してこのパッケージをインポートします-
>>> from h2o.estimators import H2ORandomForestEstimator
initメソッドを呼び出して、H2o環境を初期化します。
>>> h2o.init()
初期化が成功すると、コンソールに次のメッセージとクラスター情報が表示されます。
Checking whether there is an H2O instance running at http://localhost:54321 . connected.
次に、H2Oのimport_fileメソッドを使用して虹彩データをインポートします。
>>> data = h2o.import_file('iris.csv')
次のスクリーンショットに示すように進行状況が表示されます-
ファイルがメモリにロードされた後、ロードされたテーブルの最初の10行を表示することでこれを確認できます。 あなたはそうするために*ヘッド*メソッドを使用します-
>>> data.head()
次の出力が表形式で表示されます。
テーブルには列名も表示されます。 最初の4列をMLアルゴリズムの機能として使用し、最後の列クラスを予測出力として使用します。 MLアルゴリズムの呼び出しでこれを指定するには、まず次の2つの変数を作成します。
>>> features = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
>>> output = 'class'
次に、split_frameメソッドを呼び出して、データをトレーニングとテストに分割します。
>>> train, test = data.split_frame(ratios = [0.8])
データは80:20の比率で分割されます。 トレーニングには80%のデータを使用し、テストには20%のデータを使用します。
次に、組み込みのランダムフォレストモデルをシステムに読み込みます。
>>> model = H2ORandomForestEstimator(ntrees = 50, max_depth = 20, nfolds = 10)
上記の呼び出しでは、ツリーの数を50に、ツリーの最大深さを20に、交差検証のフォールドの数を10に設定します。 次に、モデルをトレーニングする必要があります。 私たちは次のようにtrainメソッドを呼び出すことでそうします-
>>> model.train(x = features, y = output, training_frame = train)
trainメソッドは、先に作成した特徴と出力を最初の2つのパラメーターとして受け取ります。 トレーニングデータセットはトレーニング用に設定されています。これは、完全なデータセットの80%です。 トレーニング中に、ここに示すように進捗状況が表示されます-
これで、モデル作成プロセスが終了したので、モデルをテストします。 これを行うには、トレーニング済みのモデルオブジェクトでmodel_performanceメソッドを呼び出します。
>>> performance = model.model_performance(test_data=test)
上記のメソッド呼び出しでは、テストデータをパラメーターとして送信しました。
ここで、モデルのパフォーマンスである出力を確認します。 これを行うには、単にパフォーマンスを印刷します。
>>> print (performance)
これにより、次の出力が得られます-
出力には、二乗平均誤差(MSE)、二乗平均平方根誤差(RMSE)、LogLoss、さらには混同マトリックスが表示されます。
Jupyterで実行する
コマンドからの実行を確認し、コードの各行の目的も理解しました。 Jupyter環境でコード全体を1行ずつ実行することも、プログラム全体を一度に実行することもできます。 完全なリストはここに与えられています-
import h2o
from h2o.estimators import H2ORandomForestEstimator
h2o.init()
data = h2o.import_file('iris.csv')
features = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
output = 'class'
train, test = data.split_frame(ratios=[0.8])
model = H2ORandomForestEstimator(ntrees = 50, max_depth = 20, nfolds = 10)
model.train(x = features, y = output, training_frame = train)
performance = model.model_performance(test_data=test)
print (performance)
コードを実行し、出力を観察します。 これで、データセットにランダムフォレストアルゴリズムを簡単に適用してテストできることを理解できます。 H20のパワーは、この機能をはるかに超えています。 同じデータセットで別のモデルを試して、パフォーマンスが向上するかどうかを確認する場合はどうでしょう。 これについては、後続のセクションで説明します。
別のアルゴリズムを適用する
次に、以前のデータセットにGradient Boostingアルゴリズムを適用して、そのパフォーマンスを確認する方法を学習します。 上記の完全なリストでは、以下のコードで強調表示されているように、わずかな変更を2つだけ行う必要があります-
import h2o
from h2o.estimators import H2OGradientBoostingEstimator
h2o.init()
data = h2o.import_file('iris.csv')
features = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
output = 'class'
train, test = data.split_frame(ratios = [0.8])
model = H2OGradientBoostingEstimator
(ntrees = 50, max_depth = 20, nfolds = 10)
model.train(x = features, y = output, training_frame = train)
performance = model.model_performance(test_data = test)
print (performance)
コードを実行すると、次の出力が得られます-
MSE、RMSE、混同マトリックスなどの結果を比較するだけです。 前の出力を使用して、運用展開に使用するものを決定します。 実際、いくつかの異なるアルゴリズムを適用して、目的に合った最適なアルゴリズムを決定できます。