#FFX: Fast Function Extraction
FFX is a technique for symbolic regression. It is:
- Fast - runtime 5-60 seconds, depending on problem size (1GHz cpu)
- Scalable - 1000 input variables, no problem!
- Deterministic - no need to "hope and pray".
To install from PyPI, simply run:
pip install ffx
FFX can either be run in stand-alone mode, or within your existing Python code. It installs both a command-line utility
runffx and the Python module
runffx test train_X.csv train_y.csv test_X.csv test_y.csv
You can run
runffx help for more information on using the command-line utility.
The following snippet demonstrates how to use FFX within your existing Python code. Note that all arguments are expected to be of type
import ffx models = ffx.run(train_X, train_y, test_X, test_y, varnames) for model in models: yhat = model.simulate(X) print model
Presently, the FFX Python module only exposes a single API method,
- python (tested on 2.5, 2.6, and 2.7)
- numpy (1.6.0+)
- scipy (0.9.0+)
- scikits.learn (0.8+)
- pandas (optional, enables support for labeled
Real-world test datasets:
Datasets are included as .tar.gz files under the
- 6 Medium-dim. problems
- [All 36K] -
- [All 36K] -
- 12 High-dim. problems
- [Part1 17M] -
- [Part2 14M] -
- [Part3 14M] -
- [Part1 17M] -
- Circuits-oriented description: Slides Paper (CICC 2011)
- AI-oriented description Slides Paper (GPTP 2011)
- McConaghy, FFX: Fast, Scalable, Deterministic Symbolic Regression Technology, Genetic Programming Theory and Practice IX, Edited by R. Riolo, E. Vladislavleva, and J. Moore, Springer, 2011.
- McConaghy, High-Dimensional Statistical Modeling and Analysis of Custom Integrated Circuits, Proc. Custom Integrated Circuits Conference, Sept. 2011
FFX Software Licence Agreement (like BSD, but adapted for non-commercial gain only)
Copyright (c) 2011, Solido Design Automation Inc. Authored by Trent McConaghy. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Usage does not involve commercial gain.
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Neither the name of the associated institutions nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
For permissions beyond the scope of this license, please contact Trent McConaghy (email@example.com).
THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE DEVELOPERS OR THEIR INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.