using radial basis function neural network to predict energy load demand

Good day, my project requires me to use past datas to predict the future energy load demand. I have no knowledge in NN at all. I tried my very best and found the nnstart toolbox and also the newrb function. However i don't understand even after going through the sample examples and reading the definitions on "help".
1. Do i have use both nnstart and newrb function to meet the requirement of my project? or just newrb? because i am required to use the radial basis function.
(Right now i am testing using the nnstart time-series toolbox as it seems more user friendly)
2. If say my input is 2 columns of datas. 1st col, hourly time. 2nd col, load energy in watts. And i want to use lets say 2 weeks of the datas to predict the energy load for the 3rd week, how do i do it?
3. What is the target data? i don't quite understand how this target thing work. Is it something like for example i am using 2 weeks of data, the 1st week will be the input and the 2nd week will be the target? something like this?
4. I tried following the steps of the nnstart gui tutorial using the load examples, but i couldn't find the output which is the predicted data. I didn't even get to specify how many days of prediction i want to generate.
5. After training the datas, where will the training datas go? What what do i have to do with the data?
6. Are there any detailed tutorials that can help a very very novice beginner like me?
I really appreciate all your help!

 Accepted Answer

Time-series networks can be quite a challenge when trying to convert from an openloop (OL) system that uses the delayed known target as an input to a closed loop (CL) system where that known target input is replaced by delayed output signals that are fed back to the input.
The best bet is to concentrate on NARXNET using a command line approach. The TIMEDELAYNET and NARNET are special cases. Although I do not think it is necessary to be familiar with those first, if you feel differently, the by all-means consider those first.
The help and doc commands will explain each function with a sample data set and problem.
The commands
help nndatasets
and
doc nndatasets
will provide additional data with which to practice.
I have posted many tutorial and tutorial-like posts in the NEWSGROUP which go into much more detail. My posts in ANSWERS are restricted to helping others with specific problems but can tend to be tutorial-like. In both cases, searching on
greg narxnet tutorial
should yield a sufficient no. of references. Look at the ones that have "tutorial" in the title first.
When you feel like you know what you are doing, you can replace the standard tanh (tansig) hidden node functions with symmetric Gaussian (radbas) functions.
Hope this helps.
Thank you for formally accepting my answer
Greg

2 Comments

Hi greg! thanks for your reply! Because my project requires me to use rbf network to predict so i guess i have to stick to it. Let me try to understand a little. I have looked up at the narxnet and have a little doubts.
What is Xi, Ai, Xs? For example i used a random stock from the Singapore Stock Exchange, inputs are the opening price, volume, day high, day low.I used 1 year of data. Target is the closing price for that 1 year. My question is, if i type output = net(input) how to determine how many outputs there are. and also the most important thing i want to ask is how to predict say year (1) + 1 day of data or year(1) + 2 days or data? i don't understand how to choose the amount of output i want. please help! Thank you
http://www.mathworks.com/matlabcentral/answers/195640- what-are-the-extra-return-values-of-this-neural-network -training-code
For time-series (e.g., TIMEDELAYNET, NARNET, NARXNET), with cell variables
[ neto tro Yo Eo Xof Aof ] = train( neto, Xo, To, Xoi, Aoi );
% o - openloop subscript
% Xoi - initial input delay state
% Aoi - initial output feedback delay state
% neto - trained openloop net
% tro - training record
% Yo - output Yo = net( Xo, Xoi, Aoi)
% Eo - error Eo = gsubtract( To , Yo)
% Xof - final input delay state
% Aof - final output delay state
% [ Yo Xof Aof ] = net( Xo, Xoi, Aoi)

Sign in to comment.

More Answers (1)

Let me make myself clear.
1. This is a VERY difficult assignment.
2. Stick with the command line approach. You probably won't get
far using the ntstool.
3. Understand how to use default NARXNET before introducing
Gaussian radial basis functions.
4. Start with the introductory explanations and examples
a. help narxnet
b. doc narxnet
c. NEWSREADER: greg narxnet tutorial
5 recent hits, 7 older hits
Probably Unnecessary: greg narxnet
21 recent hits, 50 older hits
d. ANSWERS: Not as tutorial as NEWREADER posts
5. Practice on the MATLAB examples obtained from
help nndatasets
doc nndatasets
6. AGAIN: Begin with just trying to understand the default
NARXNET configuration. The most difficult part is: even if
you have a great openloop (OL) design, closing the loop may
result in disastrous results. THIS IS NOT MENTIONED IN THE
DOCUMENTATION!!!
7. If the default values FD =ID =1:2, H=10 do not work, find
the statistically significant input and feedback delays using
the input/target crosscorrelation function and the target
autocorrelation function. Search
greg narxnet nncorr 1 recent hit, 6 older Hits
greg nncorr
8. Using radial basis functions is the LAST step.
a. DON'T USE NEWRB OR NEWRBE
b Use narxnet with RADBAS functions
Hope this helps.
Greg
P.S. When searching in the NEWSGROUP and ANSWERS, search BOTH with and without "greg".

1 Comment

I suggest using my notation with subscript o for the OL net, c for the CL net, i for initial, f for final ...
When posting, send me an EMAIL ALERT. DO NOT EMAIL ME POSTS!
Greg

Sign in to comment.

Categories

Find more on Sequence and Numeric Feature Data Workflows in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!