RPredict ()

Calls the function "predict" of a loaded model and returns the prediction result.

Synopsis

int RPredict( const string model, const dyn_string headers, const dyn_float values, int userData = 0);

Parameters

Parameter Description
model Model name
headers Array of header strings
values Values for the prediction
userData User data of the function call. The user data variable can be set to an integer value and be used to detect errors when calling R functions. Set the variable to an integer value and when the function is called and an error occurs, the specified integer value is returned.

Return Value

Prediction result

Description

Calls the function "predict" of a loaded model and returns the prediction result.

Example

The example loads the model "D:/Test/myNewModel2.RData"; First the model is created via the RRandomForest_Train function. The function REvalExp evaluates an R expression to save the model in an output file. The example also calls the function "RPredict" of the loaded model and returns the prediction result. The model that was saved as a file can then be loaded via the RLoadModel function.

#uses "CtrlR"
main()
{
  bool classification = TRUE;
  int ntree = 5;
  int mtry = 5;
  float err_rate;
  dyn_dyn_float confusion; //Return parameter of confusion matrix - see chapter Classification Wizard - Quality
  dyn_dyn_float importance; //Return parameter of importance matrix - see chapter Classification Wizard - Quality
  //Add data 
  dyn_float df1 = makeDynFloat(31,31,33,32,34,35,36); /* The size of the arrays must be identical. Each 7 items*/
  dyn_float df2 = makeDynFloat(401,381,382,392,406,410,408); /* The size of the arrays must correspond to the header size */
  dyn_float df3 = makeDynFloat(89,85,90,90,99,98,97);
  dyn_float df4 = makeDynFloat(63,68,71,73,200,300,350);
  dyn_float df5 = makeDynFloat(4,10,10,-4,8,7,8);
  dyn_float labels = makeDynFloat(0,0,1,1,2,3,3); /*The number of labels must correspond to the number of array entries */
  dyn_string headers = makeDynString ("Current", "Voltage", "Load","T_Increase","T_Ambient");
  /* The size of the headers must correspond to the number of array entries df1, df2.. */
  string H_LINE = "***************************************************************************";
  dyn_dyn_float ddf1;
  dynAppend(ddf1,df1);
  dynAppend(ddf1,df2);
  dynAppend(ddf1,df3);
  dynAppend(ddf1,df4);
  dynAppend(ddf1,df5);
  string rModelVar = "myModel2";//r model variable
  string err_desc; //Description variable for error handling
  int UserData; /* See the description of the user data. This is the return parameter for the RGetLastErr - see below */
  //Create a model via the function "RRandomForest_Train
  int retV = RRandomForest_Train(rModelVar, headers, ddf1, labels, classification, ntree, mtry, err_rate, confusion, importance);
  string out = "D:/Test/myNewModel2.RData"; //The concrete file for the model
  REvalExp(0, "save(%var%, file = %var%)", rModelVar, out);
  /*Evaluates the expression and saves the rModelVar in the out parameter */
  DebugN("Value of the out parameter:", out);
  string ModelName;
  int h = RLoadModel(out, ModelName); /* Load the model. The function returns the name of the model. ModelName contains the name of the model */
  DebugN("ModelName:",ModelName, "loaded:", h);
  DebugN("Error rate:", err_rate, "Confusion matrix:", confusion, "Importance matrix:", importance);
  //For information on confusion and importance matrices, see chapter Classification Wizard - Quality
  blob at = RGetVarSerialized(rModelVar); //Retrieves the deserialized value of the R variable rModelVar.
  if (RGetLastErr(err_desc, UserData, true) != 0) //Error handling
  {
    DebugN("Error occurred: " + err_desc); 
    return;
  } 
  DebugN("Rmodelvar:", at);
  DebugN(H_LINE);
  int row_to_predict = 5;
  int row_len = 5;
  dyn_float values;
  for(int i = 1; i <= row_len; i++)
  {
    int ret = dynAppend(values, ddf1[i][row_to_predict]); /*Add data to "values"-> Prepare values for the prediction function */
    if( ret == -1 )
    {
      DebugN("Error! dynAppend to labels failed!");
      return; 
    } 
  }
  int prediction = RPredict("myModel2", headers, values); /* Calls the function "predict" of a loaded model and returns the prediction result.*/
  //error handling
  if (RGetLastErr(err_desc, UserData, true) != 0)
  {
    DebugTN("Error occurred: " + err_desc); 
    return;
  }
  DebugN("prediction=" + prediction);
  DebugN("RPredict_test finished!");
  DebugN(H_LINE);
}

Assignment

R Functions

Availability

R Control Extension

See also

R Functions