VerticaPy

Python API for Vertica Data Science at Scale

Example: Methods in a Decomposition Model

In this example, we use the 'Iris' dataset to demonstrate the methods available to decomposition models.

In [1]:
from verticapy.datasets import load_iris
iris = load_iris()
display(iris)
123
SepalLengthCm
Numeric(5,2)
123
SepalWidthCm
Numeric(5,2)
123
PetalLengthCm
Numeric(5,2)
123
PetalWidthCm
Numeric(5,2)
Abc
Species
Varchar(30)
14.33.01.10.1Iris-setosa
24.42.91.40.2Iris-setosa
34.43.01.30.2Iris-setosa
44.43.21.30.2Iris-setosa
54.52.31.30.3Iris-setosa
64.63.11.50.2Iris-setosa
74.63.21.40.2Iris-setosa
84.63.41.40.3Iris-setosa
94.63.61.00.2Iris-setosa
104.73.21.30.2Iris-setosa
114.73.21.60.2Iris-setosa
124.83.01.40.1Iris-setosa
134.83.01.40.3Iris-setosa
144.83.11.60.2Iris-setosa
154.83.41.60.2Iris-setosa
164.83.41.90.2Iris-setosa
174.92.43.31.0Iris-versicolor
184.92.54.51.7Iris-virginica
194.93.01.40.2Iris-setosa
204.93.11.50.1Iris-setosa
214.93.11.50.1Iris-setosa
224.93.11.50.1Iris-setosa
235.02.03.51.0Iris-versicolor
245.02.33.31.0Iris-versicolor
255.03.01.60.2Iris-setosa
265.03.21.20.2Iris-setosa
275.03.31.40.2Iris-setosa
285.03.41.50.2Iris-setosa
295.03.41.60.4Iris-setosa
305.03.51.30.3Iris-setosa
315.03.51.60.6Iris-setosa
325.03.61.40.2Iris-setosa
335.12.53.01.1Iris-versicolor
345.13.31.70.5Iris-setosa
355.13.41.50.2Iris-setosa
365.13.51.40.2Iris-setosa
375.13.51.40.3Iris-setosa
385.13.71.50.4Iris-setosa
395.13.81.50.3Iris-setosa
405.13.81.60.2Iris-setosa
415.13.81.90.4Iris-setosa
425.22.73.91.4Iris-versicolor
435.23.41.40.2Iris-setosa
445.23.51.50.2Iris-setosa
455.24.11.50.1Iris-setosa
465.33.71.50.2Iris-setosa
475.43.04.51.5Iris-versicolor
485.43.41.50.4Iris-setosa
495.43.41.70.2Iris-setosa
505.43.71.50.2Iris-setosa
515.43.91.30.4Iris-setosa
525.43.91.70.4Iris-setosa
535.52.34.01.3Iris-versicolor
545.52.43.71.0Iris-versicolor
555.52.43.81.1Iris-versicolor
565.52.54.01.3Iris-versicolor
575.52.64.41.2Iris-versicolor
585.53.51.30.2Iris-setosa
595.54.21.40.2Iris-setosa
605.62.53.91.1Iris-versicolor
615.62.74.21.3Iris-versicolor
625.62.84.92.0Iris-virginica
635.62.93.61.3Iris-versicolor
645.63.04.11.3Iris-versicolor
655.63.04.51.5Iris-versicolor
665.72.55.02.0Iris-virginica
675.72.63.51.0Iris-versicolor
685.72.84.11.3Iris-versicolor
695.72.84.51.3Iris-versicolor
705.72.94.21.3Iris-versicolor
715.73.04.21.2Iris-versicolor
725.73.81.70.3Iris-setosa
735.74.41.50.4Iris-setosa
745.82.64.01.2Iris-versicolor
755.82.73.91.2Iris-versicolor
765.82.74.11.0Iris-versicolor
775.82.75.11.9Iris-virginica
785.82.75.11.9Iris-virginica
795.82.85.12.4Iris-virginica
805.84.01.20.2Iris-setosa
815.93.04.21.5Iris-versicolor
825.93.05.11.8Iris-virginica
835.93.24.81.8Iris-versicolor
846.02.24.01.0Iris-versicolor
856.02.25.01.5Iris-virginica
866.02.75.11.6Iris-versicolor
876.02.94.51.5Iris-versicolor
886.03.04.81.8Iris-virginica
896.03.44.51.6Iris-versicolor
906.12.65.61.4Iris-virginica
916.12.84.01.3Iris-versicolor
926.12.84.71.2Iris-versicolor
936.12.94.71.4Iris-versicolor
946.13.04.61.4Iris-versicolor
956.13.04.91.8Iris-virginica
966.22.24.51.5Iris-versicolor
976.22.84.81.8Iris-virginica
986.22.94.31.3Iris-versicolor
996.23.45.42.3Iris-virginica
1006.32.34.41.3Iris-versicolor
Rows: 1-100 | Columns: 5

