Discussion:
Help/advice wanted with design of neural net for FANN
Leon Chevalier
2007-02-05 16:27:23 UTC
Permalink
Hi all,

I would like to use FANN to predict the price movements of horses on a
betting exchange. I would like FANN to look at the data with 50
minutes left to go before the start of the race and have it tell me
what the price will close at.

Here are some graphs of what the data looks like:
Loading Image...

The red numbers are the starting and closing price for each graph, and
the horizontal red line on each graph shows the final 50 minutes.

So...I'm not sure how to train FANN on this data. Here are the ways I
have thought of:

- Each minute before the race is an INPUT, with the price at that time
an OUTPUT. However, the problem here is that for some horses I have
1.5 hours of data and for others 4 hours (it depends on when the race
starts). So I would have a different number of inputs/outputs.

- Take an average on the price over the preceding 50/30/20/10/5/3 mins
and have each of those values be an INPUT. The output would be the
closing price. This works, but I feel I could improve on this.

Has anyone had experience in training this type of data? Any input
here would be much appreciated!

Thanks,

Leon

p.s Sorry if this is off-topic. If so, perhaps you could direct me to
a more appropriate list?

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Steffen Nissen
2007-02-05 16:43:32 UTC
Permalink
Hi Leon,

The problem that you are addressing is what is known as a time-series
problem. This article
http://www.geocities.com/freegoldbar/Sunspots.htmldiscusses
time-series prediction with the fann library for Mathematica.

Hope that it helps,
Steffen

This article talks
Post by Leon Chevalier
Hi all,
I would like to use FANN to predict the price movements of horses on a
betting exchange. I would like FANN to look at the data with 50
minutes left to go before the start of the race and have it tell me
what the price will close at.
http://www.aciddrop.com/betting_graphs.jpg
The red numbers are the starting and closing price for each graph, and
the horizontal red line on each graph shows the final 50 minutes.
So...I'm not sure how to train FANN on this data. Here are the ways I
- Each minute before the race is an INPUT, with the price at that time
an OUTPUT. However, the problem here is that for some horses I have
1.5 hours of data and for others 4 hours (it depends on when the race
starts). So I would have a different number of inputs/outputs.
- Take an average on the price over the preceding 50/30/20/10/5/3 mins
and have each of those values be an INPUT. The output would be the
closing price. This works, but I feel I could improve on this.
Has anyone had experience in training this type of data? Any input
here would be much appreciated!
Thanks,
Leon
p.s Sorry if this is off-topic. If so, perhaps you could direct me to
a more appropriate list?
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Fann-general mailing list
https://lists.sourceforge.net/lists/listinfo/fann-general
--
Steffen Nissen - http://MySpace.com/SteffenNissen
Project Administrator - Fast Artificial Neural Network Library (fann)
http://fann.sf.net
Leon Chevalier
2007-02-05 17:38:51 UTC
Permalink
Hi Steffen,

Thanks for your reply. The sunspot problem takes a certain number of
inputs (one for each year) and correlates that year to one output (the
number of sunspots for that year).

For my problem, I have a different number of inputs for each graph. I
would be as if you had sunspot data for 1000 planets, and for each
planet you had the data over a different number of years. This is the
reason I'm stuck - I can't find any examples like that.

Is it possible to do a time series in that way?

Cheers,

Leon
Post by Steffen Nissen
The problem that you are addressing is what is known as a time-series
problem. This article
http://www.geocities.com/freegoldbar/Sunspots.html
discusses time-series prediction with the fann library for Mathematica.
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Josh Menke
2007-02-05 17:43:02 UTC
Permalink
Hi Leon,

One quick and dirty approach is to mark the differing inputs as missing and
then choose how you want to deal with missing inputs.

Just have your set of inputs include all possible inputs for all of the
graphs and then make the missings ones something like "0" or "-1" or the
mean, or use expectation maximization to impute them, etc.

--Josh
Post by Leon Chevalier
Hi Steffen,
Thanks for your reply. The sunspot problem takes a certain number of
inputs (one for each year) and correlates that year to one output (the
number of sunspots for that year).
For my problem, I have a different number of inputs for each graph. I
would be as if you had sunspot data for 1000 planets, and for each
planet you had the data over a different number of years. This is the
reason I'm stuck - I can't find any examples like that.
Is it possible to do a time series in that way?
Cheers,
Leon
Post by Steffen Nissen
The problem that you are addressing is what is known as a time-series
problem. This article
http://www.geocities.com/freegoldbar/Sunspots.html
discusses time-series prediction with the fann library for Mathematica.
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Fann-general mailing list
https://lists.sourceforge.net/lists/listinfo/fann-general
--
Joshua Menke
Statistician, Machine Learning Scientist
TnS Detection Platforms
ebay, Inc
josh-***@public.gmane.org
poulerik
2007-02-05 18:11:56 UTC
Permalink
Post by Leon Chevalier
Hi all,
I would like to use FANN to predict the price movements of horses on a
betting exchange. I would like FANN to look at the data with 50
minutes left to go before the start of the race and have it tell me
what the price will close at.
http://www.aciddrop.com/betting_graphs.jpg
The red numbers are the starting and closing price for each graph, and
the horizontal red line on each graph shows the final 50 minutes.
So...I'm not sure how to train FANN on this data. Here are the ways I
- Each minute before the race is an INPUT, with the price at that time
an OUTPUT. However, the problem here is that for some horses I have
1.5 hours of data and for others 4 hours (it depends on when the race
starts). So I would have a different number of inputs/outputs.
- Take an average on the price over the preceding 50/30/20/10/5/3 mins
and have each of those values be an INPUT. The output would be the
closing price. This works, but I feel I could improve on this.
It is much better to feed the network sideways letting the values
jumping from neuron to neuron. The great advantage of this is that the
network can decide on its ovn when the significance af on input is
obsolete. If for instance we have 50 neuron network where values older
that 25 min. is useless for any prediction, then the network by it selv
will ignore values older than 25 min and gradualy give them lesser and
lesser influence up to the 25 neuron. And at the front side it vill also
be able to damp random occilation.

