Loading...

verticapy.machine_learning.vertica.decomposition.MCA.deploySQL

MCA.deploySQL(X: Annotated[str | list[str], 'STRING representing one column or a list of columns'] | None = None, n_components: int = 0, cutoff: Annotated[int | float | Decimal, 'Python Numbers'] = 1, key_columns: Annotated[str | list[str], 'STRING representing one column or a list of columns'] | None = None, exclude_columns: Annotated[str | list[str], 'STRING representing one column or a list of columns'] | None = None) str

Returns the SQL code needed to deploy the model.

Parameters

X: SQLColumns, optional

list of the columns used to deploy the model. If empty, the model predictors are used.

n_components: int, optional

Number of components to return. If set to 0, all the components are deployed.

cutoff: PythonNumber, optional

Specifies the minimum accumulated explained variance. Components are taken until the accumulated explained variance reaches this value.

key_columns: SQLColumns, optional

Predictors used during the algorithm computation that will be deployed with the principal components.

exclude_columns: SQLColumns, optional

Columns to exclude from the prediction.

Returns

str

the SQL code needed to deploy the model.

Examples

For this example, we will use the winequality dataset.

import verticapy.datasets as vpd

data = vpd.load_winequality()
123
fixed_acidity
Numeric(8)
123
volatile_acidity
Numeric(9)
123
citric_acid
Numeric(8)
123
residual_sugar
Numeric(9)
123
chlorides
Float(22)
123
free_sulfur_dioxide
Numeric(9)
123
total_sulfur_dioxide
Numeric(9)
123
density
Float(22)
123
pH
Numeric(8)
123
sulphates
Numeric(8)
123
alcohol
Float(22)
123
quality
Integer
123
good
Integer
Abc
color
Varchar(20)
13.90.2250.44.20.0329.0118.00.9893.570.3612.881white
24.70.3350.141.30.03669.0168.00.992123.470.4610.550white
34.70.4550.181.90.03633.0106.00.987463.210.8314.071white
44.70.7850.03.40.03623.0134.00.989813.530.9213.860white
54.90.3450.341.00.06832.0143.00.991383.240.410.150white
64.90.3450.341.00.06832.0143.00.991383.240.410.150white
74.90.420.02.10.04816.042.00.991543.710.7414.071red
85.00.270.41.20.07642.0124.00.992043.320.4710.160white
95.00.310.06.40.04643.0166.00.9943.30.639.960white
105.00.40.54.30.04629.080.00.99023.490.6613.660red
115.00.440.0418.60.03938.0128.00.99853.370.5710.260white
125.10.110.321.60.02812.090.00.990083.570.5212.260white
135.10.140.250.70.03915.089.00.99193.220.439.260white
145.10.1650.225.70.04742.0146.00.99343.180.559.960white
155.10.330.221.60.02718.089.00.98933.510.3812.571white
165.10.330.221.60.02718.089.00.98933.510.3812.571white
175.10.330.221.60.02718.089.00.98933.510.3812.571white
185.10.390.211.70.02715.072.00.98943.50.4512.560white
195.20.20.273.20.04716.093.00.992353.440.5310.171white
205.20.210.311.70.04817.061.00.989533.240.3712.071white
215.20.220.466.20.06641.0187.00.993623.190.429.7333333333333350white
225.20.310.22.40.02727.0117.00.988863.560.4513.071white
235.20.320.251.80.10313.050.00.99573.380.559.250red
245.20.340.376.20.03142.0133.00.990763.250.4112.560white
255.20.360.021.60.03124.0104.00.98963.440.3512.260white
265.20.3650.0813.50.04137.0142.00.9973.460.399.960white
275.20.480.041.60.05419.0106.00.99273.540.6212.271red
285.20.50.182.00.03623.0129.00.989493.360.7713.471white
295.30.160.391.00.02840.0101.00.991563.570.5910.660white
305.30.160.391.00.02840.0101.00.991563.570.5910.660white
315.30.1650.241.10.05125.0105.00.99253.320.479.150white
325.30.230.560.90.04146.0141.00.991193.160.629.750white
335.30.30.31.20.02925.093.00.987423.310.413.671white
345.30.330.31.20.04825.0119.00.990453.320.6211.360white
355.30.360.276.30.02840.0132.00.991863.370.411.660white
365.30.360.276.30.02840.0132.00.991863.370.411.660white
375.30.40.253.90.03145.0130.00.990723.310.5811.7571white
385.30.470.112.20.04816.089.00.991823.540.8813.671red
395.30.470.112.20.04816.089.00.991823.540.8813.566666666666771red
405.30.7150.191.50.1617.062.00.993953.620.6111.050red
415.40.220.291.20.04569.0152.00.991783.760.6311.071white
425.40.5950.12.80.04226.080.00.99323.360.389.350white
435.40.740.091.70.08916.026.00.994023.670.5611.660red
445.50.120.331.00.03823.0131.00.991643.250.459.850white
455.50.120.331.00.03823.0131.00.991643.250.459.850white
465.50.140.274.60.02922.0104.00.99493.340.449.050white
475.50.140.274.60.02922.0104.00.99493.340.449.050white
485.50.160.311.20.02631.068.00.98983.330.4411.6560white
495.50.160.311.20.02631.068.00.98983.330.4411.633333333333360white
505.50.180.225.50.03710.086.00.991563.460.4412.250white
515.50.240.451.70.04622.0113.00.992243.220.4810.050white
525.50.290.31.10.02220.0110.00.988693.340.3812.871white
535.50.310.293.00.02716.0102.00.990673.230.5611.260white
545.50.320.454.90.02825.0191.00.99223.510.4911.571white
555.50.350.351.10.04514.0167.00.9923.340.689.960white
565.50.3750.381.70.03617.098.00.991423.290.3910.560white
575.60.150.265.550.05151.0139.00.993363.470.511.060white
585.60.150.315.30.0388.079.00.99233.30.3910.560white
595.60.160.271.40.04453.0168.00.99183.280.3710.160white
605.60.1750.290.80.04320.067.00.991123.280.489.960white
615.60.1850.197.10.04836.0110.00.994383.260.419.560white
625.60.1850.197.10.04836.0110.00.994383.260.419.560white
635.60.220.321.20.02429.097.00.988233.20.4613.0571white
645.60.260.181.40.03418.0135.00.991743.320.3510.260white
655.60.260.265.70.03112.080.00.99233.250.3810.850white
665.60.260.511.40.02925.093.00.994283.230.4910.560white
675.60.280.284.20.04452.0158.00.9923.350.4410.771white
685.60.30.16.40.04334.0142.00.993823.140.489.850white
695.60.350.145.00.04648.0198.00.99373.30.7110.350white
705.60.490.134.50.03917.0116.00.99073.420.913.771white
715.60.490.134.50.03917.0116.00.99073.420.913.771white
725.60.660.02.20.0873.011.00.993783.710.6312.871red
735.60.660.02.20.0873.011.00.993783.710.6312.871red
745.70.150.4711.40.03549.0128.00.994563.030.3410.581white
755.70.180.262.20.02321.095.00.98933.070.5412.360white
765.70.180.361.20.0469.071.00.991993.70.6810.971white
775.70.20.32.50.04638.0125.00.992763.340.59.960white
785.70.210.320.90.03838.0121.00.990743.240.4610.660white
795.70.210.374.50.0458.0140.00.993323.290.6210.660white
805.70.220.216.00.04441.0113.00.998623.220.468.960white
815.70.220.216.00.04441.0113.00.998623.220.468.960white
825.70.220.216.00.04441.0113.00.998623.220.468.960white
835.70.220.216.00.04441.0113.00.998623.220.468.960white
845.70.220.216.00.04441.0113.00.998623.220.468.960white
855.70.220.293.50.0427.0146.00.989993.170.3612.160white
865.70.230.289.650.02526.0121.00.99253.280.3811.360white
875.70.250.2612.50.04952.5106.00.996913.080.459.460white
885.70.250.2612.50.04952.5120.00.996913.080.459.460white
895.70.250.2711.50.0424.0120.00.994113.330.3110.860white
905.70.260.2417.80.05923.0124.00.997733.30.510.150white
915.70.260.2417.80.05923.0124.00.997733.30.510.150white
925.70.260.2417.80.05923.0124.00.997733.30.510.150white
935.70.270.321.20.04620.0155.00.99343.80.4110.260white
945.70.280.2417.50.04460.0167.00.99893.310.449.450white
955.70.320.181.40.02926.0104.00.99063.440.3711.060white
965.70.320.384.750.03323.094.00.9913.420.4211.871white
975.70.360.344.20.02621.077.00.99073.410.4511.960white
985.80.140.156.10.04227.0123.00.993623.060.69.960white
995.80.150.321.20.03714.0119.00.991373.190.510.260white
1005.80.170.341.80.04596.0170.00.990353.380.911.881white
Rows: 1-100 | Columns: 14

