Multivariate Embedding
Multivariate Embedding using If
Summary: Process of performing multivariate embedding and t-SNE, generating reports for multiple groups, and extracting components from data tables in JMP Pro.
Code:
If( Contains( JMP Product Name(), "Pro" ),
dt = Open("data_table.jmp");
uobj = dt << Multivariate Embedding( Y( Column Group( "Proteins" ) ), By( :Status ) );
rpt_uGrp1 = uobj[1] << Report();
rpt_uGrp2 = uobj[2] << Report();
uobj[1] << Save Embedding Component Values;
dt << subset( Columns( (N Col( dt ) - 1) :: N Col( dt ) ), By( :Status ), Keep by columns );
dt_ugrp1 = Data Table("data_table");
cmpnts_ugrp1 = dt_ugrp1[0, 2 :: 3];
dt_ugrp2 = Data Table("data_table");
cmpnts_ugrp2 = dt_ugrp2[0, 2 :: 3];
Close( dt_ugrp1, nosave );
Close( dt_ugrp2, nosave );
uobj[2] << Save Embedding Component Values;
cmpnts_ugrpsBoth = dt[0, (N Col( dt ) - 1) :: N Col( dt )];
dt << delete columns( (N Col( dt ) - 1), N Col( dt ) );
uobj << Save Embedding Component Values;
cmpnts_uAll = dt[0, (N Col( dt ) - 1) :: N Col( dt )];
tobj = dt << Multivariate Embedding( Y( Column Group( "Proteins" ) ), Method( "t-SNE" ), Perplexity( 10 ), By( :Status ) );
rpt_tGrp1 = tobj[1] << Report();
rpt_tGrp2 = tobj[2] << Report();
tobj[2] << Save Embedding Component Values;
dt << subset( Columns( (N Col( dt ) - 1) :: N Col( dt ) ), By( :Status ), Keep by columns );
dt_tgrp1 = Data Table("data_table");
cmpnts_tgrp1 = dt_tgrp1[0, 2 :: 3];
dt_tgrp2 = Data Table("data_table");
cmpnts_tgrp2 = dt_tgrp2[0, 2 :: 3];
Close( dt_tgrp1, nosave );
Close( dt_tgrp2, nosave );
tobj[1] << Save Embedding Component Values;
cmpnts_tgrpsBoth = dt[0, (N Col( dt ) - 1) :: N Col( dt )];
dt << delete columns( (N Col( dt ) - 1), N Col( dt ) );
tobj << Save Embedding Component Values;
cmpnts_tAll = dt[0, (N Col( dt ) - 1) :: N Col( dt )];
Close( dt, nosave );
);
Code Explanation:
- Check if JMP is Pro.
- Open data table.
- Perform Multivariate Embedding.
- Generate report for first group.
- Generate report for second group.
- Save embedding component values for first group.
- Subset data by Status.
- Extract components for first group.
- Close first group data table.
- Extract components for second group.
- Close second group data table.
- Save embedding component values for second group.
- Combine components from both groups.
- Delete original components columns.
- Save all embedding component values.
- Extract combined components.
- Perform t-SNE Multivariate Embedding.
- Generate report for first t-SNE group.
- Generate report for second t-SNE group.
- Save t-SNE component values for second group.
- Subset data by Status for t-SNE.
- Extract components for first t-SNE group.
- Close first t-SNE group data table.
- Extract components for second t-SNE group.
- Close second t-SNE group data table.
- Save t-SNE component values for first group.
- Combine t-SNE components from both groups.
- Delete original t-SNE components columns.
- Save all t-SNE component values.
- Extract combined t-SNE components.
- Close the main data table.
Example 1
Summary: Runs the t-SNE multivariate embedding process for a data table, specifying method, perplexity, and random seed, and saves component values.
Code:
dt = Open("data_table.jmp");
obj = dt << Multivariate Embedding(
Y( :Ether, :Chloroform, :Benzene, :Carbon Tetrachloride, :Hexane ),
Method( "t-SNE" ),
Perplexity( 8 ),
Missing Value Imputation( 0 ),
Sparse( 0 ),
Random Seed( 422 )
);
obj << Save Embedding Component Values;
actualTSNEComponents = dt[0, 8 :: 9];
rpt = obj << Report();
actualIterationHistory = rpt[Outline Box( "Iteration History" )][Table Box( 1 )] << get as matrix;
If( Host is( Windows ), , );
Code Explanation:
- Open data table;
- Run Multivariate Embedding.
- Select t-SNE method.
- Set Perplexity to 8.
- Disable Missing Value Imputation.
- Disable Sparse mode.
- Set Random Seed to 422.
- Save embedding component values.
- Extract actual TSNE components.
- Retrieve iteration history report.
Example 2
Summary: Runs the UMAP embedding process, generating a report with component values and parameters.
Code:
dt = Open("data_table.jmp");
obj = dt << Multivariate Embedding( Y( :Sepal length, :Sepal width, :Petal length, :Petal width ), Method( "UMAP" ), Random Seed( 123 ) );
obj << Save Embedding Component Values;
actualUMAPcomponents = dt[0, 6 :: 7];
rpt = obj << Report();
actualUMAPparameters = rpt[Outline Box( "UMAP Parameters" )][Table Box( 1 )] << get as matrix;
nn = rpt[Outline Box( "UMAP Parameters" )][Table Box( 1 )][String Col Box( 1 )] << get;
actualUMAPparameters_nn = nn[1];
gradient = rpt[Outline Box( "UMAP Parameters" )][Table Box( 1 )][String Col Box( 2 )] << get;
actualUMAPparameters_gradient = gradient[1];
distance = rpt[Outline Box( "UMAP Parameters" )][Table Box( 1 )][String Col Box( 3 )] << get;
actualUMAPparameters_distance = distance[1];
If( Host is( Windows ), , );
Code Explanation:
- Open data table;
- Perform UMAP embedding.
- Save embedding component values.
- Retrieve actual UMAP components.
- Generate report from UMAP.
- Extract UMAP parameters matrix.
- Get nearest neighbors parameter.
- Store nearest neighbors parameter.
- Get gradient parameter.
- Store gradient parameter.