Tensor Regression Using Low-Rank and Sparse Tucker Decompositions: Codebase for Numerical Experiments
- General Information
- Reproducing Real-data Experiments
- Reproducing Synthetic-data Experiments
- Contributors
This repo contains the code used for numerical experiments in the "Tensor Regression Using Low-Rank and Sparse Tucker Decompositions" paper.
The code in this repo is being released under the GNU General Public License v3.0; please refer to the LICENSE file in the repo for detailed legalese pertaining to the license. In particular, if you use any part of this code then you must cite both the original paper as well as this codebase as follows:
Paper Citation: T. Ahmed, H. Raja, and W.U. Bajwa, "Tensor Regression Using Low-Rank and Sparse Tucker Decompositions," SIAM Journal on Mathematics of Data Science, vol. 2, pp. 944-966, 2020; doi: 10.1137/19M1299335.
We conducted synthetic experiments as well as real-world data experiments to produce all plots and tables included in the paper.
- Comparison of three different tensor-valued regression algorithms on synthetic data (Synthetic-data Experiments).
- Comparison of five different regression algorithms, including three tensor-valued regression and two vector-valued regression methods, for predicting attention deficit hyperactivity disorder (ADHD) diagnosis (Real-data Experiments).
The code for the synthetic experiments can be found in the Synthetic
directory. The code for validation experiments is contained in the val
directory, whereas the code for generating the plots is contained in the main
directory. The plots were generated using codes in the main
directory, as explained below.
In order to reproduce Figure 1(a) in the paper, we ran the SLR_test_glrsp_01.m
, SLR_test_rauhut_01.m
, and SLR_test_cp_01.m
files in the noise 01
directory, which generated three separate .mat
files in the same directory. The plot in Figure 1(a) was generated by running the plot_noise_var_01.ipynb
file. Similarly, to reproduce Figure 1(b), we ran the SLR_test_glrsp_04.m
, SLR_test_rauhut_04.m
, and SLR_test_cp_04.m
files in the noise 04
directory, followed by generation of Figure 1(b) by running the plot_noise_var_04.ipynb
file. Finally, to reproduce Figure 1(c), we ran the SLR_test_glrsp_07.m
, SLR_test_rauhut_07.m
, and SLR_test_cp_07.m
files in the noise 07
directory, followed by generation of Figure 1(c) by running the plot_noise_var_07.ipynb
file. The histograms in Figure 1(d) can be obtained by running the histogram_fails.m
file in the noise 01
directory. The violin plots in Figure 1(e) were generated using the violinplot_noise_01.ipynb
file in the noise 01
directory.
The Real
directory contains the code used to produce the results for ADHD diagnosis prediction experiments as described in the paper.
To generate the ADHD prediction experiment results for Table II in the paper, we trained models by running files in the train
directory, and then generated results by running files in the test
directory.
To train the five different regression algorithms for the KKI center, run the following files in the train/kki
directory: adhd_cp_kki.m
, adhd_lasso_kki.m
, adhd_svm_kki.m
, adhd_tpgd_kki.m
, and adhd_tucker_kki.m
. After these files are ran, the five different models will be saved in the train/models
directory. To evaluate performance for the KKI center, run the test_data_kki_all.m
and test_data_kki_svr_lasso.m
files in the test
directory, by uncommenting the appropriate lines for each method.
To train the five different regression algorithms for the NYU center, run the following files in the train/nyu
directory: adhd_cp_nyu.m
, adhd_lasso_nyu.m
, adhd_svm_nyu.m
, adhd_tpgd_nyu.m
, and adhd_tucker_nyu.m
. After these files are ran, the five different models will be saved in the train/models
directory. To evaluate performance for the NYU center, run the test_data_nyu_all.m
and test_data_nyu_svr_lasso.m
files in the test
directory, by uncommenting the appropriate lines for each method.
To train the five different regression algorithms for the Neuroimaging center, run the following files in the train/nr
directory: adhd_cp_nr.m
, adhd_lasso_nr.m
, adhd_svm_nr.m
, adhd_tpgd_nr.m
, and adhd_tucker_nr.m
. After these files are ran, the five different models will be saved in the train/models
directory. To evaluate performance for the Neuroimaging center, run the test_data_nr_all.m
and test_data_nr_svr_lasso.m
files in the test
directory, by uncommenting the appropriate lines for each method.
The original algorithms and experiments were developed by the authors of the paper: