SymetryML Documentation
Exploration

PCA exploration

Perform Principal Component Analysis (PCA) on 2+ project attributes. This endpoint is always asynchronous — it schedules a job and returns `202`; fetch the result from [Get job information](/docs/api-reference/jobs/jobs-jobid-get) using the `sym-job-id` response header. The request body is an **ExploreContext** object: `{"values": [<MLContext>, ...]}` — one `MLContext` entry per exploration to run in this call.

POST
/{user}/projects/{project}/explorepca

Perform Principal Component Analysis (PCA) on 2+ project attributes. This endpoint is always asynchronous — it schedules a job and returns 202; fetch the result from Get job information using the sym-job-id response header.

The request body is an ExploreContext object: {"values": [<MLContext>, ...]} — one MLContext entry per exploration to run in this call.

Authorization

SymetryMLAuth
AuthorizationBearer <token>

HMAC-SHA256 signature-based authentication: requests are signed with your secret key and sent with the Customer-ID, Sym-date, Authorization, Content-MD5 and sym-version headers. See SymetryML REST API Security for the signature algorithm and a complete example.

In: header

Path Parameters

user*string

User/Customer identifier

project*string

Project identifier

Query Parameters

explainedVariance*number

Explained variance threshold, in range [0.01, 1.00]

Formatfloat
Range0.01 <= value <= 1
Default1
useCovar?boolean

Use the covariance matrix instead of the correlation matrix

Defaultfalse
useLocal?boolean

For a federated project, use the local project instead of resolving a peer

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/c1/projects/nbra_prj_iris/explorepca?explainedVariance=0.9&useCovar=false&useLocal=true" \  -H "Content-Type: application/json" \  -d '{    "values": [      {        "inputAttributeNames": [          "sepal_length",          "sepal_width",          "petal_length",          "petal_width",          "sepal_lengt_b1",          "sepal_lengt_b2",          "sepal_width_b1",          "sepal_width_b2",          "petal_length_b1",          "petal_length_b2",          "petal_width_b1",          "petal_width_b2",          "Iris_setosa",          "Iris_versicolor",          "Iris_virginica"        ],        "targets": []      }    ]  }'
{  "statusCode": 200,  "statusString": "Job is finished",  "values": {    "pcaVectors": {      "errorHandling": 1,      "attributeNames": [        "attribute",        "PC1",        "PC2",        "PC3"      ],      "data": [        [          "sepal_length",          "-0.271258",          "-0.219952",          "-0.0783785"        ],        [          "sepal_width",          "0.171442",          "-0.390463",          "-0.203483"        ],        [          "petal_length",          "-0.317120",          "-0.0750413",          "0.0357009"        ]      ]    },    "pcaSumValues": "15.000000000000027",    "pcaValues": {      "errorHandling": 1,      "attributeNames": [        "sepal_length",        "sepal_width",        "petal_length"      ],      "data": [        [          "9.43013",          "2.97583",          "1.12948"        ]      ]    }  }}
{  "statusCode": 202,  "statusString": "Job Created",  "values": {}}

{  "statusCode": 400,  "statusString": "Invalid explained variance: 1.1; it must be in range [0.01, 1.00]",  "values": {}}

{  "statusCode": 500,  "statusString": "java.lang.NullPointerException",  "values": {}}