We start by creating a PCA model of the different flowers.

In [2]:
from verticapy.learn.decomposition import PCA
model = PCA("public.PCA_iris")
model.drop()
model.fit("public.iris", 
          ["PetalWidthCm", 
           "PetalLengthCm", 
           "SepalLengthCm", 
           "SepalWidthCm"])
Out[2]:

=======
columns
=======
index|    name     |  mean  |   sd   
-----+-------------+--------+--------
  1  |petalwidthcm | 1.19867| 0.76316
  2  |petallengthcm| 3.75867| 1.76442
  3  |sepallengthcm| 5.84333| 0.82807
  4  |sepalwidthcm | 3.05400| 0.43359


===============
singular_values
===============
index| value  |explained_variance|accumulated_explained_variance
-----+--------+------------------+------------------------------
  1  | 2.05544|      0.92462     |            0.92462           
  2  | 0.49218|      0.05302     |            0.97763           
  3  | 0.28022|      0.01719     |            0.99482           
  4  | 0.15389|      0.00518     |            1.00000           


====================
principal_components
====================
index|  PC1   |  PC2   |  PC3   |  PC4   
-----+--------+--------+--------+--------
  1  | 0.35884|-0.07471| 0.54906| 0.75112
  2  | 0.85657|-0.17577| 0.07252|-0.47972
  3  | 0.36159| 0.65654|-0.58100| 0.31725
  4  |-0.08227| 0.72971| 0.59642|-0.32409


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


===========
call_string
===========
SELECT PCA('public.PCA_iris', 'public.iris', '"PetalWidthCm", "PetalLengthCm", "SepalLengthCm", "SepalWidthCm"'
USING PARAMETERS scale=false);

Fitting the model creates new model attributes.

In [3]:
model.X
Out[3]:
['"PetalWidthCm"', '"PetalLengthCm"', '"SepalLengthCm"', '"SepalWidthCm"']
In [4]:
model.input_relation
Out[4]:
'public.iris'

These attributes will be used when invoking the different model abstractions.

Models have many useful attributes. With a PCA model, for example, the 'components_', 'explainedvariance' and 'mean_' attributes can help you evaluate the accuracy of your model.

In [5]:
model.components_
Out[5]:
123
PC1
Float
123
PC2
Float
123
PC3
Float
123
PC4
Float
10.358843926248216-0.07470647013503420.5490609107266030.751120560380823
20.856572105290528-0.1757674034286540.0725240754869635-0.47971898732994
30.361589677381450.656539883285831-0.5809972798276180.31725454716854
4-0.08226888989221420.7297123713264970.596418087938103-0.324094352417966
Rows: 1-4 | Columns: 5
In [6]:
model.explained_variance_
Out[6]:
123
value
Float
123
explained_variance
Float
123
accumulated_explained_variance
Float
12.055441745299560.9246162071742680.924616207174268
20.4921824576592660.05301556785053510.977631775024803
30.2802211770979390.01718513952500680.99481691454981
40.1538929079782450.005183085450189610.999999999999999
Rows: 1-4 | Columns: 4
In [7]:
model.mean_
Out[7]:
Abc
name
Varchar(65000)
123
mean
Float
123
sd
Float
1petalwidthcm1.198666666666670.763160741700841
2petallengthcm3.758666666666671.76442041995226
3sepallengthcm5.843333333333330.828066127977863
4sepalwidthcm3.0540.433594311362174
Rows: 1-4 | Columns: 4

You can view other attributes using the 'get_attr' method.

In [8]:
model.get_attr()
Out[8]:
Abc
attr_name
Varchar(128)
Abc
Long varchar(32000000)
123
#_of_rows
Integer
1columns4
2singular_values4
3principal_components4
4counters3
5call_string1
Rows: 1-5 | Columns: 3

