verticapy.machine_learning.vertica.ensemble.XGBClassifier.confusion_matrix#
- XGBClassifier.confusion_matrix(pos_label: bool | float | str | timedelta | datetime | None = None, cutoff: int | float | Decimal | None = None) TableSample #
Computes the model confusion matrix.
Parameters#
- pos_label: PythonScalar, optional
Label to consider as positive. All the other classes are merged and considered as negative for multiclass classification. If the ‘pos_label’ is not defined, the entire confusion matrix is drawn.
- cutoff: PythonNumber, optional
Cutoff for which the tested category is accepted as a prediction. It is only used if ‘pos_label’ is defined.
Returns#
- TableSample
confusion matrix.
Examples#
For this example, we will use the Iris dataset.
import verticapy.datasets as vpd data = vpd.load_iris() train, test = data.train_test_split(test_size = 0.2)
123SepalLengthCmNumeric(7)123SepalWidthCmNumeric(7)123PetalLengthCmNumeric(7)123PetalWidthCmNumeric(7)AbcSpeciesVarchar(30)1 3.3 4.5 5.6 7.8 Iris-setosa 2 3.3 4.5 5.6 7.8 Iris-setosa 3 3.3 4.5 5.6 7.8 Iris-setosa 4 3.3 4.5 5.6 7.8 Iris-setosa 5 3.3 4.5 5.6 7.8 Iris-setosa 6 3.3 4.5 5.6 7.8 Iris-setosa 7 3.3 4.5 5.6 7.8 Iris-setosa 8 3.3 4.5 5.6 7.8 Iris-setosa 9 3.3 4.5 5.6 7.8 Iris-setosa 10 3.3 4.5 5.6 7.8 Iris-setosa 11 3.3 4.5 5.6 7.8 Iris-setosa 12 3.3 4.5 5.6 7.8 Iris-setosa 13 3.3 4.5 5.6 7.8 Iris-setosa 14 3.3 4.5 5.6 7.8 Iris-setosa 15 3.3 4.5 5.6 7.8 Iris-setosa 16 3.3 4.5 5.6 7.8 Iris-setosa 17 3.3 4.5 5.6 7.8 Iris-setosa 18 3.3 4.5 5.6 7.8 Iris-setosa 19 3.3 4.5 5.6 7.8 Iris-setosa 20 3.3 4.5 5.6 7.8 Iris-setosa 21 3.3 4.5 5.6 7.8 Iris-setosa 22 3.3 4.5 5.6 7.8 Iris-setosa 23 3.3 4.5 5.6 7.8 Iris-setosa 24 3.3 4.5 5.6 7.8 Iris-setosa 25 3.3 4.5 5.6 7.8 Iris-setosa 26 3.3 4.5 5.6 7.8 Iris-setosa 27 3.3 4.5 5.6 7.8 Iris-setosa 28 3.3 4.5 5.6 7.8 Iris-setosa 29 3.3 4.5 5.6 7.8 Iris-setosa 30 3.3 4.5 5.6 7.8 Iris-setosa 31 3.3 4.5 5.6 7.8 Iris-setosa 32 3.3 4.5 5.6 7.8 Iris-setosa 33 3.3 4.5 5.6 7.8 Iris-setosa 34 3.3 4.5 5.6 7.8 Iris-setosa 35 3.3 4.5 5.6 7.8 Iris-setosa 36 3.3 4.5 5.6 7.8 Iris-setosa 37 3.3 4.5 5.6 7.8 Iris-setosa 38 3.3 4.5 5.6 7.8 Iris-setosa 39 3.3 4.5 5.6 7.8 Iris-setosa 40 3.3 4.5 5.6 7.8 Iris-setosa 41 3.3 4.5 5.6 7.8 Iris-setosa 42 3.3 4.5 5.6 7.8 Iris-setosa 43 4.3 3.0 1.1 0.1 Iris-setosa 44 4.3 4.7 9.6 1.8 Iris-virginica 45 4.3 4.7 9.6 1.8 Iris-virginica 46 4.3 4.7 9.6 1.8 Iris-virginica 47 4.3 4.7 9.6 1.8 Iris-virginica 48 4.3 4.7 9.6 1.8 Iris-virginica 49 4.3 4.7 9.6 1.8 Iris-virginica 50 4.3 4.7 9.6 1.8 Iris-virginica 51 4.3 4.7 9.6 1.8 Iris-virginica 52 4.3 4.7 9.6 1.8 Iris-virginica 53 4.3 4.7 9.6 1.8 Iris-virginica 54 4.3 4.7 9.6 1.8 Iris-virginica 55 4.3 4.7 9.6 1.8 Iris-virginica 56 4.3 4.7 9.6 1.8 Iris-virginica 57 4.3 4.7 9.6 1.8 Iris-virginica 58 4.3 4.7 9.6 1.8 Iris-virginica 59 4.3 4.7 9.6 1.8 Iris-virginica 60 4.3 4.7 9.6 1.8 Iris-virginica 61 4.3 4.7 9.6 1.8 Iris-virginica 62 4.3 4.7 9.6 1.8 Iris-virginica 63 4.3 4.7 9.6 1.8 Iris-virginica 64 4.3 4.7 9.6 1.8 Iris-virginica 65 4.3 4.7 9.6 1.8 Iris-virginica 66 4.3 4.7 9.6 1.8 Iris-virginica 67 4.3 4.7 9.6 1.8 Iris-virginica 68 4.3 4.7 9.6 1.8 Iris-virginica 69 4.3 4.7 9.6 1.8 Iris-virginica 70 4.3 4.7 9.6 1.8 Iris-virginica 71 4.3 4.7 9.6 1.8 Iris-virginica 72 4.3 4.7 9.6 1.8 Iris-virginica 73 4.3 4.7 9.6 1.8 Iris-virginica 74 4.3 4.7 9.6 1.8 Iris-virginica 75 4.3 4.7 9.6 1.8 Iris-virginica 76 4.3 4.7 9.6 1.8 Iris-virginica 77 4.3 4.7 9.6 1.8 Iris-virginica 78 4.3 4.7 9.6 1.8 Iris-virginica 79 4.3 4.7 9.6 1.8 Iris-virginica 80 4.3 4.7 9.6 1.8 Iris-virginica 81 4.3 4.7 9.6 1.8 Iris-virginica 82 4.3 4.7 9.6 1.8 Iris-virginica 83 4.3 4.7 9.6 1.8 Iris-virginica 84 4.3 4.7 9.6 1.8 Iris-virginica 85 4.3 4.7 9.6 1.8 Iris-virginica 86 4.4 2.9 1.4 0.2 Iris-setosa 87 4.4 3.0 1.3 0.2 Iris-setosa 88 4.4 3.2 1.3 0.2 Iris-setosa 89 4.5 2.3 1.3 0.3 Iris-setosa 90 4.6 3.1 1.5 0.2 Iris-setosa 91 4.6 3.2 1.4 0.2 Iris-setosa 92 4.6 3.4 1.4 0.3 Iris-setosa 93 4.6 3.6 1.0 0.2 Iris-setosa 94 4.7 3.2 1.3 0.2 Iris-setosa 95 4.7 3.2 1.6 0.2 Iris-setosa 96 4.8 3.0 1.4 0.1 Iris-setosa 97 4.8 3.0 1.4 0.3 Iris-setosa 98 4.8 3.1 1.6 0.2 Iris-setosa 99 4.8 3.4 1.6 0.2 Iris-setosa 100 4.8 3.4 1.9 0.2 Iris-setosa Rows: 1-100 | Columns: 5Let’s import the model:
from verticapy.machine_learning.vertica import NearestCentroid
Then we can create the model:
model = NearestCentroid(p = 2)
We can now fit the model:
model.fit( train, [ "SepalLengthCm", "SepalWidthCm", "PetalLengthCm", "PetalWidthCm", ], "Species", test, )
We can get the confusion matrix:
model.confusion_matrix() Out[24]: array([[ 9, 12, 0], [ 0, 8, 0], [ 0, 7, 13]])
To get the confusion matrix of a particular class:
model.confusion_matrix(pos_label= "Iris-setosa") Out[25]: array([[28, 0], [12, 9]])
Important
For this example, a specific model is utilized, and it may not correspond exactly to the model you are working with. To see a comprehensive example specific to your class of interest, please refer to that particular class.