Sunday, April 30, 2006

Neural Networks and Stocks

One of the projects I was working on during my (now-finished) Spring 2006 term at school was an independent research course focusing on using neural networks to make predictions about stock price fluctuations. I finished the paper, and have put it up on the I2R Articles page. Here is the abstract:

This research paper is the result of a three-month-long independent study focusing on the ability of feedforward and recurrent neural networks in predicting stock price fluctuations of companies within the "Consumer Discretionary" category of the Global Industry Classification Standard (GICS). The paper focuses on predictions for Circuit City Stores Inc. (CC) for 1-, 5-, and 20-business day periods through the use of input patterns based on fundamental and technical indicators from the stock market and economy. The project is unique in its focus on companies selling to consumers. The results of the project are promising, with statistically significant results appearing for 1-day single-layer feedforward and Elman networks, as well as networks based on fundamental inputs and predicting for 20-day periods.

The paper goes through a great deal of basics, but also has some interesting results. Feel free to check it out, and let me know what you think by e-mailing me.

Tuesday, April 18, 2006

RSA Challenge Numbers and Charity

Quick, factor the following number:

818940976446310466116994155375838490488210798487
300767940190433202040129777850184574334955216072
2830930320497060497494268271232459324324521

Stuck? Here's the answer:

2967592699 *

16041159971726177 *

9683406594781834082081 *

177657837071642497045150632157574121246158056326
39625635138779461455285566441946499425178667

Thanks to IBM and a mathematical tool called a "Quadratic Sieve", the above took my computer a few seconds. While the number was relatively easy because it had four factors, RSA Challenge Numbers are much tougher. So tough, in fact, that RSA is paying money to those able to factor some of these numbers.

I won't get into the math behind them, but the IBM software linked above is built for a grid computing environment, making it easy to split the task. So here's my idea: why not have people donate their computing time to solve these numbers and give the money to charity? People are not always interested in giving money, and through this method, people just donate their computing time. Programs like this exist, but none that I know of that directly result in a donation (all others lead to research).

Just a thought - might be worth looking into this summer.

Tuesday, April 04, 2006

Neural Grids?

Now that my classes are ending, I'm getting more time to think about my own projects, and I have another idea. This may already have been implemented, especially by another name. I'll call it a "Neural Grid", though maybe this is what a standard grid computing architecture does...

And the idea? In my work with neural networks I noticed that depending on the initial weight settings, some networks only require a small amount of training cycles to work well. I haven't had the time to analyze how close multiple attempts would be around the correct pattern, but it's possible they could be close. It would be interesting to have multiple computers testing networks at the same time and then combining their results as a committee to decide what their final answer is.

While thinking about this, another thought popped into my head: what about treating each computer as an individual neural network, in charge of detecting certain features or potentially working together to find patterns. The various computers could be interconnected and, like neurons in a neural network, treat each others' responses with various weights.

This could be akin to building a global "brain" that trains itself to detect special types of patterns. Where could that lead? Hmm... If I make it in Java I can set it up on multiple here in my university's labs, without anyone knowing.

Consumer and Investor Sentiment

A great deal of research goes into analyzing consumer and investor sentiment for economic and financial forecasting. The best free resource with regards to such sentiment - in my opinion - is the University of Michigan's Survey of Consumers, a monthly survey that outlines how consumers feel about products, the economy, their finances, and other details. Really interesting to follow this around, though non-paying subscribers have to wait a few months for results.

I stumbled upon this while working on my neural networks project, and have been incorporating it into my research. As I've been doing this, however, an idea popped into my head. Google News scans articles for various details and groups them -- why not do the same with articles targeting the economy or specific companies, and trying to group them based on the number of positive (or negative words) they use? This could potentially lead to a daily sentiment index for stocks, and may prove to be a very reliable indicator of how a stock will do in the future.

If I get time in the summer, I'll play around with these ideas. I'm fully comfortable with neural networks now, so expect their use in more of the projects on I2R and other things I'm involved in. The report on the neural networks project should be put online in about a week or two.