Let's look at the SQL query for our model.

In [9]:
display(model.deploySQL())
'APPLY_PCA("PetalWidthCm", "PetalLengthCm", "SepalLengthCm", "SepalWidthCm" USING PARAMETERS model_name = \'public.PCA_iris\', match_by_pos = \'true\', cutoff = 1)'

You can deploy an inverse PCA.

In [10]:
display(model.deployInverseSQL())
'APPLY_INVERSE_PCA("PetalWidthCm", "PetalLengthCm", "SepalLengthCm", "SepalWidthCm" USING PARAMETERS model_name = \'public.PCA_iris\', match_by_pos = \'true\')'

You can also use the 'transform' method to apply the model on a vDataFrame. In this example, we choose to keep 2 components with 'n_components'.

In [11]:
model.transform(iris, n_components = 2)
Out[11]:
Abc
Species
Varchar(30)
123
col1
Float
123
col2
Float
1Iris-setosa-1.00907614291369-5.36809865392851
2Iris-setosa-0.958598946592707-5.08805935848075
3Iris-setosa-0.9091007038018-5.1712900871522
4Iris-setosa-0.737786282743694-5.20644356783793
5Iris-setosa-1.48104367386957-4.98275231463299
6Iris-setosa-0.679356772546814-5.0725001448649
7Iris-setosa-0.629858529755906-5.15573087353635
8Iris-setosa-0.466770997687022-5.11791311708943
9Iris-setosa-0.431865558592275-5.48865378822215
10Iris-setosa-0.630133104869229-5.22885550887844
11Iris-setosa-0.521656201654794-5.03189354389269
12Iris-setosa-0.721177276575147-5.20848992401028
13Iris-setosa-0.73763105455359-5.06254744974498
14Iris-setosa-0.571429019559025-5.02178745056333
15Iris-setosa-0.314457387971867-5.07451767159192
16Iris-setosa-0.205980484757432-4.87755570660617
17Iris-versicolor-0.58625776100288-3.20633321652966
18Iris-virginica-0.124281160540637-1.92526343700098
19Iris-setosa-0.693519772939547-5.14298933389113
20Iris-setosa-0.563476705683127-5.16788332303806
21Iris-setosa-0.563476705683127-5.16788332303806
22Iris-setosa-0.563476705683127-5.16788332303806
23Iris-versicolor-0.820684275017979-3.01218892551454
24Iris-versicolor-0.636030578907111-3.1962271232003
25Iris-setosa-0.585317444838435-5.01915200424747
26Iris-setosa-0.558638894732909-5.31692143824753
27Iris-setosa-0.400663748727567-5.20319020193323
28Iris-setosa-0.278847570460369-5.15511295394751
29Iris-setosa-0.259142380700667-4.94351649135363
30Iris-setosa-0.273735184396828-5.2310264338149
31Iris-setosa-0.189938948150057-4.8151507574312
32Iris-setosa-0.143692117140408-5.25592042296183
33Iris-versicolor-0.54553555742784-3.36284197875263
34Iris-setosa-0.280983119855974-4.79478517256304
35Iris-setosa-0.242963177835548-5.16258360096102
36Iris-setosa-0.19346493504464-5.24581432963247
37Iris-setosa-0.201691824033861-5.17284309249982
38Iris-setosa-0.00244532422683205-5.06937134772431
39Iris-setosa0.0914387752914419-5.15991932519983
40Iris-setosa0.135824632018809-5.1672365740039
41Iris-setosa0.2278477572548-4.82433213475285
42Iris-versicolor-0.0375867010692723-2.59566650009667
43Iris-setosa-0.243237752948871-5.2357082363031
44Iris-setosa-0.121421574681673-5.18763098831739
45Iris-setosa0.400748577481865-5.36606266750723
46Iris-setosa0.0857772390012541-5.23025511601662
47Iris-versicolor0.499880633207178-2.19644284804813
48Iris-setosa-0.151763777939525-5.03905306773623
49Iris-setosa-0.0629920644847923-5.05368756534436
50Iris-setosa0.121661631626076-5.23772576303012
51Iris-setosa0.204204339229448-5.25824474610772
52Iris-setosa0.348840210182028-4.99562879279339
53Iris-versicolor-0.228176508583652-2.55508872856979
54Iris-versicolor-0.22631553430137-2.98854114529635
55Iris-versicolor-0.198383455552447-2.84991591983512
56Iris-versicolor-0.0568620875255468-2.59024220925552
57Iris-versicolor0.181657882945308-2.4181742334167
58Iris-setosa-0.0860863322834984-5.34135090601506
59Iris-setosa0.549673109158016-5.39873410008654
60Iris-versicolor-0.0406828846604274-2.8093093188629
61Iris-versicolor0.222654661633671-2.50155836029759
62Iris-virginica0.503836423405188-1.54875852241182
63Iris-versicolor0.177015276262906-2.93063577095482
64Iris-versicolor0.443467325482684-2.61994256965477
65Iris-versicolor0.571649418456821-2.21138414207513
66Iris-virginica0.318908152180997-1.43784496006815
67Iris-versicolor-0.0555502634699112-3.16994389666625
68Iris-versicolor0.3080372970494-2.59225973598254
69Iris-versicolor0.45267316800198-2.32964378266821
70Iris-versicolor0.429853475316598-2.54418248799682
71Iris-versicolor0.523737574834872-2.63473046547234
72Iris-setosa0.379063066516662-5.07343523062368
73Iris-setosa0.812461505225467-5.23723241220539
74Iris-versicolor0.144675189867193-2.70320212777154
75Iris-versicolor0.1941734326581-2.78643285644299
76Iris-versicolor0.282945146112833-2.80106735405113
77Iris-virginica0.57049282259129-1.48778633657145
78Iris-virginica0.57049282259129-1.48778633657145
79Iris-virginica0.615015588174236-1.14050689125106
80Iris-setosa0.413693930498086-5.51730053709848
81Iris-versicolor0.570825693116851-2.43075804810139
82Iris-virginica0.871575735792491-1.6209584417462
83Iris-versicolor0.934413253636162-1.85307388741768
84Iris-versicolor-0.109731089020932-2.79377893469239
85Iris-virginica0.21072414341441-1.77238286574331
86Iris-versicolor0.666942274808597-1.7216413419964
87Iris-versicolor0.629529778427054-2.22368998978628
88Iris-virginica0.798983225202878-1.82539105374545
89Iris-versicolor1.0495889420831-2.23860245436796
90Iris-virginica0.814418073573534-1.52920778128943
91Iris-versicolor0.415415899810541-2.68779631236513
92Iris-versicolor0.676755562966777-2.3011896311977
93Iris-versicolor0.745958995517388-2.17282389727527
94Iris-versicolor0.795457238308295-2.25605462594672
95Iris-virginica0.871026585565845-1.76720771243037
96Iris-versicolor0.101698089973329-2.11559410141323
97Iris-virginica0.699437589394416-1.80517886708673
98Iris-versicolor0.645434406178851-2.51588173473575
99Iris-virginica1.3892002140515-1.15185919350917
100Iris-versicolor0.2035345033675-2.35223795136348
Rows: 1-100 | Columns: 3

