While “Software to discover equations and mathematical relationships in data” isn’t at the top of our christmas wish list, we have to admit that Eureqa is pretty cool. Developed at Cornell University, Eureqa uses machine learning algorithms to determine the underlying math behind data sets. It derived Newton’s second law of motion in a few hours on a standard desktop computer, which isn’t bad at all for a cold unfeeling robot mind. There probably aren’t many applications for this in most hacks, but what hacker wouldn’t want Sir Issac Newton’s brain in their toolbox? The software can be downloaded for free from their website.
[Via Wired]
The only applications I can think of is seeing relations between results of fuzzing tests, and brute forcing serial numbers for software to build a keygen.
Gay! How is this hacking related. Come on Hackaday, get it together.
@preciousRoy: What about spotting underlying trends in (say) global warming data, or prediction of stock market ticker prices, population growth, etc?
I could see this being useful for measuring analog audio circuits and creating software models of them….
Qd0b0
I don’t know, I’ve seen some pretty complicated home chemistry hacks. One of my friends is doing home research on plant growth, using over the counter supplies. Scientific equipment is getting cheaper and hackers are branching out.
To say it another way… I have a c-clip opener I rarely ever use because I don’t see c-clips that often, but on a rare occasion I’m really glad I bought it because opening a c-clip without it a royal pain. I agree that most hacks aren’t “c-clip” problems and that there are ways to solve them without a c-clip opener, but maybe knowing that a tool is there will help someone.
@d0b0: of course it’s hacking related. on a very simple level, hardware hacking tends to deal with math a lot, and being able to generate a function for data points can help you understand how a device works, or possibly to build a circuit that will mimic something that you got data points from. i think it’s awesome personally.
I for one, really appreciate this information. Yes, I know it’s not a hack. Yes, I know it’s been done before. It’s still an incredible piece of software and interesting to the type of people that follow Hackaday. I certainly would not have found this on my own.
This certainly would have made the past few years working on an engineering major easier. Getting a model for a data set is extremely important, but getting one that captures the more subtle complexities of the relationship without something like this is near impossible for us to do in a reasonable time frame.
awesome. we’re that much closer to not having to think for ourselves.
don’t get me wrong, i DO think it’s great. as severedbrain inferred, it could be used for synth modeling of analog sounds.
I am now wondering were I can get a copy…
I have an exelent idear for an AI engien.
To conpair all inputs. A series of very basic CPUs interconected create enuf parralel prossessing speed for the interface to conect to the sireal port at maximum posible baud rate.
For example a varying analog source representing speach. Conpaired with a dictionary theosorus combo.
Or sensors around your house conpaired leading to it learning your day to day routine.
An extreamly detailed design structure would be needed.
And it would take a while. But imagen if the program ran for 100 years or more nothing in computer terms but think of what it could learn if it was linked it to a remotly operated veical of some sort to map and interact with it’s enviromet.
Could win a noble prize lol but it would take a life time to program
thought – a modifyed version of a program that creates the circute path ways for micro prosessors desighning the software and hardware – just a thought lol
@CRJEEA
It’s available for free on their website. I will add a download link to the post.
You mean you guys don’t have Newton’s head in your toolbox?
@Nuchdog
Well, there’s only one head per person, generally. So I mean, you probably have the only one.
@Nuchdog: Nope, not much space left between Einstein’s head and the cryo unit.
@Gerrit Coetzee: Roughly half the population can be considered to have two.
@CREEJA,
The dictionary reference in your post was hilarious, bravo.
My first post here.
This is actually looks like some cool software. Just that one screen show shows it working iterative solutions. It can effectively reverse engineer any observations in RL. Could be useful for many things…
I can appreciate this very much.
This could possibly give me an easy way to derive equations to express the noise in sensor systems, and from that try and develop a way to filter out that noise as needed.
Beyond that it still has many uses in hacking. If you’ve never needed a piece of software that does this, be happy, it’s no fun having to code one, even when it’s just for a very specific problem.
This is awesome. Usable for anything from developing understanding and predictability of natural phenomena to making a new strategy for TBS games. I would love to play with this tool.
“There probably aren’t many applications for this in most hacks.. ”
Isn’t that what most research is? Just a series of well-informed ‘hacks’? So maybe you’ve got (alot) more funding and better equipment, but you’re still ‘tinkering’ with the laws that govern the world as we know it. (And therby testing the boundaries based on prior knowledge.)
I think it has *everything* to do with ‘most hacks.. ‘
Definitely way cool..
This is a great tool. I have been messing about with it for a couple of revisions for finding relationships between motor driver data. temp, heat, current etc. While it seems a pointless exercise, it is helping to shape a good model of a non linear system.
Defo a hack related tool.
How is this different from Bacon? http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&tid=5862
How is this different from using the polyfit function in matlab?
@Min – I believe this finds the best fit model for the data set, unlike most curve fitting packages which let the user select the model. The ‘best fit’ may not always be obvious with raw data..
I’m definitely gonna have to check this out..
One use off the top of my head… Use it to model the characteristics of components when developing SPICE models. MOSFETs and LEDs come to mind, especially MOSFETs and exotic high power LEDs where the manufacturer-supplied models can be pretty awful.
Wolfram|Alpha should turn this into a Web app.
@Min: to follow up what medix said, it does genetic programming to try and discover the model to your data. afterwards, it probably has a fitness function based on classical curve fitting. more on this method here: http://www.genetic-programming.com/gpquadraticexample.html
How about making a decent approximation for some function using limited operators. using only +,-,/,* and abs()? Might be useful on a micro with limited math capabilities…
here is what it did with a SIN(x) dataset x from 0..260 in 0.1 degree increments.
y=(4.88622 + 0.0126778*x*abs(0.0114593*x – 1.59466) – 2.90379*abs(0.0114593*x – 1.59466) – 0.0245189*x)/(0.999628 + 53.4167/(58.2545 + x*abs(0.0114593*x – 1.59466))) – 0.134694
Kinda complex but pretty accurate, this one is not as hairy but a little less accurate around 180:
y=4.2249 + 0.0119223*x*abs(1.95332 – 0.0109327*x) – 2.1621*abs(1.98645 – 0.0109327*x) – 0.0234713*x
Might be useful if you don’t have a native sin function and might smaller than a lookup table in code.
I am also thinking it would be great for determining the transfer function of a temp sensor for fast conversions, finding a function to make an LED brightness sweep linear, etc. There are probably a bunch of functions that could be found based on your specific configuration to make robots move smoother, and stuff just work better.
I guess a real engineer would derive these functions from the design, but this hacker probably has to build then observe…
http://www.natnlabs.net
That’s awesome! Can’t even think how many times I could have used something like this, hackaday ftw!
This is a really nice bit of software. Sometimes you don’t need to optimise your model perfectly,so the time spent doing the usualSystem Identification process could be skipped by using an automatically generated ‘best enough’ model.
As for hacking, if you want to do anything haptic, or involving servos or the like, this will make your life a whole lot easier.
This brings back bad memories. Texas A&M had a class dedicated to this 20 years ago. You were given a dataset and had to write a program in Pascal on the mainframe to apply the best curve-fit model. Only two majors in the class, Aerospace Engineers and Meteorologists. The weatherpeople were horrified.
@Brad: Sounds like the IE’s who are forced to take “EE for non-EE’s”..
Very little mention of what only one person caught.
The potential application of this package for
modeling/predicting market price action. The long
sought after holy grail of technical systems
traders looking for an “edge” over one another
with packages such as OptionVue, TradeStation,
blah, blah, blah. Another application that may
or may not be of value. Since it does (on the
surface) appear to be just a curve fitting app.
Awesome =D. Seeing as maths and physics are my favourite classes, this is really pretty cool =). Thanks Hack-A-Day ^_^.
Totally awesome. Great find guys, this will extremely useful for my car racing game. It should aid me with creating magic traction formulae and fuzzy logic membership functions for the AI.
Roger Alsing made software similar to quite some time ago, using genetic algorithms.
http://rogeralsing.com/2008/02/07/genetic-programming-math/
Inspired by that, I made my own php version* to experiment and learn. Funny thing about genetic algorithms though.. GAs find the best solution to the dataset you present. Just don’t expect the function to work well outside the boundaries of the initial dataset. :P
*yes, yes, I know php isn’t a good choice performance wise, but it’s just so simple and accessible for “prototyping” and just plain fun projects.
http://www.zunzun.com does the same thing with a web interface for free. This software looks awesome, but I love zunzun for its ease.