Hi Tim,
first of all thanks for opening a new thread for this...
2 things :
The 1st paragraph is really a perfect question for the encog-java
forum...I'm not sure anyone here can help with this (not even me -
financial prediction with temporal data is one of those encog corners
I've not had the chance to look at or experiment yet)...I do believe
however that posting such a well phrased and genuinely good question
will attract attention, perhaps from Jeff Heaton himself who you can
think of as 'reliable'...just don't expect things to go as quickly as
they are going here on the clojure ml...
Now, on the 2nd part of your question which is actually about
clojure-encog...
Back over the clojure-encog, the thing that normalizes input data, the
make-data
<https://github.com/jimpil/clojure-encog/blob/master/src/clojure_encog/training.clj#L41>
function only deals with doubles (not a list of tick data entries).
the temporalDataset and foldedDataset (perhaps others too) have not been
wrapped yet...Patches are welcome if you get it going finally... :). The
most common ones (array-1d or array-2d) are there though.
The make-trainer and train
<https://github.com/jimpil/clojure-encog/blob/master/src/clojure_encog/training.clj#L137>
functions seem to iterate for the number of strategies that you've
specified.
interrupting iterations can be done via a couple of ways...generally,
either you've got an iteration limit or some error-tolerance that you
aim for. strategies are completely optional and have nothing to do with
signalling end of iterations...in fact, the XOR example works better
without any strategies whatsoever!
But I can't see in BackPropogation
<https://github.com/encog/encog-java-core/blob/master/src/main/java/org/encog/neural/networks/training/propagation/back/Backpropagation.java>
or it's superclass
<https://github.com/encog/encog-java-core/blob/master/src/main/java/org/encog/neural/networks/training/propagation/Propagation.java>,
where that tick data is actually processed (init and iteration methods
seem to just setup a background process). So I'm left wondering how I
can give the core encog neural-net a list of tick data that has a
second or sub-second granularity?
I think you're looking at the wrong place...the BackPropagation class
simply defines the algorithm - I don't think you will find anything
related with tick-data there...my bet would be the temporalDataset class
which is actually quite massive and scary! again though, this is a
perfectly valid question for the official encog forum...You can expect
Jeff or Seemagh to respond within the week. I do remember some other guy
very much interested in financial predictions but he was doing
everything in C#...
Hope that helps,
Jim
On 05/08/12 19:27, Timothy Washington wrote:
Hey all,
This post is a fork of a thread in the post "community interest in
machine learning
<https://groups.google.com/forum/?fromgroups#%21topic/clojure/heBrnBuUGqs>".
Some of us were starting to take a deep dive into clojure-encog
<https://github.com/jimpil/clojure-encog> and I thought it would be a
good idea to have a new thread for that.
So I took a look at the way encog-java
<https://github.com/encog/encog-java-core> (what clojure-encog
<https://github.com/jimpil/clojure-encog> wraps) loads tick data into
it's system. There is a YahooFinanceLoader
<https://github.com/encog/encog-java-core/blob/master/src/main/java/org/encog/ml/data/market/loader/YahooFinanceLoader.java>
that pulls csv data from a URL. But it assumes that prices only have a
daily granularity. Now, the encog-java system seems to have
the concept of granularity going down to the second (see here
<https://github.com/encog/encog-java-core/blob/master/src/main/java/org/encog/util/time/TimeUnit.java>). But
all of it's market loaders and list of ticks, seem to stop at a time
granularity of daily. See the LoadedMarketData source
<https://github.com/encog/encog-java-core/blob/master/src/main/java/org/encog/ml/data/market/loader/LoadedMarketData.java>,
which uses a daily-biased MarketDataType
<https://github.com/encog/encog-java-core/blob/master/src/main/java/org/encog/ml/data/market/MarketDataType.java>. Obviously,
that's not enough if we want to calculate on a second or sub-second
interval. Ultimately the YahooFinanceLoader will give us a list of
LoadedMarketData, which assumes daily price ticks.
What I need to know is can I give the encog neural net a list of tick
data that has second or sub-second intervals? Back over the
clojure-encog, the thing that normalizes input data, the make-data
<https://github.com/jimpil/clojure-encog/blob/master/src/clojure_encog/training.clj#L41>
function only deals with doubles (not a list of tick data
entries). The make-trainer and train
<https://github.com/jimpil/clojure-encog/blob/master/src/clojure_encog/training.clj#L137>
functions seem to iterate for the number of strategies that you've
specified. But I can't see in BackPropogation
<https://github.com/encog/encog-java-core/blob/master/src/main/java/org/encog/neural/networks/training/propagation/back/Backpropagation.java>
or it's superclass
<https://github.com/encog/encog-java-core/blob/master/src/main/java/org/encog/neural/networks/training/propagation/Propagation.java>,
where that tick data is actually processed (init and iteration methods
seem to just setup a background process). So I'm left wondering how I
can give the core encog neural-net a list of tick data that has a
second or sub-second granularity?
Hmmm
Tim Washington
Interruptsoftware.ca <http://Interruptsoftware.ca>
416.843.9060 <tel:416.843.9060>
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient
with your first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en