Skip to content
/ TASTE Public
forked from aafshar/TASTE

Code accompanying our ACM CHIL paper: "TASTE: Temporal and Static Tensor Factorization for Phenotyping Electronic Health Records"

License

Notifications You must be signed in to change notification settings

doccstat/TASTE

 
 

Repository files navigation

TASTE

TASTE combines the PARAFAC2 model with non-negative matrix factorization to model a temporal and a static tensor. It performs two import tasks in healthcare: 1- computational phenotyping 2- Predictive modeling by analyzing electronic health records (EHRs).

Yanxin Ye processed the CMS data using Hive.

Xinze Wang did case-control mapping using Pymatch.

Xingchi Li translated MATLAB code of TASTE and Nonnegative matrix factorization (NMF) algorithms based on alternating non-negativity constrained least squares to Python then did compatibility modification.

Hung-Yi Li did the cross validation and numerous experiments to do better comparison.

Previous TASTE code can be found in legacy which is implemented in MATLAB by Ardavan (Ari) Afshar.

centered image

TASTE applied on dynamically-evolving structured EHR data and static patient information. Each represents the medical features recorded for different clinical visits for patient . Matrix includes the static information (e.g., race, gender) of patients. TASTE decomposes into three parts: , , and . Static matrix is decomposed into two parts: and . Note that (personalized phenotype scores) is shared between static and dynamically-evolving features.

Relevant Publication

TASTE implements the code in the following paper:

Afshar, Ardavan, Ioakeim Perros, Haesun Park, Christopher deFilippi, Xiaowei Yan, Walter Stewart,
Joyce Ho, and Jimeng Sun. "TASTE: Temporal and Static Tensor Factorization for Phenotyping Electronic
Health Records." ACM CHIL 2020.

Code description

Nonnegative matrix factorization (NMF) algorithms based on alternating non-negativity constrained least squares has been imported and translated in nonnegfac.py.

There are two main functions defined in main.py: fit(R, A, X) and project(R, A, X, V, F, H):

  • R denotes the number of phenotypes
  • A denotes the static feature matrix
  • X denotes the temporal feature matrix
  • V, F, H are the matrices obtained from the fit function.

In Memory of Ardavan (Ari) Afshar

Ari is a good mentor in directing us with this project. It is really sad to see a good person not around any more. RIP Ari, you will be missed. Kudoboard

About

Code accompanying our ACM CHIL paper: "TASTE: Temporal and Static Tensor Factorization for Phenotyping Electronic Health Records"

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 67.9%
  • Python 23.5%
  • MATLAB 8.4%
  • M 0.2%