The repo contains the code to perform two models:
-
Functional adaptive Feature Selection with elastic-net penalty (ffs) using a Dual Augmented Lagrangian algorithm for the following models:
- Function-on-Function (FF)
- Function-on-Scalar (FS)
- Scalar-on-Function (SF)
- Logit (with functional features and categorical response)
-
Functional Graph Convolutional Networks (fgcn). The model estimates a knowledge graph and implements a GCN to work with multi-modal (longitudinal, scalar, and categorical) data and cuncurrently perform different tasks (regression, classification, forecasting).
The implemented methodology is described in the following papers:
- A Highly-Efficient Group Elastic Net Algorithm with an Application to Function-On-Scalar Regression
- FAStEN: an efficient adaptive method for feature selection and estimation in high-dimensional functional regressions
- A new computationally efficient algorithm to solve Feature Selection for Functional Data Classification in high-dimensional spaces
- Functional Graph Convolutional Networks: A unified multi-task and multi-modal learning framework to facilitate health and social-care insights
expes --------------------------------------------------------------------------------------------------------------
ffs
expes/ffs/sim_FF.py:
file to run feature selection on synthetic data for the Function-On-Function model
expes/ffs/sim_FS.py:
file to run feature selection on synthetic data for the Function-On-Scalar model
expes/ffs/sim_logit.py:
file to run feature selection on synthetic data for the Logit model
expes/ffs/sim_SF.py:
file to run feature selection on synthetic data for the Scalar-On-Function model
fgcn
expes/fgcn/sim_fgcn.py:
file to run fungcn on synthetic data
fungcn -------------------------------------------------------------------------------------------------------------
fungcn/ffs:
folder containing the files to implement ffs. More info is in the folder readme
fasten/fgcn:
folder containing the files to implement fmmgcn. More info is in the folder readme
- Create a python3.11 environment:
conda create -n my_env python=3.11
- clone funGCN (main branch)
- install funGCN and required packages by running
pip install -e .
at the root of the repository, i.e. where the setup.py file is. - Lunch the desired experiments, e.g.,
python expes/ffs/sim_FF.py
For Apple M processors' users:
- To install
numpy
with the apple libraryvecLib
(which is optimized for Apple processors) run:pip install cython pybind11 pip install numpy cython