首页 > 代码库 > Eureqa Formulize从实验数据中自动筛选函数关系的symbolic regression符号回归软件

Eureqa Formulize从实验数据中自动筛选函数关系的symbolic regression符号回归软件

各种操作系统,试用30天版本下载:点击打开链接

2009年的时候初次了解这个软件,0.7.7版,以及0.80.2还都是免费的,只是觉得好玩而已;

主要因为Connel大学有人在Science上发了一篇report,介绍了类似symbolic regression概念;


后来一直想找出来,可惜忘记软件名字了,一个关键词也想不起来了;一直找不到;

今天翻旧电脑的老硬盘偶然发现还在一个偏僻的文件夹里;于是找出来了! 留个记号;

http://nutonian.wikidot.com/


现在0.9.9最新版本已经开始收费了(挺贵)

但symbolic regression在不同的语言和编程环境下都有自己的实现方式了。

Mathematica对应的是MathModeler;还有针对R,Matlab,Python之类的开源的实现方式吧?


以前的Beta版还能找到,不知道是不是也限制使用时间的:

点击打开链接

age2RRS

Download Eureqa | Cornell Creative Machines Lab

http://ccsl.mae.cornell.edu/eureqa_download - Dec 26, 2012 12:56:57 AM - Dec 4, 2004 10:39:38 PM

  • 19 Dec ‘ 02:43

    Cornell Creative Machines Lab

    Eureqa II (Code Name Formulize):

    Windows

    Linux

    Mac

    Windows Installer

    or

    Windows Zip

    Linux 64-bit Version

    or

    Linux 32-bit Version

    Apple Disk Image

     All Windows versions  (Win 2000, XP, Vista, and Win 7)

    Zip archive version runs without install privilages

     Linux/X11 (Ubuntu 9.04+, Fedora 10+, Mandriva 2009.1+, openSUSE 11.1+, SLES 11+)

     Mac OS X 10.6+ (Lion, Snow Leopard) for Intel x86-64 Macs

    Eureqa I (Old Version):

    Use this version for compatability with the Eureqa Server and the current Eureqa API.

    Eureqa 0.85 beta, Full Version

    Stand-alone Server (needed for using API projects):

    Eureqa 0.85 beta, Stand-alone Server

    Eureqa 0.85 beta, Stand-alone Server

    Extensions and Related Projects:

    • Use Eureqa from Mathematica:

    Eureqa Client for Mathematica by Shane Celis

    • Use Eureqa in Python:

    Eureqa Python by Marcin Franc

    • Use Eureqa in Matlab:

    Eureqa Matlab Interface by Johannes Jenkner

    • Use Eureqa in .NET:

    Eureqa .NET by Gábor Bakos

    • Use Eureqa in KNIME:

    Eureqa in KNIME by Gábor Bakos

    0.93:

    • Added new variable option to remove outliers
    • Added new variable option to normalize values
    • Added new variable option to filter data rows
    • Added support for delay operations in the Target Expression
    • Fixed bug in calculating 2nd/3rd order derivatives
    • Fixed potential nested delay bug
    • Fixed report images from being cached when pasting
    • Improved the cloud server loading
    • Fixed potential bug with weights equal to zero
    • Added new building-blocks for weighting and filtering
    • Added weight display to plots
    • Fixed several small bugs in the reports and analysis
    • Added ability to fill spreadsheet with a formula (e.g. =x^2)

    0.92:

    • Improved algorithm and performance
    • Added cloud computing options
    • Improved the user interface
    • Added support for multiple functions, e.g. y = f0(x)*f1(x,z)
    • Added support for coefficent models, e.g. y = f0()*x + f1()*z
    • Improved smoothing options
    • Improved the floating-point precision
    • Added options to handle missing values
    • Projects now hold multiple datasets and multiple search sessions
    • Added data encryption for using servers and cloud
    • Can now run multiple searches at once
    • Added native Linux and Mac OS X versions

    0.84:

    • improved file compatibility with future versions
    • fixed bug when evaluating stats on time delays
    • fixed crash in the evaluate/predict tool
    • round-up of other minor fixes

    0.83:

    • fixed bug that caused UI to slow down on long runs
    • other minor bug fixes

     

     

     

    Permalink  |  View Entire Page

  • 19 Oct ‘ 02:24

    Thousands of people use Eureqa every month. Try it out on your data.

    Eureqa 0.82 beta, Full Version

    Eureqa 0.82 beta, Stand-alone Server

    Eureqa 0.82 beta, Stand-alone Server

    0.82:

    Special thanks to Holger von Jouanne-DiedrichJonas Neubert, and Leticia Rojas for creating translations of the Eureqa interace. If you‘d like to contribute a translation please contact Michael Schmidt.

    • added new plotting display options in the results view
    • added basic support for localization
    • added two new language options: German and Spanish
    • added new fitness metric: Error-Statisical Scores
    • improved the data preparation and initialization performance
    • improved performance of smoothing and estimating derivatives
    • improved performance of importing text data sets
    • greatly improved search performance with delay() and sma() inputs
    • fixed bug causing some linux servers to perform poorly
    • fixed minor bugs and UI glitches

    Permalink  |  View Entire Page

  • 29 Jun ‘ 22:17

    Eureqa 0.81 beta, Full Version

    Eureqa 0.81 beta, Stand-alone Server

    Eureqa 0.81 beta, Stand-alone Server

    • added new building blocks: delay(), delay_var(), sma_var(), integral()
    • increased the building-block support for the implicit fitness
    • added new option to set the minimum variables in implicit solutions
    • added new options to control the time-delay and history building-blocks
    • added some simple UI changes and improvements
    • improved performance of several UI elements
    • improved the performance of the linux Eureqa server

    Permalink  |  View Entire Page

  • 05 Jun ‘ 21:31

    Eureqa is free to download and use. Try it out on your data.

    Full Download:

    0.81:

    • added support for time-delay and history operations
    • added new building blocks: delay(), delay_var(), sma_var()
    • added ability to specify custom server port (e.g. 127.0.0.1:1337)
    • fixed error when parsing certain solutions
    • changed implicit derivative metric to require use of all variables
    • minor UI improvements

    Permalink  |  View Entire Page

  • 25 Apr ‘ 13:16

    Eureqa 0.80.2 beta, Full Version

    Eureqa 0.80.2 beta, Stand-alone Server

    Eureqa 0.80 beta, Stand-alone Sever

    Visit the open source Eureqa API site at Google Code

    0.80:

    • added auto-save project option
    • added ability to disable coefficient building blocks
    • added new building-blocks: modulo, floor ceiling
    • added boolean building-blocks: less-than, equal, and, or xor, not
    • added server commandline option to disable listening for client broadcasts
    • fixed bug where servers would repeatedly disconnect
    • fixed bug where resuming might not restore all solutions
    • fixed bug where progress graph would not display or update
    • fixed bug where search may not start when resuming
    • fixed bug where search rates were not reseting to zero
    • improved the search performance of the algorithm
    • increased the cpu utilization

    Permalink  |  View Entire Page

  • 01 Apr ‘ 13:13

    • improved UI behavior of the search relationship setting
    • improved UI behavior of the normalization check

    Permalink  |  View Entire Page

  • 08 Mar ‘ 13:12

    Eureqa 0.79 beta, Full Version (mirror

      Run Eureqa using )

    Eureqa 0.79 beta, Stand-alone Server (mirror)

    Eureqa 0.79 beta, Stand-alone Sever (mirror)

    The Eureqa API provides portable source code and examples for interacting with the Eureqa servers to perform custom equation searches.

    The Eureqa API site at Google Code

    0.79:

    • added sorting option for solution lists
    • added initial polynomial solutions
    • imporved UI behavior of the search relationship setting
    • imporved UI behavior of the normalization check
    • added new commands to the API

    0.78:

    • reduced lag that servers report new solutions
    • projects now save the smoothing preprocessing
    • improved the ordering/display of the best solutions list
    • improved the seeding previous solution method
    • improved the AIC and BIC fitness metrics
    • added ability to right-click a plot and copy its data to the clipboard
    • added ability to start a search from the command line
    • added ability to chose the training/validation data split in the advanced options
    • added check to normalize data values with large offset or scale
    • fixed bug when loading projects that could clear results
    • fixed bug where resuming a search could fail to keep the previous results
    • fixed bug where seeded equations were not recognized
    • fixed bug wehre the fitness metric weighting was ignored
    • fixed several minor user interface annoyances
    • made compatible with the new open-source API

    Permalink  |  View Entire Page

  • 21 Dec ‘ 08:19

    Download Eureqa

    Eurequa is free to download and use. Try it out on your data.

    Eureqa 0.77 beta, Full Version

      Run the Eureqa client using

    Eureqa 0.77 beta, Stand-alone Server

    Eureqa 0.77 beta, Stand-alone Sever

    • Fixed crash when launching Eureqa from a project file
    • Updated the Linux stand-alone server and improved performance

    Permalink  |  View Entire Page

  • 20 Dec ‘ 00:09

    • Can now Resume a previous search
    • Can now seed the search with a previous solution

    Permalink  |  View Entire Page

  • 19 Dec ‘ 08:42

    • New server option "-max_cores N" to restrict the number of cores used to N

    Permalink  |  View Entire Page


