Research

Applied use for a Multi-Layered Perceptron in a Linux Environment

from lab book November 2006

Project Summary

Our assignment was to create an application that would take multiple inputs, and for it to be trained and tested. This design is much more complicated than the previous assignment due to the number of variables used to produce the results. Utilizing my previous art, I proposed to build a multi-layered perceptron that has multiple inputs for each perceptron and multiple outputs as a whole.

Application Requirements Documentation

System Overview and Problem Description (same as previous art)

  • Customize Perceptron – The ability to define perceptron parameters
  • Data Sets – The ability to utilize user’s data sets
  • Train Perceptron – The ability to enter training data sets
  • Test Perceptron – The capability to enter test data sets
  • Linux OS – Developed to run on any Linux OS as a daemon
  • Modern Language – Utilize a modern language that supports higher language functions such Object Oriented, Polly-morphism, Generics, Anonymous Methods and Partial Types
  • Modern Architecture – Utilize a modern architecture that supports Just in Time (JIT) compiling, Common Language Runtime (CLR) and Common language Infrastructure (CLI)
  • Modular – Designed and built for ease of adding function and features and re-use of code
  • Easy to use – Application must be simple and practical for conducting experiments and neuron modeling
  • Common Output – use comma-delimited files for output

Anticipated Application Benefits on Linux and C# (same as previous art)

  • Benefits for a Modern Language Perceptron that runs on Linux includes:
  • Light footprint application with high throughput
  • Reduced runtime for experiments
  • Flexible for running multiple data points
  • Intuitive usage i.e. {mono perceptron.cs}
  • Easy to customize by the end user
  • Ability to be used as a multi-user application
  • Unlimited Scalability

Pseudo Code (redefined)

  • user data file location xxx end DataLocation()
  • user defined Perceptron attributes xxx end DefinePerceptron()
  • open training data fileDefineDataSet()
  • place open file data into an array xxx end ShortTermMemory()
  • import short term memory data into the Perceptron algorithm xxx end TrainPerceptron()
  • move training results to long term memory arrray xxx end LongTermMemory()
  • open test data fileDefinePerceptron()
  • use long term memory array to compute new data set xxx end TestPerceptron()
  • export data to a csv file xxx end ExportDataSet()

The Problem (Experiment)

Objective: To train and test a multi-layered perceptron with a training data set and test data set.

Methods: Observations, Mathematical Modeling, and Data Points.

Proof: Will be obtained through statistical probability.

I am using a Multi-Layered Perceptron to judge whether to buy, hold or sell a mutual fund.

Real mutual fund and current market data was acquired from http://usaa.com and placed into TrainData.csv and TestData.csv files. Additional, market data was compiled from http://solutions.standardandpoors.com/SP/editorial/WSHome.do.

My multi-layered Perceptron started with the following inputs*: For the first perceptron: NAV, Change, Yields ( 30 day, 7 day and 1 yr), Return( 5 yr, 10 yr and Inception), and Inception Date and the results were buy or sell. The second perceptron inputs were the results of the first perceptron (buy or sell) plus NAV_perchance_price to determine if a hold was warranted.

*Data inputs are described in more detail in appendix below.

Conclusion

For demonstration purposes, I chose to include the most readily available parameters. The multi-layered perceptron did produce a definition of what was considered a buy, hold, or sell. However, I would not use this definition to make personal financial decisions. While there were adequate training data-points, in my opinion, the number and type of parameters appear insufficient. In the Appendix, I have included suggested recommendations for a future application with the necessary parameters that might give more valid and usable results (fools.com).

Appendix

  • Ticker Symbol – This column lists the name of the mutual fund for example PRDSX. (not used)
  • NAV – Net Asset Value is the price price of the mutual fund
  • Change – The NAV compared to the previous day
  • Yield – dividends paid
  • 30 day as required** by bonds
  • 7 day as required** by money market funds
  • 1 yr as required** by growth fund
  • Return – NAV + dividends
  • 5 yr – time-line
  • 10 yr – time-line
  • Inception – time-line from the funds beginning
  • Inception Date – The creation of the fund