We can drop the “color” column as it is varchar type.

data.drop("color")

Let’s import the model:

from verticapy.machine_learning.vertica import PCA

Then we can create the model:

model = PCA(
    n_components = 3,
)

And train it:

model.fit(data)


=======
columns
=======
index|        name        |  mean   |   sd   
-----+--------------------+---------+--------
  1  |   fixed_acidity    | 7.21531 | 1.29643
  2  |  volatile_acidity  | 0.33967 | 0.16464
  3  |    citric_acid     | 0.31863 | 0.14532
  4  |   residual_sugar   | 5.44324 | 4.75780
  5  |     chlorides      | 0.05603 | 0.03503
  6  |free_sulfur_dioxide |30.52532 |17.74940
  7  |total_sulfur_dioxide|115.74457|56.52185
  8  |      density       | 0.99470 | 0.00300
  9  |         ph         | 3.21850 | 0.16079
 10  |     sulphates      | 0.53127 | 0.14881
 11  |      alcohol       |10.49180 | 1.19271
 12  |      quality       | 5.81838 | 0.87326
 13  |        good        | 0.19655 | 0.39742


===============
singular_values
===============
index| value  |explained_variance|accumulated_explained_variance
-----+--------+------------------+------------------------------
  1  |58.06985|      0.95351     |            0.95351           
  2  |11.98567|      0.04062     |            0.99413           
  3  | 4.13105|      0.00483     |            0.99896           


