mFlow
mFlow is a Python module for specifying and executing machine learning experimentation workflows. It organizes both data transformations and common experimental procedures into workflow blocks. mFlow focuses on the multi-core parallel setting and interoperates with machine learning model implementations that follow the scikit-learn model class structure. mFlow can also interoperate with Apache Spark and the MD2K Cerebral Cortex library to split workflow execution across a distributed pre-processing and feature extraction phase followed by a multi-core parallel model estimation phase. mFlow uses Pandas dataframes as the primary data structure for representing data sets and results.
Capabilities
mFlow supports a range of experimental workflows with a focus on multi-level data where individual data cases are nested within groups. It supports partitioning data sets both at the instance level and at the group level for most workflows. Experimental designs currently supported by mFlow include:
- Train/Test performance assessment with instance-level partitioning
- Train/Test performance assessment with group-level partitioning
- Cross-validation performance assessment with instance-level partitioning
- Cross-validation performance assessment with group-level partitioning
- Within group Train/Test performance assessment with random partitioning within groups
- Within group Train/Test performance assessment with sequential partitioning within groups
mFlow also includes a library of example workflows illustrating the application of data transformations and experimental workflows on open data sets in the mobile health and activity recognition domains.
Details & Specifications
Experimental Workflows
Project Documentation: https://mflow.readthedocs.io/en/latest/
- National Institutes of Health – Big Data to Knowledge Initiative Grants: 1U54EB020404
- National Science Foundation Grant: 1823283
mFlow Statistics
Person-Days of Data
Cerebral Cortex supports 10 concurrent studies combining 2,100+ participants.
Data Points
Cerebral Cortex is capable of scaling thousands of concurrent mCerebrum instances.