CMTFtoolbox CMTFtoolbox website

codecov R-CMD-check

Overview

The CMTFtoolbox package provides R users with two data fusion methods that have previously been presented in the MATLAB sphere.

Both of these methods were implemented using the all-at-once optimization approaches as described in the papers above. This implementation was achieved using the S4 Tensor object from rTensor and the various conjugate gradient approaches from mize. Other features of the package include:

Installation

The CMTFtoolbox package can be installed from CRAN using:

install.packages("CMTFtoolbox")

Development version

You can install the development version of CMTFtoolbox from GitHub with:

# install.packages("devtools")
devtools::install_github("GRvanderPloeg/CMTFtoolbox")

Citation

Please use the following citation when using this package:

Usage

library(CMTFtoolbox)

set.seed(123)
numComponents = 3
I = 108
J = 100
K = 10
L = 100
A = array(rnorm(I*numComponents), c(I, numComponents))  # shared subject mode
B = array(rnorm(J*numComponents), c(J, numComponents))  # distinct feature mode of X1
C = array(rnorm(K*numComponents), c(K, numComponents))  # distinct condition mode of X1
D = array(rnorm(L*numComponents), c(L, numComponents))  # distinct feature mode of X2
Y = matrix(A[,1])
lambdas = array(c(1, 1, 1, 0, 0, 1), c(2,3))

df1 = array(0L, c(I, J, K))
df2 = array(0L, c(I, L))
for(i in 1:numComponents){
  df1 = df1 + lambdas[1,i] * reinflateTensor(A[,i], B[,i], C[,i])
  df2 = df2 + lambdas[2,i] * reinflateMatrix(A[,i], D[,i])
}
datasets = list(df1, df2)
modes = list(c(1,2,3), c(1,4))
Z = setupCMTFdata(datasets, modes, normalize=TRUE)

cmtf_model = cmtf_opt(Z, 3)
acmtf_model = acmtf_opt(Z, 3)
acmtfr_model = acmtfr_opt(Z, Y, 3)

mirror server hosted at Truenetwork, Russian Federation.