Model.to_memmodel

In [ ]:
Model.to_memmodel()

Converts a specified Vertica model to a memModel model.

Returns

object : memModel model.

Example

In [5]:
from verticapy.learn.ensemble import RandomForestClassifier
model = RandomForestClassifier(name = "public.rf_iris",
                               n_estimators = 3,
                               max_depth = 3)
model.fit("public.iris", ["PetalLengthCm", 
                          "SepalLengthCm", 
                          "SepalWidthCm"],
                          "Species")
mmodel = model.to_memmodel()
mmodel
Out[5]:
<RandomForestClassifier>

ntrees = 3
In [6]:
# Scoring using Standard SQL 
mmodel.predict_sql(["PetalLengthCm", 
                    "SepalLengthCm", 
                    "SepalWidthCm"])
Out[6]:
"CASE WHEN PetalLengthCm IS NULL OR SepalLengthCm IS NULL OR SepalWidthCm IS NULL THEN NULL WHEN ((CASE WHEN PetalLengthCm < 1.921875 THEN 0.0 ELSE (CASE WHEN SepalLengthCm < 6.1 THEN (CASE WHEN SepalLengthCm < 5.65 THEN 0.0 ELSE 0.0 END) ELSE (CASE WHEN SepalWidthCm < 2.525 THEN 0.0 ELSE 1.0 END) END) END) + (CASE WHEN SepalLengthCm < 5.425 THEN (CASE WHEN SepalWidthCm < 2.75 THEN (CASE WHEN PetalLengthCm < 3.95 THEN 0.0 ELSE 1.0 END) ELSE 0.0 END) ELSE (CASE WHEN SepalLengthCm < 6.2125 THEN (CASE WHEN PetalLengthCm < 4.871875 THEN 0.0 ELSE 1.0 END) ELSE (CASE WHEN PetalLengthCm < 5.05625 THEN 0.0 ELSE 1.0 END) END) END) + (CASE WHEN PetalLengthCm < 1.921875 THEN 0.0 ELSE (CASE WHEN PetalLengthCm < 4.871875 THEN (CASE WHEN SepalLengthCm < 4.975 THEN 0.0 ELSE 0.0 END) ELSE (CASE WHEN PetalLengthCm < 5.05625 THEN 1.0 ELSE 1.0 END) END) END)) / 3 >= ((CASE WHEN PetalLengthCm < 1.921875 THEN 1.0 ELSE (CASE WHEN SepalLengthCm < 6.1 THEN (CASE WHEN SepalLengthCm < 5.65 THEN 0.0 ELSE 0.0 END) ELSE (CASE WHEN SepalWidthCm < 2.525 THEN 0.0 ELSE 0.0 END) END) END) + (CASE WHEN SepalLengthCm < 5.425 THEN (CASE WHEN SepalWidthCm < 2.75 THEN (CASE WHEN PetalLengthCm < 3.95 THEN 0.0 ELSE 0.0 END) ELSE 1.0 END) ELSE (CASE WHEN SepalLengthCm < 6.2125 THEN (CASE WHEN PetalLengthCm < 4.871875 THEN 0.0 ELSE 0.0 END) ELSE (CASE WHEN PetalLengthCm < 5.05625 THEN 0.0 ELSE 0.0 END) END) END) + (CASE WHEN PetalLengthCm < 1.921875 THEN 1.0 ELSE (CASE WHEN PetalLengthCm < 4.871875 THEN (CASE WHEN SepalLengthCm < 4.975 THEN 0.0 ELSE 0.0 END) ELSE (CASE WHEN PetalLengthCm < 5.05625 THEN 0.0 ELSE 0.0 END) END) END)) / 3 AND ((CASE WHEN PetalLengthCm < 1.921875 THEN 0.0 ELSE (CASE WHEN SepalLengthCm < 6.1 THEN (CASE WHEN SepalLengthCm < 5.65 THEN 0.0 ELSE 0.0 END) ELSE (CASE WHEN SepalWidthCm < 2.525 THEN 0.0 ELSE 1.0 END) END) END) + (CASE WHEN SepalLengthCm < 5.425 THEN (CASE WHEN SepalWidthCm < 2.75 THEN (CASE WHEN PetalLengthCm < 3.95 THEN 0.0 ELSE 1.0 END) ELSE 0.0 END) ELSE (CASE WHEN SepalLengthCm < 6.2125 THEN (CASE WHEN PetalLengthCm < 4.871875 THEN 0.0 ELSE 1.0 END) ELSE (CASE WHEN PetalLengthCm < 5.05625 THEN 0.0 ELSE 1.0 END) END) END) + (CASE WHEN PetalLengthCm < 1.921875 THEN 0.0 ELSE (CASE WHEN PetalLengthCm < 4.871875 THEN (CASE WHEN SepalLengthCm < 4.975 THEN 0.0 ELSE 0.0 END) ELSE (CASE WHEN PetalLengthCm < 5.05625 THEN 1.0 ELSE 1.0 END) END) END)) / 3 >= ((CASE WHEN PetalLengthCm < 1.921875 THEN 0.0 ELSE (CASE WHEN SepalLengthCm < 6.1 THEN (CASE WHEN SepalLengthCm < 5.65 THEN 1.0 ELSE 1.0 END) ELSE (CASE WHEN SepalWidthCm < 2.525 THEN 1.0 ELSE 0.0 END) END) END) + (CASE WHEN SepalLengthCm < 5.425 THEN (CASE WHEN SepalWidthCm < 2.75 THEN (CASE WHEN PetalLengthCm < 3.95 THEN 1.0 ELSE 0.0 END) ELSE 0.0 END) ELSE (CASE WHEN SepalLengthCm < 6.2125 THEN (CASE WHEN PetalLengthCm < 4.871875 THEN 1.0 ELSE 0.0 END) ELSE (CASE WHEN PetalLengthCm < 5.05625 THEN 1.0 ELSE 0.0 END) END) END) + (CASE WHEN PetalLengthCm < 1.921875 THEN 0.0 ELSE (CASE WHEN PetalLengthCm < 4.871875 THEN (CASE WHEN SepalLengthCm < 4.975 THEN 1.0 ELSE 1.0 END) ELSE (CASE WHEN PetalLengthCm < 5.05625 THEN 0.0 ELSE 0.0 END) END) END)) / 3 THEN 'Iris-virginica' WHEN ((CASE WHEN PetalLengthCm < 1.921875 THEN 0.0 ELSE (CASE WHEN SepalLengthCm < 6.1 THEN (CASE WHEN SepalLengthCm < 5.65 THEN 1.0 ELSE 1.0 END) ELSE (CASE WHEN SepalWidthCm < 2.525 THEN 1.0 ELSE 0.0 END) END) END) + (CASE WHEN SepalLengthCm < 5.425 THEN (CASE WHEN SepalWidthCm < 2.75 THEN (CASE WHEN PetalLengthCm < 3.95 THEN 1.0 ELSE 0.0 END) ELSE 0.0 END) ELSE (CASE WHEN SepalLengthCm < 6.2125 THEN (CASE WHEN PetalLengthCm < 4.871875 THEN 1.0 ELSE 0.0 END) ELSE (CASE WHEN PetalLengthCm < 5.05625 THEN 1.0 ELSE 0.0 END) END) END) + (CASE WHEN PetalLengthCm < 1.921875 THEN 0.0 ELSE (CASE WHEN PetalLengthCm < 4.871875 THEN (CASE WHEN SepalLengthCm < 4.975 THEN 1.0 ELSE 1.0 END) ELSE (CASE WHEN PetalLengthCm < 5.05625 THEN 0.0 ELSE 0.0 END) END) END)) / 3 >= ((CASE WHEN PetalLengthCm < 1.921875 THEN 1.0 ELSE (CASE WHEN SepalLengthCm < 6.1 THEN (CASE WHEN SepalLengthCm < 5.65 THEN 0.0 ELSE 0.0 END) ELSE (CASE WHEN SepalWidthCm < 2.525 THEN 0.0 ELSE 0.0 END) END) END) + (CASE WHEN SepalLengthCm < 5.425 THEN (CASE WHEN SepalWidthCm < 2.75 THEN (CASE WHEN PetalLengthCm < 3.95 THEN 0.0 ELSE 0.0 END) ELSE 1.0 END) ELSE (CASE WHEN SepalLengthCm < 6.2125 THEN (CASE WHEN PetalLengthCm < 4.871875 THEN 0.0 ELSE 0.0 END) ELSE (CASE WHEN PetalLengthCm < 5.05625 THEN 0.0 ELSE 0.0 END) END) END) + (CASE WHEN PetalLengthCm < 1.921875 THEN 1.0 ELSE (CASE WHEN PetalLengthCm < 4.871875 THEN (CASE WHEN SepalLengthCm < 4.975 THEN 0.0 ELSE 0.0 END) ELSE (CASE WHEN PetalLengthCm < 5.05625 THEN 0.0 ELSE 0.0 END) END) END)) / 3 THEN 'Iris-versicolor' ELSE 'Iris-setosa' END"
In [7]:
# Computing probabilites using Standard SQL 
mmodel.predict_proba_sql(["PetalLengthCm", 
                          "SepalLengthCm", 
                          "SepalWidthCm"])