下面是介绍;这个软件似乎有两个名字:

Eureqa Formulize

USER GUIDE AND RESOURCES

  • nutonian.com
  • Wiki Home
  • Eureqa Tabs
  • Tutorials
  • Contact
Create account or Sign in

Eureqa is a scientific data mining software package that searches for mathematical patterns hidden in your data. Download the program here for Windows, Linux, or Mac. An overview of Formulize can be found on the Introduction Video.

This user-guide wiki contains basic instructions and examples, as well as in-depth information for more advanced users. We welcome your suggestions and requests for improving this resource. If you‘re interested in contributing to the wiki directly, please contact us so we can add you as a member.

The user guide from 10,000 feet

Eureqa‘s user interface is organized as a set of seven tabs that correspond to the normal workflow through the program, and this user guide is organized around those tabs. The seven main pages linked to below explain the most important features and options available on each tab.

Enter DataPrepare DataSet TargetStart SearchView ResultsAnalysis ToolsUse The Cloud
formulize_windows_spreadsheet.jpgformulize_windows_prepare.jpgformulize_windows_target.jpgformulize_windows_progress.jpgformulize_windows_results.jpgformulize_windows_tools_quick_eval.jpgformulize_windows_cloud.jpg

User guide contents (blog posts included)

Many of those main pages link to other wiki pages or posts on the Eureqa blog that provide more detailed information. Below you‘ll find the seven main pages again, this time with all the pages they link to, and any other relevant pages, grouped beneath them.

  • Enter Data Tab
    • Working with discontinuous data (blog post)
  • Prepare Data Tab
    • Normalizing data variables (blog post)
    • Row Weight — explains how an expression or variable can be used to assign different importance to data in different rows and gives examples of when that might be useful.
    • Using date and time variables (blog post)
  • Set Target Tab
    • Target Expression Examples — shows how to design your target expression so that Eureqa will search for the kind of model you want.
    • Building Blocks List — lists and briefly explains the functions and operations you can choose to include in your formula search.
    • Error Metrics List — lists and briefly explains the error metrics you can use to assess potential solutions.
    • Prior Solutions — explains how to use prior solutions and/or initial gases to give Eureqa a headstart.
    • Setting and using validation data (blog post)
    • Row Weight (the same page as that found above under "Prepare Data Tab")
    • Modeling Binary Output
    • Custom error metrics and special search relations (blog post)
    • Using time delays or time lags of a variable (blog post)
    • Modeling outputs that have a range of values (blog post)
  • Start Search Tab
  • View Results Tab
  • Analysis Tools Tab
  • Use the Cloud Tab
    • Data Security
    • Cloud Pricing
    • Amazon Security Keys
    • Cloud Shutdown

Discussion groups

Both of the following groups actively discuss the current version of the program. If you‘re only going to join one group, we suggest you join the Eureqa group.

  • Eureqa Google Group

Nutonian.com

So you‘ll have maps to the whole Eureqa universe in one place, here‘s a site map of Nutonian.com:

  • Home
  • Eureqa
  • Getting Started
  • Documentation (Largely just links back to pages in this user guide.)
  • Download Eureqa Software
  • Download Eureqa Dedicated Server
  • Eureqa Pricing
  • Cloud pricing
  • Contact

使用者的博客:

点击打开链接

My Eureqa/Formulize page

Formulize

A newer version of Eureqa has been released: Formulize (or Eureqa II). It can be downloaded here

Some other links:
  • Documentation
  • Formulize discussion group (google groups)
  • Eureqa | blog
  • Wiki

My Formulize data sets

hakank_formulize.zip is a Zip file containing a couple of different data files, some standard data sets and some experimental (and some very experimental):
  • first.fxp
    • Boyles law
    • Fib 25
    • Gelman 4
    • Planets
    • Odd parity
    • Sin formula
    • ChickenEgg
    • BRUS
    • Grass 1
    • Circle 1 fixed
    • P4 GAP
    • Logit formula
    • Iris
    • Sunspots
    • Factorial test
    • Factorial test 2
    • Hofstadter Conway
    • Golf putting
    • Tic Tac Toe
    • quake
    • Fib 38 ix
    • ISBN
    • Multiplexer 6
    • If Else Test
    • Triangular
    • Robert Pickering
    • Two Spirals
    • Kepler
    • Sum
    • Titanic
    • Leap Year
    • F2C
    • Longley
    • Majority on 3
    • Mod test
    • Catalan
    • Voterra Lotka
    • Primes ix
    • Is Prime
    • Is Prime 500
  • second.fxp
    • Ackermann
    • Alldifferent1
    • Alldifferent2
    • P10
    • Unknown
    • Func
    • GEP test
    • Henon 100
    • Heron
    • Birthday rank
    • Lazy caterer
    • Lazy caterer 2
    • Alternating factorial
    • Alternating factorial 2
    • Alternating factorial 3
  • third.fxp
    • Bell numbers
    • Pell
    • Mobius
    • Alsing
    • Regression Koza
    • Sigmoid
    • Fahrenheit/Celsius
    • Majority on 3
    • Multiplexer-11
    • Since function
    • Integer partitions
    • Perfect shuffles
    • Collatz
    • Test
    • Unlabelled graphs
  • alternating_factorial2.fxp
  • primes_step.fxp
  • oeis.fxp
    Testing different integer sequences (numbers refers to The On-line Encyclopedia of Integer Sequences (OEIS)). Note: Some of these experiments are not very successful.
    • Tribonacci numbers
    • Catalan (again)
    • A074677
    • A056594
    • A009116
    • A001405
    • A125625
    • A000081
    • A031363
    • A001011
    • A004001
    • A000931
    • A001045
    • A014551
    • A094683
    • A000073