We can filter the model further with 'cutoff'.

In [12]:
model.transform(iris, cutoff = 0.8)
Out[12]:
Abc
Species
Varchar(30)
123
col1
Float
1Iris-setosa-1.00907614291369
2Iris-setosa-0.958598946592707
3Iris-setosa-0.9091007038018
4Iris-setosa-0.737786282743694
5Iris-setosa-1.48104367386957
6Iris-setosa-0.679356772546814
7Iris-setosa-0.629858529755906
8Iris-setosa-0.466770997687022
9Iris-setosa-0.431865558592275
10Iris-setosa-0.630133104869229
11Iris-setosa-0.521656201654794
12Iris-setosa-0.721177276575147
13Iris-setosa-0.73763105455359
14Iris-setosa-0.571429019559025
15Iris-setosa-0.314457387971867
16Iris-setosa-0.205980484757432
17Iris-versicolor-0.58625776100288
18Iris-virginica-0.124281160540637
19Iris-setosa-0.693519772939547
20Iris-setosa-0.563476705683127
21Iris-setosa-0.563476705683127
22Iris-setosa-0.563476705683127
23Iris-versicolor-0.820684275017979
24Iris-versicolor-0.636030578907111
25Iris-setosa-0.585317444838435
26Iris-setosa-0.558638894732909
27Iris-setosa-0.400663748727567
28Iris-setosa-0.278847570460369
29Iris-setosa-0.259142380700667
30Iris-setosa-0.273735184396828
31Iris-setosa-0.189938948150057
32Iris-setosa-0.143692117140408
33Iris-versicolor-0.54553555742784
34Iris-setosa-0.280983119855974
35Iris-setosa-0.242963177835548
36Iris-setosa-0.19346493504464
37Iris-setosa-0.201691824033861
38Iris-setosa-0.00244532422683205
39Iris-setosa0.0914387752914419
40Iris-setosa0.135824632018809
41Iris-setosa0.2278477572548
42Iris-versicolor-0.0375867010692723
43Iris-setosa-0.243237752948871
44Iris-setosa-0.121421574681673
45Iris-setosa0.400748577481865
46Iris-setosa0.0857772390012541
47Iris-versicolor0.499880633207178
48Iris-setosa-0.151763777939525
49Iris-setosa-0.0629920644847923
50Iris-setosa0.121661631626076
51Iris-setosa0.204204339229448
52Iris-setosa0.348840210182028
53Iris-versicolor-0.228176508583652
54Iris-versicolor-0.22631553430137
55Iris-versicolor-0.198383455552447
56Iris-versicolor-0.0568620875255468
57Iris-versicolor0.181657882945308
58Iris-setosa-0.0860863322834984
59Iris-setosa0.549673109158016
60Iris-versicolor-0.0406828846604274
61Iris-versicolor0.222654661633671
62Iris-virginica0.503836423405188
63Iris-versicolor0.177015276262906
64Iris-versicolor0.443467325482684
65Iris-versicolor0.571649418456821
66Iris-virginica0.318908152180997
67Iris-versicolor-0.0555502634699112
68Iris-versicolor0.3080372970494
69Iris-versicolor0.45267316800198
70Iris-versicolor0.429853475316598
71Iris-versicolor0.523737574834872
72Iris-setosa0.379063066516662
73Iris-setosa0.812461505225467
74Iris-versicolor0.144675189867193
75Iris-versicolor0.1941734326581
76Iris-versicolor0.282945146112833
77Iris-virginica0.57049282259129
78Iris-virginica0.57049282259129
79Iris-virginica0.615015588174236
80Iris-setosa0.413693930498086
81Iris-versicolor0.570825693116851
82Iris-virginica0.871575735792491
83Iris-versicolor0.934413253636162
84Iris-versicolor-0.109731089020932
85Iris-virginica0.21072414341441
86Iris-versicolor0.666942274808597
87Iris-versicolor0.629529778427054
88Iris-virginica0.798983225202878
89Iris-versicolor1.0495889420831
90Iris-virginica0.814418073573534
91Iris-versicolor0.415415899810541
92Iris-versicolor0.676755562966777
93Iris-versicolor0.745958995517388
94Iris-versicolor0.795457238308295
95Iris-virginica0.871026585565845
96Iris-versicolor0.101698089973329
97Iris-virginica0.699437589394416
98Iris-versicolor0.645434406178851
99Iris-virginica1.3892002140515
100Iris-versicolor0.2035345033675
Rows: 1-100 | Columns: 2

