Wolfram Function Repository
Instant-use add-on functions for the Wolfram Language
Function Repository Resource:
Reduce a matrix of real values to low dimension using the principal coordinates analysis method
ResourceFunction["MultidimensionalScaling"][vecs,dim] uses principal coordinates analysis to find a "best projection" of vecs to dimension dim. | |
ResourceFunction["MultidimensionalScaling"][vecs] projects vecs to two dimensions. |
Reduce the dimension of some vectors:
| In[1]:= |
| Out[1]= |
Create and visualize random 3D vectors:
| In[2]:= | ![]() |
| Out[3]= | ![]() |
Visualize this dataset reduced to two dimensions:
| In[4]:= |
| Out[4]= | ![]() |
MultidimensionalScaling will reduce to any dimension that is no larger than the input dimension. Here data is created in 10-dimensional space and visualized in three dimensions:
| In[5]:= | ![]() |
| In[6]:= |
| Out[6]= | ![]() |
As is done in the reference page for DimensionReduce, load the Fisher Iris dataset from ExampleData:
| In[7]:= |
Reduce the dimension of the features:
| In[8]:= |
Group the examples by their species:
| In[9]:= |
Visualize the reduced dataset:
| In[10]:= |
| Out[10]= | ![]() |
Now show some DimensionReduce methods for this same dataset. First, use the "PrincipalComponentsAnalysis" method:
| In[11]:= | ![]() |
| Out[12]= | ![]() |
Use the "TSNE" method:
| In[13]:= | ![]() |
| Out[14]= | ![]() |
Visualize with the "LatentSemanticAnalysis" method:
| In[15]:= | ![]() |
| Out[16]= | ![]() |
The "LatentSemanticAnalysis" method can be attained directly using SingularValueDecomposition:
| In[17]:= |
| In[18]:= | ![]() |
| Out[19]= | ![]() |
Illustrate multidimensional scaling on textual data using several popular literature texts from ExampleData:

Break each text into chunks of equal string length:

Find the most common words across all texts:

Create common word frequency vectors for each chunk:

Weight the frequency vectors using the log-entropy method:

Show the result of multidimensional scaling in two dimensions, grouping text chunks by position of the title in the list of text names:
| In[20]:= | ![]() |
| Out[22]= | ![]() |
This work is licensed under a Creative Commons Attribution 4.0 International License