Out[7]:
['((CASE WHEN PetalLengthCm < 1.921875 THEN 1.0 ELSE (CASE WHEN SepalLengthCm < 6.1 THEN (CASE WHEN SepalLengthCm < 5.65 THEN 0.0 ELSE 0.0 END) ELSE (CASE WHEN SepalWidthCm < 2.525 THEN 0.0 ELSE 0.0 END) END) END) + (CASE WHEN SepalLengthCm < 5.425 THEN (CASE WHEN SepalWidthCm < 2.75 THEN (CASE WHEN PetalLengthCm < 3.95 THEN 0.0 ELSE 0.0 END) ELSE 1.0 END) ELSE (CASE WHEN SepalLengthCm < 6.2125 THEN (CASE WHEN PetalLengthCm < 4.871875 THEN 0.0 ELSE 0.0 END) ELSE (CASE WHEN PetalLengthCm < 5.05625 THEN 0.0 ELSE 0.0 END) END) END) + (CASE WHEN PetalLengthCm < 1.921875 THEN 1.0 ELSE (CASE WHEN PetalLengthCm < 4.871875 THEN (CASE WHEN SepalLengthCm < 4.975 THEN 0.0 ELSE 0.0 END) ELSE (CASE WHEN PetalLengthCm < 5.05625 THEN 0.0 ELSE 0.0 END) END) END)) / 3',
 '((CASE WHEN PetalLengthCm < 1.921875 THEN 0.0 ELSE (CASE WHEN SepalLengthCm < 6.1 THEN (CASE WHEN SepalLengthCm < 5.65 THEN 1.0 ELSE 1.0 END) ELSE (CASE WHEN SepalWidthCm < 2.525 THEN 1.0 ELSE 0.0 END) END) END) + (CASE WHEN SepalLengthCm < 5.425 THEN (CASE WHEN SepalWidthCm < 2.75 THEN (CASE WHEN PetalLengthCm < 3.95 THEN 1.0 ELSE 0.0 END) ELSE 0.0 END) ELSE (CASE WHEN SepalLengthCm < 6.2125 THEN (CASE WHEN PetalLengthCm < 4.871875 THEN 1.0 ELSE 0.0 END) ELSE (CASE WHEN PetalLengthCm < 5.05625 THEN 1.0 ELSE 0.0 END) END) END) + (CASE WHEN PetalLengthCm < 1.921875 THEN 0.0 ELSE (CASE WHEN PetalLengthCm < 4.871875 THEN (CASE WHEN SepalLengthCm < 4.975 THEN 1.0 ELSE 1.0 END) ELSE (CASE WHEN PetalLengthCm < 5.05625 THEN 0.0 ELSE 0.0 END) END) END)) / 3',
 '((CASE WHEN PetalLengthCm < 1.921875 THEN 0.0 ELSE (CASE WHEN SepalLengthCm < 6.1 THEN (CASE WHEN SepalLengthCm < 5.65 THEN 0.0 ELSE 0.0 END) ELSE (CASE WHEN SepalWidthCm < 2.525 THEN 0.0 ELSE 1.0 END) END) END) + (CASE WHEN SepalLengthCm < 5.425 THEN (CASE WHEN SepalWidthCm < 2.75 THEN (CASE WHEN PetalLengthCm < 3.95 THEN 0.0 ELSE 1.0 END) ELSE 0.0 END) ELSE (CASE WHEN SepalLengthCm < 6.2125 THEN (CASE WHEN PetalLengthCm < 4.871875 THEN 0.0 ELSE 1.0 END) ELSE (CASE WHEN PetalLengthCm < 5.05625 THEN 0.0 ELSE 1.0 END) END) END) + (CASE WHEN PetalLengthCm < 1.921875 THEN 0.0 ELSE (CASE WHEN PetalLengthCm < 4.871875 THEN (CASE WHEN SepalLengthCm < 4.975 THEN 0.0 ELSE 0.0 END) ELSE (CASE WHEN PetalLengthCm < 5.05625 THEN 1.0 ELSE 1.0 END) END) END)) / 3']
In [8]:
# Scoring in-memory
mmodel.predict([[1.2, 5.6, 7.9],
                [2.3, 1.3, 5.5]])
Out[8]:
array(['Iris-setosa', 'Iris-versicolor'], dtype='<U15')
In [9]:
# Computing the probabilities in-memory
mmodel.predict_proba([[1.2, 5.6, 7.9],
                      [2.3, 1.3, 5.5]])
Out[9]:
array([[0.66666667, 0.33333333, 0.        ],
       [0.33333333, 0.66666667, 0.        ]])