機械学習エンジン PredictionIO を試したくて環境を作ってみたので、自分用のメモとして記録しておきます。
あくまで自分の環境下なので、細かな違いは適宜読み替えてください。
(1) 環境作成・機械学習エンジンの準備 < ここ
(2) データの投入・学習環境の準備
(3) 学習結果の確認
#環境作成
Java / MySQL を使うので、先に環境を作っておきます。
その後、PredictionIO の環境を作る流れになります。
##Java
Azureのデフォルトではjdkがインストールされていないので、インストールしておきます。
インストール直後は openjdk-7 が対象だけど、今回は openjdk-8 を使います。
$ sudo add-apt-repository ppa:openjdk-r/ppa
$ sudo apt-get update
$ sudo apt-get install openjdk-8-jdk
##MySQL
MySQLは標準では5.5がインストールされるが、5.6以降がおすすめです。
mysql-apt-config のバージョンはMySQLのWEBサイトで調べて最新版を使います。
$ wget http://dev.mysql.com/get/mysql-apt-config_0.3.3-2ubuntu14.04_all.deb
$ sudo dpkg -i mysql-apt-config_0.3.3-2ubuntu14.04_all.deb
$ sudo apt-get update
$ sudo apt-get install mysql-server
$ mysql -uroot -p(rootパスワード)
mysql> create table pio;
mysql> grant all on pio.* to pio@'%' identified by '(パスワード)';
mysql> exit;
dpkgを実行すると、環境選択画面が表示されるので、Server > mysql-5.6 > Apply の順に選択。
(mysql-5.7-dmr も表示される。こちらはベータリリース。[2016/05/28現在])
mysql上での実行で、データベース名/ID/パスワード は任意に設定可能。
デフォルト(pio/pio/pio)から変更した場合は、設定内容を PredictionIO インストール後に設定ファイルに反映させる必要があります。
##PredictionIO
PredictionIOのページを参考に。
$ bash -c "$(curl -s https://install.prediction.io/install.sh)"
インストール中に入力を求められるので、
データベース: MYSQL
OS: Debian/Ubuntu
を選択。
インストールは少し時間がかかるけど待ちましょう。
完了すると、.bashrcに自動でパス設定が追記されるので、sourceで読み込んでおきます。
$ source ~/.bashrc
#機械学習エンジンの準備
##PredictionIOサーバーの実行
バックグラウンド実行しておきます。
$ pio eventserver &
実行後はステータスを確認して、動作を確認しておきます。
$ pio status
Your system is all ready to go.
と表示されていれば大丈夫です。
##テンプレートの導入
テンプレート:http://templates.prediction.io/
機械学習用のテンプレートがすでに用意されているので、こちらから探して利用します。
$ pio template get PredictionIO/template-scala-parallel-recommendation 新エンジン名
$ cd 新エンジン名
導入したテンプレートを利用してアプリを登録します。
テンプレートを導入する際に以下のエラーがでたらjdk インストール時にSSL関連のリンクがおかしくなっているので修復しましょう。
java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
$ sudo update-ca-certificates -f
##アプリの準備
アプrを準備する際、予め access-key を用意しておかないと処理が止まるようなので、別途 access-key を作っておきましょう。適当な長さ(32文字くらい?)のランダムな文字列で大丈夫なようです。
$ pio app new アプリ名 --access-key 作っておいたaccess-key
$ pio app list
データ投入をするために PythonSDK が必要なので、導入します。
$ pip install predictionio
##データ投入
Microsoft Azure + Ubuntu 14.04LTS + PredictionIO (2) へ続く。