Using Neural Network and Fuzzy Logic in Forecasting

download Using Neural Network and Fuzzy Logic in Forecasting

of 37

Transcript of Using Neural Network and Fuzzy Logic in Forecasting

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    1/37

    Case project report 2013

    Title: Artificial Neural Network and Fuzzy Logic inforecasting short-term Temperature

    Candidates: Chao Xi (120295)Erihe (120293)

    Telemark University CollegeFaculty of Technology TFver.0.8

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    2/37

    2

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    3/37

    3

    Contents

    Preface .......................................................................................................................................................... 5

    1 Introduction ............................................................................................................................................... 6

    1.1Background .......................................................................................................................................... 6

    1.2 weather station ................................................................................................................................... 6

    1.3 Problem definition and Task overview ............................................................................................... 7

    2 Artificial Neural Networks .......................................................................................................................... 7

    2.1 Theory part: Artificial Neural Networks algorithm and model ........................................................... 7

    2.1.1 BP neural networks ...................................................................................................................... 7

    2.1.2 Building a temperature predicting neural network ..................................................................... 9

    2.2 Practice part ...................................................................................................................................... 10

    2.2.1 Data preprocessing .................................................................................................................... 10

    2.2.2 Training the Neural Network ..................................................................................................... 10

    3 Fuzzy logic ................................................................................................................................................ 21

    3.1 Introduction ...................................................................................................................................... 21

    3.2Fuzzy logic design ............................................................................................................................... 21

    4 Conclusion ................................................................................................................................................ 33

    Reference .................................................................................................................................................... 34

    Appendix A .................................................................................................................................................. 35

    Appendix B .................................................................................................................................................. 36

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    4/37

    4

    List of figures

    Figure 1: structure of weather station. ......................................................................................................... 6

    Figure 2: system model with four inputs (Wind flow, Relative Humidity, and Temperature) and oneoutput (temperature). ................................................................................................................................ 11

    Figure 3: A two-layer neural network. ........................................................................................................ 12

    Figure 4: A simulation result of changing error as different hidden neurons chosen for training network

    (1-(10 5), 4-(10 10), 3-(10 20), 4-(20 20)). ................................................................................................... 13

    Figure 5: Training performance as different hidden neurons chose for training network (1-(10 5), 4-(10

    10), 3-(10 20), 4-(20 20)). ............................................................................................................................ 14

    Figure 6: A simulation result of curve fitting as different hidden neurons chose for training network (1-

    (10 5), 4-(10 10), 3-(10 20), 4-(20 20)). ....................................................................................................... 15

    Figure 7: A simulation result of curve fitting as different days or hidden neurons chose for training

    network. ...................................................................................................................................................... 17Figure 8: the regression plots in different options. .................................................................................... 18

    Figure 9: changing curve of error in different options ................................................................................ 19

    Figure 10: Training performance in different options ................................................................................ 20

    Figure 11: Example of historical data from www.yr.no. ............................................................................. 22

    Figure 12: Structure of Fuzzy system. ......................................................................................................... 24

    Figure 13: Membership function of input variable Min.......................................................................... 25

    Figure 14: Membership function of input variable Average. .................................................................. 25

    Figure 15: Membership function of input variable Max.......................................................................... 26

    Figure 16: Membership function of output variable Temperature......................................................... 26

    Figure 17: Surface viewer............................................................................................................................ 29

    Figure 18: Rule viewer. ............................................................................................................................... 30

    Figure 19: temperature in 17th January and 18th January from www.yr.no. ............................................ 31

    Figure 20: result of prediction. ................................................................................................................... 31

    Figure 21: temperature in 20th January and 21th January from www.yr.no. ............................................ 32

    Figure 22: result of prediction. ................................................................................................................... 32

    http://e/weather%20forecasting/Artificial%20Neural%20Networks%20in%20Forecasting%20short-term%20Temperature.docx%23_Toc355092542http://e/weather%20forecasting/Artificial%20Neural%20Networks%20in%20Forecasting%20short-term%20Temperature.docx%23_Toc355092542
  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    5/37

    5

    Preface

    This objective is to use neural network topologies to predict hour-by-hour

    temperature in one or several days based on the historical weather data.

    This paper presents research on weather forecast through the historical database

    which implemented in the local weather station at Telemark University College.

    Due to non-linearity in climatic physics, neural networks are suitable to predict

    these meteorological processes. Back Propagation algorithm using gradient descent

    method is the most important algorithm to train a neural network for weather

    forecasting. The neural network training was done using MATLAB, and BP

    method was also programmed by MATLAB. Also in chapter 3 will use fuzzy logic

    for temperature forecasting.

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    6/37

    6

    1 Introduction

    1.1Background

    Weather is a continuous, data-intensive, dynamic and chaotic process. Theparameters required to predict weather are enormously complex such that there is

    uncertainty in prediction even for a short period. The property of artificial neural

    networks that they not only analyze the data but also learn from it for future

    predictions makes them suitable for weather forecasting.

    Inspired by the brain, neural networks are an interconnected network of processing

    elements called neurons. One of the most popular training algorithms in the

    domain of neural networks used so far, for weather forecasting is the back

    propagation algorithm. It is a gradient descent method. The algorithm suffers frommany problems.

    1.2 weather station

    Telemark University College

    (TUC) has established aWeather System for

    presenting the weather at

    Telemark University College.

    The system is showing the

    weather data from the weatherstation located at TUC. The

    system shall be used to

    create weather models and forecasting. The weather system has a SDK/API that

    makes it possible to retrieve data in different manners, including Web Services.APIs have also been created for the following languages: C#, LabVIEW,

    MATLAB and Python. An OPC API is also available in these 4 languages. TheseAPIs make it possible to retrieve data from the system and create your ownweather models used in forecasting and weather prediction.

    Figure 1: structure of weather station.

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    7/37

    7

    1.3 Problem definition and Task overview

    All the work is leading to one goal-predicting the temperature for the coming days.

    We have historical data of one month, and we are going to make a forecasting for

    one day behind the month.

    The remainder of the article is organized as follows. Chapter 2 and chapter 3introduce the back propagation algorithm and fuzzy logic theory respectively. The

    details of the integrated BP/Fuzzy Logic technique for weather forecasting model

    are shown in chapter 4, followed by results in chapter. Finally, conclusions aresummarized in chapter 6.

    2 Artificial Neural Networks

    2.1 Theory part: Artificial Neural Networks algorithm and model

    In this part we will firstly give a brief introduction to neural networks algorithm,

    and then go into the specific task of how neural networks can be trained to perform

    a predicting role.

    2.1.1 BP neural networks

    The Back propagation Algorithm was proposed by Rumelhart, McClelland in1985[1]. It has been one of the most studied and used algorithms for neural

    networks learning ever since. The Back propagation method uses output error in

    the output layer to estimate the error in the direct leading layer, and use the leading

    layers error to estimate the previous layer and further to input layer. In the

    learning process, each neuron changes its joint weights according to specific rules

    and finally makes output closer to the expected output.

    Standard BP algorithm:

    In the standard BP algorithm, k is the number of iterations, correction of weight

    value and the threshold value according to the following formula for each layer.

    )()()1( kgkxkx (1)

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    8/37

    8

    Where: x (k) is the connection weights vector or threshold vector for the kth

    iteration between the various levels.

    )(

    )()(

    kx

    kEkg

    is the gradient vector of the neural network output error for each

    weight value or threshold values of the kthiteration. A negative sign indicates the

    opposite direction of the gradient descent direction, i.e. the speed gradient.

    is the learning rate, a constant in the training process. In MATLAB neural

    network toolbox, the default value is 0.01, can be set by changing the training

    parameters.

    Ekis the total error of the network output performance function of the kthiteration.

    in MATLAB neural network toolbox, the default value of the BP network error

    performance function is MSE (mean square error), a two-layers BP network, for

    example, given only one input sample,

    2

    1

    222

    2

    2 )]([1

    )]([)(s

    i

    ii kat

    skeEkE (2)

    })]()))()((()([{

    })]()()([{)(

    2 1

    2

    1

    2

    1

    1112

    ,

    2

    1

    212

    ,

    22

    s

    ji

    s

    jiiiji

    s

    j

    iijii

    kbkibpkifkf

    kbkakfka

    (3)

    The specified procedure as below

    Step 0 Arbitrary initializing values are given to the weights and biases in the

    network.

    Set each weights value between-11select error function; give desirederror and the maximum learning rate.

    Step 1 randomly select the k input samples and the corresponding desired output

    Step 2 calculate each of the hidden layer neurons in the input and output

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    9/37

    9

    Step 3 use desired output and the actual output, and calculate the partial derivative

    of the error function for each neuron of the output layer.

    Step 4 use the hidden layer to the output layer connection weights, the output layer

    and the hidden layer output error function of the partial derivatives of the hiddenlayer neurons

    ,2

    1

    1

    N

    k

    kE

    NE : Accuracy (4)

    Step 5 use the output layer neurons and the output of the hidden layer neurons to

    fix the connection weights.

    Step 6 the neurons in the hidden layer and the input layer neurons in the input

    correction connection weights. Until:

    0

    ij

    ijijw

    Eww (5)

    Step 7 calculate the global error

    Steps 8 see if the network error meets the requirements or not. When the error

    reaches the preset accuracy or learning the maximum number of times greater than

    the set, the algorithm ends. Otherwise, select the next learning sample and the

    corresponding desired output, return to the third step, learning to the next round.

    2.1.2 Building a temperature predicting neural network

    The MATLAB code for implementing this BP method can be seen as Appendix A.

    A neural Network consists of 3 inputs, two hidden layers with a varying hidden

    neurons and 1 output neuron.

    Tangent sigmoid function, tansig, will be used in the hidden layers and the output

    layer. Traingdx is a network training function that updates weight and bias values

    according to gradient descent momentum and an adaptive learning rate.

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    10/37

    10

    2.2 Practice part

    2.2.1 Data preprocessing

    (1)Weather parameters and raw data

    The daily weather parameters collected from TUC weather station are shown

    in Table I along with their units of measurement. The parameters chosen for

    prediction in this setup are mean air temperature (C), relative humidity (%)

    and wind speed (Km/h) by hour. There is no particular reason behind this

    choice of weather parameters. The choice is made just to predict the

    temperature variable in one or two days. Seven days data (month of January,

    2013) have been used in this research. Different daysdata will be used for

    training and different daysdata will be used for testing purposes.

    TABLE I

    No. MeteorologicalVariables

    Unit

    1 Temperature C

    2 Relative Humidity %

    3 Wind Speed Km/h

    (2)Normalization of Data

    After the collection of data and selection of the weather parameters, nextissue is normalization of data. Neural networks generally provide improved

    performance with normalized data. The use of original data to train the

    neural network may cause convergence problem. All the weather data sets

    were, therefore, transformed into values between 0 and 1 through dividing

    the difference of actual and minimum values by the difference of maximum

    and minimum values.

    2.2.2 Training the Neural Network

    (1) Defining the inputs and outputs

    Two layer neural network will be considered for this case. Further neural network

    has three inputs and a output as shown in figure 1.1 , where hyperbolic tangent

    sigmoid function( tansig) are used correspond to the two hidden layers.

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    11/37

    1

    Figure 2: system model with four inputs (Wind flow, Relative Humidity, and Temperature) and one output (temperature).

    One external variable to be used as input so that one input to network further 5

    neurons are used for hidden layer. There must be one neuron in the output layer

    because there is only one target value associated with each input. Proper

    parameters (weight and biases) are selected by training the network and in this caseback-propagation technique was used. Using the MATLAB code in Appendix-1,

    neural network was trained and results are shown below. To train the network

    following steps were used.

    Create the network.

    Configure the network.

    Initialize the weights and biases.

    Train the network.

    (2) Choosing the architecture of the neural network

    Here we are going to only discuss number of hidden layers and number of nodes of

    hidden layers. This is because these two characteristics determine the size of neural

    network. And the size highly correlated to the performance of the network. Bigger

    the size, more are the free parameters. And finally this comes to a problem of

    overfit. For the learning rate we choose 0.01 in this case, as here we want to make

    sure a stable training system.

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    12/37

    1

    Figure 3: A two-layer neural network.

    How many hidden layersand how many nodes in the hidden layers [2]?

    As based on improving convergence: When begin the model building, error on the

    side of more nodes in the hidden layer. Generally, the number of hidden neuronsprimarily depends on the number of training samples (more training samples

    implies that more neurons can be used) and the complexity of the output function

    (more complex output functions often require more neurons)[3]. The best way is

    still to test the different topologies and find the one minimizing the error.

    It is very difficult to choose the number of neurons in a hidden layer, and to choose

    the number of hidden layers in your neural network. Usually, for most applications,

    one hidden layer is enough. Also, the number of neurons in that hidden layer

    should be between the number of inputs and the number of outputs. But the bestway to choose the number of neurons and hidden layers is experimentation. Train

    several neural networks with different numbers of hidden layers and hidden

    neurons, and measure the performance of those networks using cross-validation.

    You can stick with the number that yields the best performing network.

    We are going to explore the appropriate number of neurons in hidden layer in this

    experiment. Based on 7 days (24*7 samples each variable as one mean value in

    one hour) weather samples and to predict 1 day (hour by hour) behind. We choose

    the data as the estimation will be more precise if we narrow the time period.

    110neurons in first layer and 5 neurons in the second

    210neurons in first layer and 10 neurons in the second

    310neurons in first layer and 20 neurons in the second

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    13/37

    13

    4 20 neurons in first layer and 20 neurons in the second

    Figure shows the change of error for the four options. the most

    concurrencies of predicted error is about 0.5in 1, and 0.5, 0.3,

    0.2We can find as the number of neurons increase, the error is decreased.4 is relatively better than others, no error bigger than 1and small

    concurrencies of the bigger error.

    Figure 4: A simulation result of changing error as different hidden neurons chosen for training network (1-(10 5), 4-(10 10), 3-

    (10 20), 4-(20 20)).

    1 2

    3 4

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    14/37

    14

    Figure shows the training performance of the four options. its easy to find

    the best MSE stays at 0.001 for all of them. 1 shows a little better

    convergence and 2 reaches its best performance at epoch 78. While at least2000 epochs are needed to achieve the same performance for 3 and 4.

    Apparently, more neurons used, longer time and of higher complexity the

    training network can be. Yet its really shortage of information here.

    Figure 5: Training performance as different hidden neurons chose for training network (1-(10 5), 4-(10 10), 3-(10 20), 4-(20

    20)).

    1 2

    3 4

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    15/37

    15

    Figure 6 shows more neurons chose, better curve fitting.

    Figure 6: A simulation result of curve fitting as different hidden neurons chose for training network (1-(10 5), 4-(10 10), 3-(10

    20), 4-(20 20)).

    1

    43

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    16/37

    16

    By analyzing these figures, we can come to some conclusions like below.

    * More neurons, less predicted error.

    * More neurons used, longer time and of higher complexity the training

    network can be.

    *MSE shows a low correlation with number of hidden neurons. To somedegree, to step over a specified order of magnitude.

    * More neurons, higher predictive ability.

    From the experiments, we come to end that given small size of samples, less

    neurons will be preferred to be put into use. Yet that also depends on such as

    which algorithm used, the size of samples, inputs and outputs, etc.

    (3) Training the network

    In the last section, no matter how many neurons we try, the best MSE always stay

    at about 10-2compared to the true order of magnitude 10-5. So in this section, we

    are going to use less or more historical data to find the fittest mode in this

    forecasting.

    1. one day as training data and to predict 24 hours in one day (N1=5, N2=10)

    2. three days as training data and to predict 24 hours in one day(N1=5, N2=10)

    3. thirty days as training data and to predict 24 hours in one day(N1=40,

    N2=20)

    4. thirty days as training data and to predict 24 hours in one day(N1=40,

    N2=20)

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    17/37

    17

    Figure 7: A simulation result of curve fitting as different days or hidden neurons chose for training network.

    Figure 7 shows that 3 is quite better fit than others. Comparing 1, 2, and 3, we can

    find that more samples used, more exact the forecasting. Comparing 3 and 4, we

    can see its not possible to predict two days weather by using only data in one

    month.

    3 41 2

    3 4

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    18/37

    18

    Figure 8: the regression plots in different options.

    Figure 8 shows that regression R Values measure the correlation between outputs

    and targets. All the plots have a high value better than 0.99. The outputs of the

    training network are quite close to the targets. So the network model has a good

    training performance.

    3 4

    1 2

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    19/37

    19

    Figure 9: changing curve of error in different options

    Figure 9 shows the changing curve of error. This error is calculated between the

    measured data and the predicted data when using the test set. Compare 1 , 2,

    and 3, the largest error occurred is about 6 oC(4 times), 2.2oC(2 times), and 1.1

    oC(2 times) respectively; the mean error is about 2oC, 0oC,0oC. So, the output

    error is increased when increasing the number of days. This is as stated due to

    the complexity of the weather system and the fact that the weather conditionson a given day is not independent of the weather conditions the day before.

    Compare 3(one day was tested) and 4(two days were tested), apparently, error

    is quite large in 4. For the test set, when the number of days is increased, the

    error is increased.

    34

    12

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    20/37

    20

    Figure 10: Training performance in different options

    Figure 10 shows when forecasting temperature in one day, the network can

    come to the desired error at epoch 517, a fast convergence speed. And network

    can be convergent with a range of initial weights. By Comparison of these

    images, we can know that a faster speed of network training also accelerates the

    convergence rate of the error. Hence the network here is working well in this

    case.

    By analyzing these figures, we can increase the performance (reduce error) bythese techniques.

    Increase the number of neurons in hidden layer

    Train it again

    Get larger training data set

    3 4

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    21/37

    2

    3 Fuzzy logic

    3.1 Introduction

    1. ObjectiveThe weather affects us all, from the simple act of raising an umbrella to auniversity changing its courses to avoid the snowstorm, especially in Norway.

    Weather has always been elemental to the course of human history.

    In this part, we are mainly concerning about the effect of temperature, which is the

    most important parameter of all. The aim is to predict the temperature tomorrow byusing the data today, which is representative and effective.

    Due to the weather is an environment of uncertainty and imprecision, this isdifferent from classical system, while the fuzzy logic system can aim at modeling

    the imprecise models of reasoning and deal with approximate rather than precise

    model. Therefore, the fuzzy logic is chosen as a suitable method for weatherforecasting. The prediction model is built by Matlab Fuzzy Logic Toolbox.2. Weather Station

    The data used in Fuzzy Logic are from the weather station located in Skienmunicipality, 136m.a.s.I.It is the closest official weather station, 7.3km away from

    Porsgrunn. The station was established in October 1962.The station measurestemperature and wind. There are no normal for precipitation.

    3.2Fuzzy logic design

    1. Design of Fuzzy Systems from Input-Output DataTo design this fuzzy system, we view the rules of temperature changing as a black

    box and measure the inputs and outputs that is we can collect a set of input-output

    data pairs. In this way, the rule can be transformed into a set of input-output pairs;hence, a problem of fundamental importance is to construct fuzzy systems from

    input-output pairs.2. Input-Output

    Inputs and outputs are defined following:

    Input:

    Min-minimum value of the current day Average-average value of the current day

    Max-maximum value of the current dayOutput:

    T:-Temperature measured at 13:00 tomorrow

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    22/37

    2

    Figure 11: Example of historical data from www.yr.no.All the data used in this model come from the website (www.yr.no).The temperature parameters, min, average, max on current day are used to predict

    the temperature next day.

    Table 2: collection of Temperature from 1stJanuary to 15thJanuary

    Date Min Average Max T

    01-01 -1.6 0.4 5.2 0.9

    01-02 -4.5 -2.7 -0.8 -1.8

    01-03 -2.8 1.3 4.5 -0.901-04 -0.8 2.3 5.9 2.3

    01-05 -2.1 -1.1 1.2 0.3

    01-06 -4.5 -3.4 1.2 -2.1

    01-07 -5.4 -1.9 -0.7 -1.3

    01-08 -3.1 -2.4 -0.5 -1.9

    01-09 -4.9 -2.8 -1.9 -2.4

    01-10 -3.0 -0.9 1.0 0.7

    01-11 -6.4 -4.1 0.0 -3.8

    01-12 -10.1 -8.7 -5.6 -6.901-13 -13.4 -11.7 -9.8 -11.3

    01-14 -11.9 -10.5 -9.4 -10.7

    01-15 -9.4 -6.9 -4.9 -5.4

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    23/37

    23

    Table 3: dataset of Fuzzy logic Input-Output pairs

    Sample Input Output

    Min Average Max Temperature

    (1) -1.6 0.4 5.2 -1.8

    (2) -4.5 -2.7 -0.8 -0.9

    (3) -2.8 1.3 4.5 2.3

    (4) -0.8 2.3 5.9 0.3

    (5) -2.1 -1.1 1.2 -2.1(6) -4.5 -3.4 1.2 -1.3

    (7) -5.4 -1.9 -0.7 -1.9

    (8) -3.1 -2.4 -0.5 -2.4

    (9) -4.9 -2.8 -1.9 0.7

    (10) -3.0 -0.9 1.0 -3.8

    (11) -6.4 -4.1 0.0 -6.9

    (12) -10.1 -8.7 -5.6 -11.3

    (13) -13.4 -11.7 -9.8 -10.7

    (14) -11.9 -10.5 -9.4 -5.4

    3. Fuzzy model

    The fuzzy inference technique we used is Mamdani method which was proposedby Mamdani and Assilian. In Mamdanis model the fuzzy implication is modeled

    by Mamdanis minimum operator, the conjunction operator is min, the t-norm fromcompositional rule is min and for the aggregation of the rules the max operator is

    used.

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    24/37

    24

    Figure 12: Structure of Fuzzy system.

    Table 4: Configuration of fuzzy logic

    Configuration

    And method MinOr method Max

    Implication Min

    Aggregation Max

    Defuzzification Centroid

    5. Membership function

    Define range, fuzzy set and membership function:

    Min[-15,0]

    Fuzzy set very cold cold Little cold

    Params [-21 -15 -9] [-13.5 -7.5 -1.5] [-6 0 6]

    Table2-4: Membership function of Min

    Average[-15,5]

    Fuzzy set Less normal normal beyond normal

    Params [-23 -15 -7] [-13 -5 3] [-3 5 13]

    Table2-5: Membership function of Average

    Max[-10,10]

    Fuzzy set Less hot hot Very hot

    Params [-18 -10 -2] [-8 0 8] [2 10 18]Table2-6: Membership function of Max

    Temperature[-12,3]

    Fuzzy set freezing cozy warm

    Params [-18 -12 -6] [-10.5 -4.5 1.5] [-3 3 9]

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    25/37

    25

    Table2-7: Membership function of Min6. Rule

    Rules can be generated by calculating the membership value of input-output pair.

    For example:Sample (1):

    Figure 13: Membership function of input variable Min.

    Figure 14: Membership function of input variable Average.

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    26/37

    26

    Figure 15: Membership function of input variable Max

    Figure 16: Membership function of output variable Temperature.

    Finally, obtain a fuzzy IF-THEN rule as:

    If Min is little cold and Average is beyond normal and Max is very hot then

    Temperature is cozy.

    According to this method, every input-output pair can generate one rule.

    1. If (Min is little_cold) and (Average is beyond_normal) and (Max is

    very_hot) then (Temperature is cozy) 2. If (Min is cold) and (Average is normal) and (Max is hot) then

    (Temperature is cozy) (1)

    3. If (Min is little_cold) and (Average is beyond_normal) and (Max is hot)

    then (Temperature is warm) (1)

    4. If (Min is little_cold) and (Average is beyond_normal) and (Max isvery_hot) then (Temperature is warm) (1)

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    27/37

    27

    5. If (Min is little_cold) and (Average is normal) and (Max is hot) then(Temperature is cozy) (1)

    6. If (Min is cold) and (Average is normal) and (Max is hot) then(Temperature is cozy) (1)

    7. If (Min is cold) and (Average is normal) and (Max is hot) then(Temperature is cozy) (1)

    8. If (Min is cold) and (Average is normal) and (Max is hot) then(Temperature is cozy) (1)

    9. If (Min is cold) and (Average is normal) and (Max is hot) then(Temperature is warm) (1)

    10. If (Min is cold) and (Average is normal) and (Max is hot) then(Temperature is cozy) (1)

    11. If (Min is cold) and (Average is normal) and (Max is hot) then(Temperature is cozy) (1)

    12. If (Min is cold) and (Average is normal) and (Max is less_hot) then(Temperature is freezing) (1)

    13. If (Min is very_cold) and (Average is less_normal) and (Max is less_hot)

    then (Temperature is freezing) (1)

    14. If (Min is very_cold) and (Average is less_normal) and (Max is less_hot)then (Temperature is cozy) (1)

    Rules (2,6,7,8) are repeated.

    2. If (Min is cold) and (Average is normal) and (Max is hot) then

    (Temperature is cozy) (1) 6. If (Min is cold) and (Average is normal) and (Max is hot) then

    (Temperature is cozy) (1)

    7. If (Min is cold) and (Average is normal) and (Max is hot) then

    (Temperature is cozy) (1)

    8. If (Min is cold) and (Average is normal) and (Max is hot) then

    (Temperature is cozy) (1)

    10. If (Min is cold) and (Average is normal) and (Max is hot) then

    (Temperature is cozy) (1)

    11. If (Min is cold) and (Average is normal) and (Max is hot) then(Temperature is cozy) (1)

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    28/37

    28

    Some rules are conflicting.

    1. If (Min is little_cold) and (Average is beyond_normal) and (Max isvery_hot) then (Temperature is cozy)

    4. If (Min is little_cold) and (Average is beyond_normal) and (Max isvery_hot) then (Temperature is warm) (1)

    13. If (Min is very_cold) and (Average is less_normal) and (Max is less_hot)

    then (Temperature is freezing) (1)

    14. If (Min is very_cold) and (Average is less_normal) and (Max is less_hot)then (Temperature is cozy) (1)

    Since there are 14 input-output pairs and with each pair generating onerule,therefore,there are conflicting rules,that is,rules with the same IF parts but

    different THEN parts.To resolve this conflict,we assign a degree to each

    generated rule and keep only one rule from a conflicting group that has the

    maximum degree.In this way not only is the conflict problem resolved,but alsothe number of rules is greatly reduced.

    The degree of a rule is defined as follows:

    ()

    D(1)=little cold(-1.6)beyond normal(0.4)very hot(5.2)cozy(-1.8)=0.18

    D(4)= little cold(-0.8)beyond normal(2.3)very hot(5.9)freezing(0.3)=-0.29

    D(1)>D(4)

    D(13)=very cold(-13.4)less normal(-11.7) less hot(-9.8) freezing(-

    10.7)=0.28

    D(14)= very cold(-11.9)less normal(-10.5) less hot(-9.4) cozy(-5.4)=0.17

    D(13)>D(14)

    Hence we choose the Rule(1) and Rule(13).

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    29/37

    29

    Final fuzzy rule base

    1. If (Min is little_cold) and (Average is beyond_normal) and (Max isvery_hot) then (Temperature is cozy) (1)

    2. If (Min is cold) and (Average is normal) and (Max is hot) then(Temperature is cozy) (1)

    3. If (Min is little_cold) and (Average is beyond_normal) and (Max is hot)

    then (Temperature is warm) (1)

    4. If (Min is little_cold) and (Average is normal) and (Max is hot) then(Temperature is cozy) (1)

    5. If (Min is cold) and (Average is normal) and (Max is less_hot) then(Temperature is freezing) (1)

    6. If (Min is very_cold) and (Average is less_normal) and (Max is less_hot)then (Temperature is freezing) (1)

    Constructing the fuzzy system based on the fuzzy rule base

    To use Matlab Fuzzy logic toolbox to construct the weather forcasting model.

    Surface viewer:

    Figure 17: Surface viewer.

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    30/37

    30

    Rule viewer:

    Figure 18: Rule viewer.

    Validation:

    We use the two group of datas from different days to validate this model.

    Using data in 17thJanuary as testing sample to predict the temperature in 18thJanuary,the prediction of fuzzy logic model is -5.98,which is closed to the

    real value,-7.1. Using data in 20thJanuary as testing sample to predict the temperature in 21th

    January,t the prediction of fuzzy logic model is -4.5,which is also closed to

    real value,-6.2.

    As can be seen,the difference is not too large.The weather forcasting itselfdepends on many other parameters,such as humidity,wind

    speed,etc.Moreover,there are a lot of uncertainy parameter which can influence

    weather and temperatur,the error at measurement is less than 2,so theprediction seems acceptable.

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    31/37

    3

    Figure 19: temperature in 17th January and 18th January from www.yr.no.

    Figure 20: result of prediction.

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    32/37

    3

    Figure 21: temperature in 20th January and 21th January from www.yr.no.

    Figure 22: result of prediction.

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    33/37

    33

    4 Conclusion

    The simulation results show the training algorithm performs well in the process of

    convergence characteristics, and improve the convergence rate, a satisfactory

    approximation.

    However, there are still many hard handle problems

    (1) BP algorithm convergence in accordance with the direction of the mean

    square error gradient descent, there are many local and global minimum

    mean square error gradient, which makes neural network is easy to fall

    into local minimum (local minima);

    (2) BP learning algorithm convergence rate is very slow, and may waste a lot

    of time;(3) The selection of the number of hidden nodes of the network is still a lack

    of unified and complete theoretical guidance;

    (4) Generalization ability of the learning network is poor.

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    34/37

    34

    Reference

    [1] Hkon Viumdal. Developing membership functions for fuzzy-neural

    applications. Tel-Tek, 2013.

    [2]W.Tan, H.J.Marquez, T.Chen. IMC design for unstable processes with

    time delays[J].J.Process control.2003,13,203-213.

    [3]Acess:http://stackoverflow.com/questions/10565868/what-is-the-criteria-for-

    choosing-number-of-hidden-layers-and-nodes-in-hidden-la

    [4]Acess:http://aerostudents.com/files/knowledgeBasedControlSystems/artificialN

    euralNetworks.pdf

    [5] C.E.Garcia,M.Morari. Internal model control[M]. Ind.Eng.Chem.Proc.Des.

    Dev.,1982.

    [6] [2] Jerry M. Mendel. Fuzzy Logic Systems for Engineering: A tutorial.

    Proceedings of The IEEE, Vol. 83. No 3, March 1995.

    [7] Thomas Herpel et al. Multi Sensor Data Fusion in Automotive Applications.

    Proceedings of 3rd International Conference on Sensing Technology (ICST 2008),

    Tainan,Taiwan, Dec. 2008.

    http://stackoverflow.com/questions/10565868/what-is-the-criteria-for-choosing-number-of-hidden-layers-and-nodes-in-hidden-lahttp://stackoverflow.com/questions/10565868/what-is-the-criteria-for-choosing-number-of-hidden-layers-and-nodes-in-hidden-lahttp://stackoverflow.com/questions/10565868/what-is-the-criteria-for-choosing-number-of-hidden-layers-and-nodes-in-hidden-lahttp://stackoverflow.com/questions/10565868/what-is-the-criteria-for-choosing-number-of-hidden-layers-and-nodes-in-hidden-lahttp://aerostudents.com/files/knowledgeBasedControlSystems/artificialNeuralNetworks.pdfhttp://aerostudents.com/files/knowledgeBasedControlSystems/artificialNeuralNetworks.pdfhttp://aerostudents.com/files/knowledgeBasedControlSystems/artificialNeuralNetworks.pdfhttp://aerostudents.com/files/knowledgeBasedControlSystems/artificialNeuralNetworks.pdfhttp://aerostudents.com/files/knowledgeBasedControlSystems/artificialNeuralNetworks.pdfhttp://stackoverflow.com/questions/10565868/what-is-the-criteria-for-choosing-number-of-hidden-layers-and-nodes-in-hidden-lahttp://stackoverflow.com/questions/10565868/what-is-the-criteria-for-choosing-number-of-hidden-layers-and-nodes-in-hidden-la
  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    35/37

    35

    Appendix A

    MATLAB code for the BP neural network method.

    %======input data========

    px=xlsread('E:\learning in telemark\notes exercises\soft ensor\weather forecasting\three days for oneday.xlsx','sheet1');

    p=px';

    %===========target data===tx=xlsread('E:\learning in telemark\notes exercises\soft ensor\weather forecasting\three days for one

    day.xlsx','sheet2');t=tx';%===========test data=======

    ptestx=xlsread('E:\learning in telemark\notes exercises\soft ensor\weather forecasting\three days for one

    day.xlsx','sheet3');ptest=ptestx';ptesty=xlsread('E:\learning in telemark\notes exercises\soft ensor\weather forecasting\three days for oneday.xlsx','sheet4');

    ptesy=ptesty';%===========plot samples=======

    plot(p, t ,'r*');title('training data set');xlabel('ipnut vector p');ylabel('output vector t');%===========training neural networks=======

    [pn,minp,maxp,tn,mint,maxt]=premnmx(p,t); %Normalization of Data(scale

    %inputs and targets so that they fall in the range [-1,1]).NodeNum1 = 10; % number of nodes of the first layer in hidden layerNodeNum2 = 20; % number of nodes of the second layer in hidden layerTypeNum = 1; % output vector dimensions

    TF1 = 'tansig'; %transfer function for the 1st layerTF2 = 'tansig'; %transfer function for the 2st layer

    TF3 = 'tansig'; %transfer function for the 3st layernet=newff(minmax(pn),[NodeNum1,NodeNum2,TypeNum],{TF1 TF2 TF3},'traingdx');%Creat network 'traingdm'

    net.trainParam.show=50;net.trainParam.epochs=5000; %Number of training times

    net.trainParam.goal=1e-5; %accuracy of training

    net.trainParam.lr=0.01; %learning ratenet=train(net,pn,tn);%==use the trained network to simulate the tset data=====

    p2n=tramnmx(ptest,minp,maxp);%Normalization of test data

    an=sim(net,p2n);[a]= postmnmx(an,mint,maxt); %Reverse normalization of Data, also the desired result.%==plot the comparison of measured and forecasting temperature=====figure;

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    36/37

    36

    plot(1:length(ptesty),ptesty,'bo',1:length(ptesty),a,'r*');title('Seven days used for training 1st - 7th of Jan. ');

    xlabel('hours');ylabel('Temperature( ^{o}C) in 8th of Jan');

    legend('measured temperature', 'predicted temperature');grid on;

    %==plot the change of error=====m=length(a); %The length of vector a%t1=[ptesty];

    error=ptesty'-a; %error vectorfigure;hist(error,length(error)-1)

    legend('Foracasting errors temperature')xlabel('Error in (^{o}C)')ylabel('Number of occurances')title('Forecasting change of error')

    grid on%======END========

    Appendix B

    Code of Fuzzy logic system:

    [System]Name='CaseProject'Type='mamdani'

    Version=2.0NumInputs=3

    NumOutputs=1NumRules=6AndMethod='min'OrMethod='max'ImpMethod='min'

    AggMethod='max'DefuzzMethod='centroid'

    [Input1]Name='Min'

    Range=[-15 0]NumMFs=3

    MF1='very_cold':'trimf',[-21 -15 -9]MF2='cold':'trimf',[-13.5 -7.5 -1.5]MF3='little_cold':'trimf',[-6 0 6]

    [Input2]

    Name='Average'Range=[-15 5]

  • 8/13/2019 Using Neural Network and Fuzzy Logic in Forecasting

    37/37

    NumMFs=3MF1='less_normal':'trimf',[-23 -15 -7]

    MF2='normal':'trimf',[-13 -5 3]MF3='beyond_normal':'trimf',[-3 5 13]

    [Input3]

    Name='Max'Range=[-10 10]

    NumMFs=3

    MF1='less_hot':'trimf',[-18 -10 -2]MF2='hot':'trimf',[-8 0 8]MF3='very_hot':'trimf',[2 10 18]

    [Output1]Name='Temperature'Range=[-12 3]

    NumMFs=3MF1='freezing':'trimf',[-18 -12 -6]

    MF2='cozy':'trimf',[-10.5 -4.5 1.5]MF3='warm':'trimf',[-3 3 9]

    [Rules]3 3 3, 2 (1) : 12 2 2, 2 (1) : 1

    3 3 2, 3 (1) : 13 2 2, 2 (1) : 1

    2 2 1, 1 (1) : 11 1 1, 1 (1) : 1