Skip to content

アプリケーション内で をクリックすると、お使いのDataRobotバージョンに関する全プラットフォームドキュメントにアクセスできます。

下位互換性のあるJava API

このセクションでは、別のバージョンのDataRobotで作成されたモデルでのスコアリングコードの使用プロセスについて説明します。同じバージョンで作成されたモデルのも参照してください。

1つのJavaアプリケーションのJVMランタイムに複数のDataRobotモデルをロードできます。全てのモデルが同じバージョンのDataRobotで生成されていれば、これらのJARファイル(com.datarobot.predictionパッケージ)に埋め込まれているモデルAPIを使用しても安全です。

さまざまなバージョンのDataRobotによって生成された複数のモデルをJVMプロセスでホストしている場合、いずれかのJARファイルから正しいバージョンのモデルAPIがロードされない可能性があります。

モデルをロードしようとすると、次のような例外が生成されることがあります。

Exception in thread "main" java.lang.IllegalArgumentException:
   Cannot find a` `predictor with the 5d2db3e5bad451002ac53318 ID.

さまざまなバージョンのDataRobotによって生成された複数のモデルを使用するには、以下に説明するCompatible Model APIを使用します。

  1. datarobot-predictionおよびdatarobot-transform Mavenリファレンスをプロジェクトに追加します。

  2. すべてのクラスの名前空間をcom.datarobot.predictionからcom.datarobot.prediction.compatibleに変更します。

Compatible Model APIは、常に最新のAPIをサポートし、すべてのバージョンのDataRobotとの下位互換性があります。

Compatible Model APIを使用するコードの例を以下に示します。

import com.datarobot.prediction.compatible.IPredictorInfo;
import com.datarobot.prediction.compatible.IRegressionPredictor;
import com.datarobot.prediction.compatible.Predictors;

import java.util.HashMap;
import java.util.Map;

public class Main {

public static void main(String[] args) {
   // data is being passed as a Java map
   Map<String, Object> row = new HashMap<>();
   row.put("a", 1);
   row.put("b", "some string feature");
   row.put("c", 999);

   // below is an example of prediction of a single variable (regression)

   // model id is the name of the .jar file
   String regression_modelId = "5d2db3e5bad451002ac53318";

   // get a regression predictor object given model
   IRegressionPredictor regression_predictor =
           Predictors.getPredictor(regression_modelId);

   double scored_value = regression_predictor.score(row);

   System.out.println("The predicted variable: " + scored_value);

   // below is an example of prediction of class probabilities (classification)

   // model id is the name of the .jar file
   String classification_modelId = "5d36ee03962d7429f0a6be72";

   // get a classification predictor object given model
   IClassificationPredictor predictor =
           Predictors.getPredictor(classification_modelId);

   Map<String, Double> class_probabilities = predictor.score(row);

   for (String class_label : class_probabilities.keySet()) {
       System.out.println(String.format("The probability of the row belonging to class %s is %f",
               class_label, class_probabilities.get(class_label)));
    }
  }
}

更新しました February 22, 2022
Back to top