Eureqa

Eureqa is a great system for equation discovery. It uses genetic programming, more specific symbolic regression to discover mathematical equations given a data set. 

I have blogged some about Eureqa:
  • 2010-01-24: On my Swedish blog Eureqa: equation discovery med genetisk programmering, Google translation: Eureqa: equations discovery with genetic programming.
  • 2010-02-22: Eureqa version 0.78beta released
  • 2010-02-25: Experimenting with Eureqa‘s API, where I create a simple command line program (eureqa_apitest1.cpp) with the new API.

Some Eureqa links

  • Download page
  • User Guide (PDF)
  • Discussion Group (google group)
  • FAQ
  • Eureqa Known Issues
  • Requested Features
  • Summary of Eureqa Fitness Metrics
  • Building Blocks Summary
  • Eureqa API (see Programs below for an example using the API)
  • Video: "Introduction to Eureqa": Eureqa page, and on YouTube Introduction to Eureqa (1/2), Introduction to Eureqa (1/2)
  • Hod Lipson and Michael Schmidt is the developers of Eureqa. Their Science article Distilling Free-Form Natural Laws from Experimental Data,supplemental materials (PDF). More info on Sciences page Distilling Free-Form Natural Laws from Experimental Data, Supporting Online Material, e.g. the data used invar_datasets.zip. These files are in some strange format and must be fixed.

