# FIR.DM model building

### Description

This is the internal function that implements the fuzzy inference rules by descent method (FIR.DM). It is used to solve regression tasks. Users do not need to call it directly, but just use frbs.learn and predict.

### Usage

 1 2 FIR.DM(data.train, num.labels, max.iter, step.size, type.tnorm = "MIN", type.snorm = "MAX", type.implication.func = "ZADEH")

### Arguments

 data.train a matrix (m \times n) of normalized data for training, where m is the number of instances and n is the number of variables. The last column is the output variable. Note the data must be normalized between 0 and 1. num.labels a matrix (1 \times n) whose elements represent the number of labels (fuzzy terms), where n is the number of variables. max.iter the maximal number of iterations. step.size the step size of the descent method, between 0 and 1. type.tnorm the type of t-norm. For more detail, please have a look at inference. type.snorm the type of s-norm. For more detail, please have a look at inference. type.implication.func a value representing type of implication function. For more detail, please have a look at WM

### Details

This method was proposed by H. Nomura, I. Hayashi, and N. Wakami. FIR.DM uses simplified fuzzy reasoning where the consequent part is a real number (a particular case within the Takagi Sugeno Kang model), while the membership function on the antecedent part is expressed by an isosceles triangle. So, in the learning phase, FIR.DM updates three parameters which are center and width of the triangular and a real number on the consequent part using a descent method.

### References

H. Nomura, I. Hayashi and N. Wakami, "A learning method of fuzzy inference rules by descent method", IEEE International Conference on Fuzzy Systems, pp. 203 - 210 (1992).