Poul-Erik Andreasen



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Leon Chevalier
2007-02-06 13:17:05 UTC
Permalink
Hi Poul-Erik,
Post by poulerik
It is much better to feed the network sideways letting the values
jumping from neuron to neuron.
Sorry if this is a common term but I can't find any info on it - what
do you mean by "feed the network sideways"?

Thanks,

Leon

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Poul-Erik Andreasen
2007-02-06 14:14:03 UTC
Permalink
Post by Leon Chevalier
Hi Poul-Erik,
Post by poulerik
It is much better to feed the network sideways letting the values
jumping from neuron to neuron.
Sorry if this is a common term but I can't find any info on it - what
do you mean by "feed the network sideways"?
No i dont think this is a common term, but the issue in
time series is that at any given time, you can only use
the past as an input. The basis for time series must be
an overall idea that the past in one way or another say
somthing about the future. In your case that is likely, after
all there are reason to think that horse punders share
some common pattern in there way of betting.

The big question in such problem is how far back in the
past are we going to look. It is here the sideways feed
comes in. Let asume that n is time zero known as now
then you give neuron one the value from n. the next neuron
are give the value from n-1. the next are give the value from
n-2 and so on as far back in time as you think.

When yor got a new values n+1 then this goes in to the first
neuron an the second wil the of cource get the old value of
the privus time ((n + 1) -1) = n and so on.

The way you want to do it with a fixed time frame to make the analyses
you propose 50 min before the race is not a god idea. You have no
way of saying if this is the correct time to do your forcast. I of
course dont know if there are any practical reason fore this time frame,
but a running forecast are better. I for instance the betting on a horse
at a horse race
cout be predicted absolutly perfect at 49 min but not at 50, you have a
problem.

I think this is the best i can do to explain what i mean.


Poul-Erik Andreasen







-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Josh Menke
2007-02-06 15:44:48 UTC
Permalink
I think this is often called a "time delay neural network" TDNN in the
literature. Introduced by Waibel et al at CMU back near 1990.

If this wasn't what you meant Poul-Erik, sorry!

--Josh
Post by Poul-Erik Andreasen
Post by Leon Chevalier
Hi Poul-Erik,
Post by poulerik
It is much better to feed the network sideways letting the values
jumping from neuron to neuron.
Sorry if this is a common term but I can't find any info on it - what
do you mean by "feed the network sideways"?
No i dont think this is a common term, but the issue in
time series is that at any given time, you can only use
the past as an input. The basis for time series must be
an overall idea that the past in one way or another say
somthing about the future. In your case that is likely, after
all there are reason to think that horse punders share
some common pattern in there way of betting.
The big question in such problem is how far back in the
past are we going to look. It is here the sideways feed
comes in. Let asume that n is time zero known as now
then you give neuron one the value from n. the next neuron
are give the value from n-1. the next are give the value from
n-2 and so on as far back in time as you think.
When yor got a new values n+1 then this goes in to the first
neuron an the second wil the of cource get the old value of
the privus time ((n + 1) -1) = n and so on.
The way you want to do it with a fixed time frame to make the analyses
you propose 50 min before the race is not a god idea. You have no
way of saying if this is the correct time to do your forcast. I of
course dont know if there are any practical reason fore this time frame,
but a running forecast are better. I for instance the betting on a horse
at a horse race
cout be predicted absolutly perfect at 49 min but not at 50, you have a
problem.
I think this is the best i can do to explain what i mean.
Poul-Erik Andreasen
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Fann-general mailing list
https://lists.sourceforge.net/lists/listinfo/fann-general
--
Joshua Menke
Statistician, Machine Learning Scientist
TnS Detection Platforms
ebay, Inc
josh-***@public.gmane.org
poulerik
2007-02-07 03:22:32 UTC
Permalink
Post by Josh Menke
I think this is often called a "time delay neural network" TDNN in the
literature. Introduced by Waibel et al at CMU back near 1990.
If this wasn't what you meant Poul-Erik, sorry!
I actually did not know the correct nomenclature, until now. So thanks.


Poul-Erik Andreasen


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Loading...