class TMtxMDScaling : public TMtxComponent;
Performs multidimensional scaling.
Use TMtxMDScaling component to perform multidimensional scaling on dataset.
How to use TMtxMDScaling component?
1. Drop a TMtxMDScaling component on the form. 2. Set TMtxMDScaling::DataFormat property to define how data will be interpreted. Data can be interpreted as dissimilarities matrix, similarities matrix or raw data matrix. 3. Define TMtxMDScaling::Data, the matrix representing dissimilarities matrix, similarities matrix or raw data.
4. Set TMtxMDScaling::Dimensions to define number of variables in reduced space. 5. Set TMtxMDScaling::DistanceMethod to define how pairwise distance will be calculated. 6. Set TMtxMDScaling::ScalingMethod to define scaling algorithm. Currently only metric (classical) multidimensional scaling algorithm is supported. 7. Call the TMtxMDScaling::Recalc method to trigger calculation.
Results:
1. TMtxMDScaling::Y : Point coordinates in reduced space. 2. TMtxMDScaling::EigenValues : Eigenvalues in reduced space, sorted in descending order. 3. TMtxMDScaling::DHat : Estimated dissimilarities matrix. 4. TMtxMDScaling::Stress : Calculated stress factor.
Examples
#include "MtxVec.h"
#include "Statistics.h"
#include "StatTools.h"
using namespace Dew;
using namespace Dew::Math;
using namespace Dew::Stats;
void Example()
{
TMtxMDScaling* mds = new TMtxMDScaling(nullptr);
// similarities matrix (symmetric with 1.0 on diagonal)
mds->Data->SetIt(5,5,false, DewArray<double> {
1.00, 0.3, 0.2, 0.25, 0.33,
0.30, 1.0, 0.11, 0.21, 0.8,
0.20, 0.11, 1.0, 0.40, 0.5,
0.25, 0.21, 0.40, 1.0, 0.05,
0.33, 0.80, 0.5, 0.05, 1.00});
mds->DataFormat = TMDDataFormat::mdFormatSimilarities;
// use "standard" Euclidian metric
mds->DistanceMethod = TPWDistMethod::pwdistEuclidian;
// define number of desired dimensions (1)
mds->Dimensions = 1;
// Do the math
mds->Recalc();
// check Stress, DHat, EigeValues to evaluate GOF if (1) dimension is used
delete mds;
}
Constructors
| Name | Description |
|---|---|
| TMtxMDScaling (2) |
Destructors
| Name | Description |
|---|---|
| ~TMtxMDScaling |
Properties
| Name | Type | Description |
|---|---|---|
| AutoUpdate | bool | If true then changing any of the TMtxPCA properties will trigger the TMtxMDScaling::Recalc method. |
| BlockAssign | bool | Block streaming of specific properties when storing only a "template". |
| D | TMtx* | Used dissimilarities matrix. |
| Data | TMtx* | Data to be analyzed by MDS. |
| DataFormat | TMDDataFormat | Data format. |
| DHat | TMtx* | Estimated dissimilarities matrix. |
| Dimensions | int | Reduced dimension size. |
| Dirty | bool | When any of the TMtxMDScaling properties changes, this property is automatically set to true. |
| DistanceMethod | TPWDistMethod | Metric for distance calculation. |
| EditorActive | bool | Returns True, if the component editor is displayed. |
| EigenValues | TVec* | Reduced space eigenvalues. |
| Name | DewString | |
| Reference | TReferenceList* | Stores a list of components that have to be notified, when this component is destroyed. |
| ScalingMethod | TMDScalingMethod | Defines multidimensional scaling algorithm. |
| Stress | double | Returns multidimensional scaling stress value which is an estimate for GOF. |
| Y | TMtx* | Reduced space point coordinates. |
Methods
| Name | Description |
|---|---|
| AllowStreaming | Returns the negatated value of BlockAssign. |
| Assign | Assign values of all published properties from Source. |
| AssignTemplate | Assign values of "template-like" published properties from Source. |
| EditorClass | To be overriden in descendanr classses. |
| LoadFromStream | Load the component from Src stream. |
| LoadTemplateFromFile | Load a template from file. |
| LoadTemplateFromStream | Load a template from stream. |
| Recalc | Triggers MDScalling recalculation. |
| ReferenceRemoved | |
| Reset | Reset is called after loading the data from stream or file. |
| SaveTemplateToFile | Save template to file. |
| SaveTemplateToStream | Save template to stream. |
| SaveToStream | Save the component to Dst stream. |
Fields
| Name | Type | Description |
|---|---|---|
| Tag | intptr_t |