**FDIC requirements

Future considerations for data points

S&P 500 Conditions:

  • 52-Week High – This shows the highest price the S&P 500 has experienced over the previous 52 weeks (one year). This typically does not include the previous day’s price.
  • 52-Week Low – This shows the lowest prices the S&P 500 has experienced over the previous 52 weeks (one year). This typically does not include the previous day’s price.
  • Dollar Change -This states the dollar change in the average price of the S&P 500 from the previous day’s trading.
  • % Change – This states the percentage change in the average price of the S&P 500 from the previous day’s trading.
  • Week High – This is the highest price the S&P 500 traded at during the past week.
  • Week Low – This is the lowest price the S&P 500 traded at during the past week.
  • Close – The average price at which the S&P 500 closed.
  • Week’s Dollar Change – This represents the dollar change in the price of the S&P 500(average) from the previous week.
  • Week’s % Change – This shows the percentage change in the price of the S&P 500(average) from the previous week.

Mutual Market Conditions:

  • 52-Week High – This shows the highest price the mutual fund market has experienced over the previous 52 weeks (one year). This typically does not include the previous day’s price.
  • 52-Week Low – This shows the lowest prices the mutual market fund has experienced over the previous 52 weeks (one year). This typically does not include the previous day’s price.
  • Dollar Change -This states the dollar change in the average price of the mutual fund market from the previous day’s trading.
  • % Change – This states the percentage change in the average price of the mutual fund market from the previous day’s trading.
  • Week High – This is the highest price the market traded at during the past week.
  • Week Low – This is the lowest price the market traded at during the past week.
  • Close – The average price at which the market closed.
  • Week’s Dollar Change – This represents the dollar change in the price of the mutual fund market(average) from the previous week.
  • Week’s % Change – This shows the percentage change in the price of the mutual fund market(average) from the previous week.

Current Fund Conditions:

  • Ticker Symbol – This column lists the name of the mutual fund for example PRDSX.
  • 52-Week High – This shows the highest price the mutual fund has experienced over the previous 52 weeks (one year). This typically does not include the previous day’s price.
  • 52-Week Low – This shows the lowest prices the mutual fund has experienced over the previous 52 weeks (one year). This typically does not include the previous day’s price.
  • Dollar Change -This states the dollar change in the price of the mutual fund from the previous day’s trading.
  • % Change – This states the percentage change in the price of the mutual fund from the previous day’s trading.
  • Week High – This is the highest price the fund traded at during the past week.
  • Week Low – This is the lowest price the fund traded at during the past week.
  • Close – The last price at which the fund was traded.
  • Week’s Dollar Change – This represents the dollar change in the price of the mutual fund from the previous week.
  • Week’s % Change – This shows the percentage change in the price of the mutual fund from the previous week.

Past Fund Performance (two years):

  • Ticker Symbol – This column lists the name of the mutual fund for example PRDSX.
  • 104-Week High – This shows the highest price the mutual fund has experienced over the previous 104 weeks (two years). This typically does not include the previous day’s price.
  • 104-Week Low – This shows the lowest prices the mutual fund has experienced over the previous 104 weeks (two year). This typically does not include the previous day’s price.
  • Dollar Change -This states the dollar change in the price of the mutual fund from the previous year’s trading.
  • % Change – This states the percentage change in the price of the mutual fund from the previous year’s trading.
  • Yearly High – This is the highest price the fund traded at during the past year.
  • Yearly Low – This is the lowest price the fund traded at during the past year.
  • Yearly Dollar Change – This represents the dollar change in the price of the mutual fund from the previous year.
  • Yearly % Change – This shows the percentage change in the price of the mutual fund from the previous year.

Leave a Reply