We can also reverse the transformation.

In [16]:
trans = model.transform(iris, cutoff = 0.8)
model.inverse_transform(trans, X = ["col1"])
Out[16]:
Abc
Species
Varchar(30)
123
petalwidthcm
Float
123
petallengthcm
Float
123
sepallengthcm
Float
123
sepalwidthcm
Float
1Iris-setosa0.8365658216601132.894320190532645.478461816363853.13701557409423
2Iris-setosa0.8546792569739362.937557548854475.496713849496683.13286287118803
3Iris-setosa0.8724414007594132.979956362890065.514611903138393.128790705702
4Iris-setosa0.9339165402348433.126699517202435.576557429379583.11469685845903
5Iris-setosa0.6672031397902282.490045968912995.3078032291113.17584381893114
6Iris-setosa0.9548836150826523.176748605762865.597684937121233.10988992751818
7Iris-setosa0.9726457588681293.219147419798455.615582990762943.10581776203216
8Iris-setosa1.031168729197863.358843650489335.674553758868673.09240073181359
9Iris-setosa1.043694334010043.388742675940815.687175205329793.08952910008807
10Iris-setosa0.9725472292564143.218912226415575.61548370723633.10584035102193
11Iris-setosa1.011473507113133.311830515777365.654707835672943.09691607661553
12Iris-setosa0.9398765812194463.1409263285835.582563074561693.11333045395933
13Iris-setosa0.9339722429280453.126832481340035.576613558290763.11468408800815
14Iris-setosa0.9936128337159383.269196508358895.636710498504593.10101083109132
15Iris-setosa1.085825542929083.489311239827445.729628787866373.07987006022685
16Iris-setosa1.12475182078583.582229529189235.768852916303023.07094578582045
17Iris-versicolor0.9882916299149053.256494622081525.631348578669933.1022307751884
18Iris-virginica1.154069127059583.652210891334425.798394548588853.06422447311219
19Iris-setosa0.9498013084142693.164616974699235.592563742378473.11105510183804
20Iris-setosa0.9964664732499233.27600823859755.639585973113413.10035660305667
21Iris-setosa0.9964664732499233.27600823859755.639585973113413.10035660305667
22Iris-setosa0.9964664732499233.27600823859755.639585973113413.10035660305667
23Iris-versicolor0.9041690992090453.055691409435695.546582371097553.12151678425773
24Iris-versicolor0.9704309565177133.213860614663055.613351241501573.10632552966419
25Iris-setosa0.9886290566592693.257300070678145.631688587288473.10215341642141
26Iris-setosa0.9982024923257463.280152172508135.641335275614133.09995860172029
27Iris-setosa1.054890913967943.41546927590555.698457457692493.08696216182787
28Iris-setosa1.098603909657893.519813616182285.742504930291973.07694048007092
29Iris-setosa1.105674997318733.53669253205995.749630123499923.07531935598427
30Iris-setosa1.100438458345433.524192743475795.744353516319333.07651988974477
31Iris-setosa1.130508228765043.59597026197315.774653370349583.0696260664116
32Iris-setosa1.147103623181083.635584007374055.791375747054273.0658213909634
33Iris-versicolor1.002904545331253.291376125729865.646073307122893.09888060470632
34Iris-setosa1.097837580728083.517984364140535.741732737674983.077116169349
35Iris-setosa1.111480805998423.550551185919995.755480356244213.07398831092521
36Iris-setosa1.129242949783893.592949999955585.773378409885923.06991614543919
37Iris-setosa1.126290780638193.58590307633415.770403651750453.0705929624636
38Iris-setosa1.197789176920163.756572070145575.842449129335063.05420117410957
39Iris-setosa1.231478915803583.836990570923245.876396650591123.04647743346367
40Iris-setosa1.247406510901523.875010257665335.892446118205473.04282585830379
41Iris-setosa1.280428450466833.953834699784145.925720730371183.03525521794622
42Iris-versicolor1.185178907280253.726470947000835.829742370219863.05709221617168
43Iris-setosa1.11138227638673.550315992537125.755381072717563.07401089991498
44Iris-setosa1.155095272076653.65466033281395.799428545317043.06398921815803
45Iris-setosa1.342472859648654.101936719372495.988239882176083.02103085940468
46Iris-setosa1.229447307892613.832141056863985.874349497510473.04694320176935
47Iris-versicolor1.378045795742184.18685047304696.024085010223953.01287537522743
48Iris-setosa1.144207156728593.628670047890165.788457117829993.06648543753693
49Iris-setosa1.176062346924463.704709421374335.820556053058693.05918228721718
50Iris-setosa1.242324204233133.86287862660175.887324923462713.04399103262365
51Iris-setosa1.271944153512683.93358240742995.91717151447523.03720033570042
52Iris-setosa1.323845857321644.057473459912285.969470352390733.02530130315856
53Iris-versicolor1.11678691244893.563217034331335.760827063208543.07277182806066
54Iris-versicolor1.1174547117673.564811092990195.761499972298893.07261872777234
55Iris-versicolor1.127477968573543.58873693248935.771599923642313.07032078666128
56Iris-versicolor1.178262051924333.70996018864375.822772589449733.05867798081768
57Iris-versicolor1.26385349461673.914269741903755.909018948621323.03905520762992
58Iris-setosa1.167775109193753.684927515785855.812205404215993.06108222699186
59Iris-setosa1.395913523309994.229501318999746.042089455539043.00877900350597
60Iris-versicolor1.184067860604023.723818842503795.828622822194023.05734693575863
61Iris-versicolor1.278564939644763.949386438934975.923842960600933.03568244815807
62Iris-virginica1.379465307028244.19023889258496.025515383125443.01254993675919
63Iris-versicolor1.262187523406763.910293014523775.907340229968823.03943714972789
64Iris-versicolor1.357802222905674.138528407282936.003686540483833.01751643542907
65Iris-versicolor1.403799588423224.248325612522336.050035862128433.00697103693603
66Iris-virginica1.313104920107864.031834493974655.958647229194773.02776378034249
67Iris-versicolor1.1787327920193.71108386053685.823246931486793.05857005850889
68Iris-versicolor1.309203979770764.022522822708285.954716440194883.02865811352635
69Iris-versicolor1.361105683579724.146413875190666.007015278110413.01675908098449
70Iris-versicolor1.352916975460724.126867162985055.998763912794363.01863643176939
71Iris-versicolor1.386606714344134.207285663762736.032711434050423.01091269112349
72Iris-setosa1.334691145751194.083361515590735.980398625262323.02281490231854
73Iris-setosa1.490213543127314.454598528665166.137111026892662.98715969388494
74Iris-versicolor1.250582479829323.882591398634515.895646388562513.04209773273468
75Iris-versicolor1.268344623614793.92499021267015.913544442204223.03802556724866
76Iris-versicolor1.300199813810674.001029586154275.945643377432923.03072241692891
77Iris-virginica1.403384551021754.247334904766826.049617649002553.00706618879394
78Iris-virginica1.403384551021754.247334904766826.049617649002553.00706618879394
79Iris-virginica1.419361275030974.285471863815566.065716621445823.0034033502945
80Iris-setosa1.347118220951664.113025347659335.99292078819683.01996585958278
81Iris-versicolor1.403503999588084.247620032373696.04973801154853.00703880390532
82Iris-virginica1.511426325721124.505234129594586.158486122452042.98229643175936
83Iris-versicolor1.533975187339844.559058994545176.181207520256582.97712685892278
84Iris-versicolor1.15929033185093.664674076728185.803655704255543.06302745488042
85Iris-virginica1.274283745644793.939167089826695.919529008367033.03666395864781
86Iris-versicolor1.43799485113994.329950815106726.084492775313422.99913139942931
87Iris-versicolor1.42456960404764.297904314317016.070964802816793.00220928397471
88Iris-virginica1.485376944204934.443053409970516.132237419967632.98826853702006
89Iris-versicolor1.575305283590484.657715276476446.22285386028432.96765148289168
90Iris-virginica1.49091564579534.456274470534216.137818501810412.98699872917895
91Iris-versicolor1.347736139180624.114500338538545.993543434524953.01982419507901
92Iris-versicolor1.441516289991994.33835660400426.088041159012592.99832407110634
93Iris-versicolor1.46634952143834.39763433391746.113064405862262.99263078153367
94Iris-versicolor1.484111665223784.440033147952996.130962459503972.98855861604765
95Iris-virginica1.511229266497694.504763742828826.158287555398752.98234160973889
96Iris-versicolor1.235160408564643.845778413699155.88010631287713.04563341103374
97Iris-virginica1.449655597410554.357785395133576.096242745630922.99645804597164
98Iris-versicolor1.430276883115574.311527774794236.076715752034433.00090082790543
99Iris-virginica1.697172725821774.948616818686816.345653790550452.93971204055196
100Iris-versicolor1.271703786982043.933008644715435.916929308741983.03725544235319
Rows: 1-100 | Columns: 5

To evaluate the model, we'll apply and then reverse it.

We don't see much error here because the number of components is equal to the number of variables.

In [19]:
model.set_params({"n_components": 4})
model.score()
Out[19]:
Score
PetalWidthCm9.89394927062417e-09
PetalLengthCm1.45228223207193e-08
SepalLengthCm7.16232440767798e-09
SepalWidthCm7.2056492635751e-09
Rows: 1-4 | Columns: 2

Our error increases when we retrieve fewer components.

In [18]:
model.set_params({"n_components": 1})
model.score()
Out[18]:
Score
PetalWidthCm0.560453608853424
PetalLengthCm0.750949082360787
SepalLengthCm1.70738568563443
SepalWidthCm1.25433079158467
Rows: 1-4 | Columns: 2