====================
principal_components
====================
index|  PC1   |  PC2   |  PC3   
-----+--------+--------+--------
  1  |-0.00741|-0.00537| 0.02386
  2  |-0.00118|-0.00079| 0.00091
  3  | 0.00049|-0.00025| 0.00192
  4  | 0.04102| 0.01863| 0.99519
  5  |-0.00017| 0.00007| 0.00018
  6  | 0.23048| 0.97262|-0.02711
  7  | 0.97217|-0.23139|-0.03586
  8  | 0.00000| 0.00000| 0.00046
  9  |-0.00066| 0.00065|-0.00691
 10  |-0.00070| 0.00035|-0.00194
 11  |-0.00545| 0.00288|-0.08266
 12  |-0.00053| 0.00916|-0.00889
 13  |-0.00033| 0.00257|-0.00593


========
counters
========
   counter_name   |counter_value
------------------+-------------
accepted_row_count|    6497     
rejected_row_count|      0      
 iteration_count  |      1      


===========
call_string
===========
SELECT PCA('"public"."_verticapy_tmp_pca_v_mldb_2b771cee979711efa8720242ac120002_"', '"public"."_verticapy_tmp_view_v_mldb_2ba8d982979711efa8720242ac120002_"', '"fixed_acidity", "volatile_acidity", "citric_acid", "residual_sugar", "chlorides", "free_sulfur_dioxide", "total_sulfur_dioxide", "density", "pH", "sulphates", "alcohol", "quality", "good"'
USING PARAMETERS scale=false, num_components=3);

Once the model is trained, we can extract the SQL conveniently:

model.deploySQL()
Out[3]: 'APPLY_PCA("fixed_acidity", "volatile_acidity", "citric_acid", "residual_sugar", "chlorides", "free_sulfur_dioxide", "total_sulfur_dioxide", "density", "pH", "sulphates", "alcohol", "quality", "good" USING PARAMETERS model_name = \'"public"."_verticapy_tmp_pca_v_mldb_2b771cee979711efa8720242ac120002_"\', match_by_pos = \'true\', cutoff = 1)'

Note

Refer to PCA or SVD for a more detailed example.