Following #95, I looked at MV models/methods implemented in this package, trying to figure out what would be a type hierarchy and corresponding method interfaces for this package.
Here is a table of models and corresponding function names used by models.
| Function \ Model |
CCA |
WHT |
ICA |
LDA |
FA |
PPCA |
PCA |
KPCA |
MDS |
| fit |
x |
x |
x |
x |
x |
x |
x |
x |
x |
| transform |
x |
x |
x |
x |
x |
x |
x |
x |
x |
| predict |
|
|
|
x |
|
|
|
|
|
| indim |
|
x |
x |
x |
x |
x |
x |
x |
x |
| outdim |
x |
x |
x |
x |
x |
x |
x |
x |
x |
| mean |
x |
x |
x |
x |
x |
x |
x |
? |
|
| var |
|
|
|
|
x |
x |
? |
? |
? |
| cov |
|
|
|
|
x |
? |
|
|
|
| cor |
x |
|
|
|
|
|
|
|
|
| projection |
x |
|
|
|
x |
x |
x |
x |
x |
| reconstruct |
|
|
|
|
x |
x |
x |
x |
|
| loadings |
? |
|
|
? |
x |
x |
? |
? |
? |
| eigvals |
|
|
|
|
? |
? |
? |
? |
x |
| eigvecs |
|
|
|
|
? |
? |
? |
? |
? |
| length |
|
|
|
|
|
|
|
|
|
| size |
|
|
|
|
|
|
|
|
|
I put ? where a possible implementation is missing or called differently.
So, I propose following type hierarchy
- StatsBase.RegressionModel
- Methods: CCA, LDA
- Functions: fit, transfrom, indim, outdim, mean
- Subtypes:
- AbstractDimensionalityReduction
- Functions: projection, var, reconstruct, loadings
- Subtypes:
- LinearDimensionalityReduction
- NonlinearDimensionalityReduction
- LatentVariableModel or LatentVariableDimensionalityReduction
- Methods: FA, PPCA
- Functions: cov
- StatsBase.AbstractDataTransform
- Whitening
- Functions: fit, transfrom, indim, outdim, mean, size
@nalimilan @ararslan Thoughts?
Following #95, I looked at MV models/methods implemented in this package, trying to figure out what would be a type hierarchy and corresponding method interfaces for this package.
Here is a table of models and corresponding function names used by models.
I put
?where a possible implementation is missing or called differently.So, I propose following type hierarchy
@nalimilan @ararslan Thoughts?