予測モデルおよび発展的なモデル > 計算式デポ > 「計算式デポ」でスコア計算のコードを生成
公開日: 04/01/2021

「計算式デポ」でスコア計算のコードを生成

スコア計算のためのコードを生成すると、JMPで構築した予測モデルをさまざまな環境で使えるようになります。JMPの多くのプラットフォームにおいて、予測式を計算式デポに発行できます。なお、すべての場合において、完全なコードが生成されるわけではありません。完全なコードが生成される場合もあれば、コードの一部分だけが作成される場合もあります。また、該当のコードにサポートされていない関数が含まれていて、プログラミングを加えないと利用できない場合もあります。目的のプログラミング言語で追加のプログラミングを必要としたり、サポートされていない関数の呼び出しがあったりした場合は、そのコードを実行するとエラーになります。非常に複雑な関数を実装するには、そのプログラミング言語の何かしらのライブラリを利用しなければいけません。これらのライブラリについては、各プログラミング言語ごとの節で後述します。たとえば、コードを生成することにより、以下のような処理を実行できます。

SASコードを生成して、そのコードをSAS Model Managerで用いる。

SQLコードを生成して、そのコードをデータベースのETLプロセスに加える。

Cコードを生成して、そのコードを使ってアプリケーションを構築し、データを変換する。

Pythonコードを生成して、そのコードを使ってJupyter Notebookを作成し、スコアを動的に表示する。

JavaScriptコードを生成して、そのコードをWebアプリケーションに含め、Web閲覧者が自分のデータのスコアを計算できるようにする。

C、Python、JavaScriptの各言語では、生成されたコードを展開またはコンパイルする際に、.hファイルのような補助的なコードとユーティリティライブラリを含める必要があります。これらのファイルは、JMPのインストール時に「Scoring」フォルダに保存されます。

ヒント: 使用中のマシンのインストールフォルダの場所を検索するには、JSLコマンドの「Get Path Variable("$ALL_HOME/Scoring");」を使用します。

Cコード

生成されたCスコアコードを用いるには、ライブラリの形式でコンパイルし、アプリケーションにリンクする必要があります。リンクは、静的リンクと動的リンクのどちらでもかまいません。コンパイルとリンクに必要なヘッダーファイル(jmp_lib.h、jmp_parms.h、jmp_score.h)が、JMPのインストール時に作成される「Scoring」フォルダ内の「C」フォルダに用意されています。

Pythonコード

生成されたPythonコードの実行に必要なファイル(jmp_score.py)が、JMPのインストール時に作成される「Scorin」フォルダ内の「Python」フォルダに用意されています。コードを実行するときには、スコアを計算するコードと同じ場所にjmp_score.pyをコピーします。

生成されたコードを呼び出してデータのスコアを計算するときは、JMPで生成されたコードと互換性のあるデータ構造に含まれたデータを渡さなければいけません。スコアを計算するPythonコードでは、辞書のような型の入出力を想定しています。値は、キーをもとに参照や代入できます。Spark、Dask、Pandasにおける行オブジェクトや、標準のPythonにおける「dict」クラスで、キーをもとに値は参照や代入できます。

Vec QuadraticやDesign Normのような線型代数演算子または高度な演算子を使用するには、PythonライブラリのNumPyが必要です。

JavaScriptコード

生成されたJavaScriptコードの実行に必要なファイル(jmp_score.js)が、「Scoring」フォルダ内の「JavaScript」フォルダに用意されています。

SASコード

生成されたSASコードを、PROC DS2ステートメントでラップすれば、SAS In-Database Code AcceleratorをはじめとするSASアプリケーションで使用できます。コードはSASウィンドウに追加され、コードに先行するコメントにおいて変数名のマッピング情報が書かれています。中間的な数値を計算するための一時的な変数は、DATAステップの最後にdropコマンドで削除されます。

ヒント: カテゴリカルな応答変数のロジスティックモデルやニューラルモデルなど、IfMaxを用いているコードでは、一時変数の宣言をmethod run()ステートメントの前に移動してください。

SQLコード

生成されたSQLコードを、SELECTステートメントでラップすれば、ほとんどのデータベースにおけるSQLクエリで使用できます。

注: 「placeholder」または「ERROR」を含むコードは、SQLでサポートされていない関数が使われていることを意味します。

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).