R Example - Teradata Vantage

Teradata Vantageā„¢ - Bring Your Own Model User Guide

Deployment
VantageCloud
VantageCore
Edition
Enterprise
IntelliFlex
Lake
VMware
Product
Teradata Vantage
Release Number
5.0
Published
October 2023
Language
English (United States)
Last Update
2024-04-06
dita:mapPath
fee1607120608274.ditamap
dita:ditavalPath
ayr1485454803741.ditaval
dita:id
fee1607120608274

ModelTable: iris_db_rf_value_transformation.R

library(dplyr)
library(tdplyr)
# Create connection
con <- td_create_context(host='server123@mydomain.com', uid='alice', pwd='alice', dType='native')
# Reference table from DBS
iris <- tbl(con, "iris_train")
# Convert iris to a local dataframe
iris_df <- as.data.frame(iris)
# Print the iris dataframe
iris_df
library(randomForest)
library(pmmlTransformations)
library(pmml)
#data(iris)
irisBox <- xform_wrap(iris_df)
irisBox <- xform_map(irisBox,
       xform_info = "[species -> derived_species][string->integer]",
       table = "./MapSpecies.csv", map_missing_to = "2"
     )
irisrf <- randomForest(as.factor(species) ~ ., data=irisBox$data[c(1:6)], importance=TRUE,
                       proximity=TRUE)
irisBox$data[c(1:6)]
tpmml <- pmml(irisrf, transforms = irisBox)
save_pmml(tpmml,"iris_db_df_map_value.pmml")

MapSpecies.csv

1,2
2,3
3,4

Query that Calls PMMLPredict Function

SELECT * FROM mldb.PMMLPredict (
  ON iris_test
  ON (SELECT * FROM pmml_models WHERE model_id='iris_db_df_map_value') DIMENSION
  USING
    Accumulate ('id')
) AS td;

Query Output

 *** Query completed. 30 rows found. 3 columns returned.
 *** Total elapsed time was 1 second.
 
 id prediction json_report
--- ---------- -----------------------------------------------------------------------------------------
 40 1          {"Predicted_species":"1","Probability_1":1.0,"Probability_3":0.0,"Probability_2":0.0}
120 3          {"Predicted_species":"3","Probability_1":0.0,"Probability_3":0.726,"Probability_2":0.274}
 80 2          {"Predicted_species":"2","Probability_1":0.0,"Probability_3":0.002,"Probability_2":0.998}
 15 1          {"Predicted_species":"1","Probability_1":0.972,"Probability_3":0.0,"Probability_2":0.028}
 55 2          {"Predicted_species":"2","Probability_1":0.0,"Probability_3":0.006,"Probability_2":0.994}
135 3          {"Predicted_species":"3","Probability_1":0.0,"Probability_3":0.75,"Probability_2":0.25}
 95 2          {"Predicted_species":"2","Probability_1":0.0,"Probability_3":0.002,"Probability_2":0.998}
 30 1          {"Predicted_species":"1","Probability_1":1.0,"Probability_3":0.0,"Probability_2":0.0}
110 3          {"Predicted_species":"3","Probability_1":0.0,"Probability_3":1.0,"Probability_2":0.0}
 70 2          {"Predicted_species":"2","Probability_1":0.0,"Probability_3":0.002,"Probability_2":0.998}