Other articles about Eureqa

  • Wired: Download Your Own Robot Scientist
  • Guardian: ‘Eureka machine‘ puts scientists in the shade by working out laws of nature
  • Guardian: ‘Eureka machine‘ can discover laws of nature (video)
  • Physorg.com: Eureqa, the robot scientist (w/ Video)
  • Andrew Gelman (blogs on "Statistical Modeling, Causal Inference, and Social Science"): Equation search, part 1, Equation search, part 2.

Programs

Using the Eureqa API, there is possible to write program calling the Eureqa server. 

  • eureqa_cli.cpp which has more options than eureqa_apitest1.cpp.
      Syntax:
            eureca_cli datafile relationship functions fitness_method population_size crossover_prob mutation_prob
    where only the data file and relationship must be stated
    
    Running the program without any arguments shows valid options.
  • My very first try with the API was eureqa_apitest1.cpp which tries to discover the closed form of Fibonacci sequence. The data file used isfib_38_ix.txt containing the first 38 Fibonacci numbers (1..38).

My Eureqa data sets

Here are some data sets from my - mostly very simple - experiments with Eureqa. The background of the problem and some more comments where written in the (Swedish) blog post Eureqa: equation discovery med genetisk programmering, Google translation: Eureqa: equations discovery with genetic programming

Note that Eureqa may not have given any interesting results, e.g. for the odd parity problem where the boolean operators is missing from Eureqa.
  • gelman.csv: Linear regression
    Data from Andrew Gelman‘s blog post Equation search, part 1, Equation search, part 2.
  • planets.txt: Kepler‘s third law 
    Data from DTREG
  • odd_parity.txt: Odd parity
    As of writing, Eureqa lacks the boolean operators (AND, OR, and XOR) so this is not meaningful yet.
  • sin_formula.txt: Sinus formula
    Created by perl -le ‘for (-100..100) { print $_/100, " ", sin(2*$_/100)+3}‘
  • sin_formula2.txt: Sinus formula Created by perl -le ‘for (-100..100) { print $_/100, " ", rand(1)+sin(2*$_/100)+3}
  • sqrt_formula.txt
    Created by perl -le ‘for (-100..100) { print $_/100, " ", sqrt(abs(2*$_/100))+3}‘
  • iris.txt: Iris data set
  • Sunspots.txt: Sunspots
  • sin_formula_rand20.txt: Sinus 
    Created by perl -le ‘for (1..20) { my $x = rand(2*3.14159); print "$x ", sin($x)+exp($x)+3}‘
  • boyles_law.txt: Boyle‘s law
  • fib_25.txt: Fibonacci
    The 25 first Fibonacci numbers, as a "time series".
  • fib_38_ix.txt: Fibonacci
    The 38 first Fibonacci numbers, with index. This is used in my first program testing the API: eureqa_apitest1.cpp.
  • fib_50.txt: Fibonacci
    The 50 first Fibonacci numbers, with index.
  • catalan.txt: Catalan numbers
    See Catalan number.
  • not_squares.txt: Not squares
    Numbers not squares.
  • primes.txt: Primes
    Prime numbers as a time serie.
  • primes_with_index.txt: Primes with index
  • p4_gap.txt: Polynom
    From JGAP (a general genetic programming system), where the problem is to find the polynom x^4 + x^3 + x^2 - x.
  • p4_1.txt: Polynom p(4)
    The polynom p(4) = x^4 + x^3 + x^2 + x
  • p10_1.txt Polynom p(10)
  • p6_1.txt: Polynom p(6)
  • p7_1.txt: Polynom p(7)
  • circle_1_fixed.txt: Circle

Related pages:
  • My JGAP page, my implementation of Symbolic Regression in JGAP.
  • My Weka page
  • The category Genetic programming/algorithms of my blog Arrays in Flux
This page was created by Hakan Kjellerstrand (hakank@bonetmail.com). Homepage.