Pythonで作成したモデルをPMMLに出力してYellowfinで利用する
以前にRで作成したモデルをPMMLに出力してYellowfinで利用するざっくりした手順という記事を書きました。
今回はRではなくPythonを使って同じようなことをやってみます。
今回の動作環境
- macOS 10.13
- Anaconda 5.0.0
- Python 3.6.2
- Jupyter Notebook 4.3.0
- sklearn2pmml 0.39.0
- Yellowfin 8.0.0
- Yellowfin PMMLプラグイン-20171204
Anacondaのインストール
AnacondaはPython本体と、機械学習やデータサイエンスでよく使われるライブラリがまとめられたディストリビューションです。Jupyter Notebookも含まれています。
具体的なインストール方法については検索すれば情報がたくさん出てきますので、ここでは割愛します。
sklearn2pmmlのインストール
scikit-learnは定番のPython機械学習ライブラリです。今回もこのライブラリを使ってモデルを作成します。
そして、作成したモデルをPMML出力するためにsklearn2pmmlというライブラリを使用します。
インストールするにはターミナルで以下を実行します。
$ pip install --user --upgrade git+https://github.com/jpmml/sklearn2pmml.git
Yellowfinとプラグインのインストール
これもここでは割愛します。なお、日本国内でPMMLプラグインを入手するにはYellowfin Japan社のサポートへ連絡する必要があります。(2019年1月現在)
Jupyter NotebookでモデルとPMMLファイル作成
sklearn2pmmlのUsageに記載されている例に従って、今回はかの有名なIrisデータセットを使用した学習モデルを作成します。
まずは以下を叩いてJupyter Notebookを起動。
$ jupyter notebook
するとブラウザが立ち上がってJupyter Notebookが表示されますので、新規にnotebookを作成します。
そして、おもむろに以下のコードをコピペして、ファイルパスをご自身の環境に合わせて編集した後に実行ボタンをクリックします。
import pandas
iris_df = pandas.read_csv("/Users/xxxxxx/temp/iris_train.csv")
from sklearn.tree import DecisionTreeClassifier
from sklearn2pmml.pipeline import PMMLPipeline
pipeline = PMMLPipeline([
("classifier", DecisionTreeClassifier())
])
pipeline.fit(iris_df[iris_df.columns.difference(["Species"])], iris_df["Species"])
from sklearn2pmml import sklearn2pmml
sklearn2pmml(pipeline, "/Users/xxxxxx/temp/DecisionTreeIris.xml", with_repr = True)
実行したら指定した場所にファイルが作成されているはずです。
Yellowfinのトランスフォーメーションフローでの利用
最近のBIツールには事前にデータを準備する機能を備えているものがあります。
Yellowfin SuiteにもYellowfinデータ準備(Yellowfin Data Prep)というカテゴリーが存在します。
Yellowfin上の機能名ではトランスフォーメーションフローと呼ばれています。この機能はYellowfin 7.4以降のユーザーであればすぐに利用することができます。別途インストールする必要もありませんし、オプション料金がかかることもありません。
以前の記事では高度な関数でPMMLモデルを使用しましたが、今回はこのトランスフォーメーションフローを例に取ってみます。
まず、以下のテスト用CSVファイルをインプットステップで読み込みます。
次にトランスフォーメーションステップのPMMLモデル予測をドラッグ&ドロップし、インプットステップと接続します。
そして、DecisionTreeIris.xmlを読み込み、以下の画面の通り設定します。
あとはアウトプットステップを設定して任意のデータベースへ書き込めば、Pythonで作成した学習モデルを使って予測された値を活用することができます。
まとめ
Rと同様に、Pythonで作成したモデルもYellowfinで利用することができました。
中間にPMMLを経由することによって、学習モデルの開発環境に左右されない可搬性の高い業務運用を実現することができます。
Author And Source
この問題について(Pythonで作成したモデルをPMMLに出力してYellowfinで利用する), 我々は、より多くの情報をここで見つけました https://qiita.com/hadatuna/items/62f0ed8974b3322567b8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .