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

Reply via email to