# GFS.Thrift: GFS.Thrift model building

### Description

This is the internal function that implements the Thrift's technique based on a genetic algorithm. It is used to tackle regression tasks. Users do not need to call it directly, but just use frbs.learn and predict.

### Usage

 1 2 3 4 GFS.Thrift(data.train, popu.size = 10, num.labels, persen_cross = 0.6, persen_mutant = 0.3, max.gen = 10, range.data.ori, type.defuz = "WAM", type.tnorm = "MIN", type.snorm = "MAX", type.mf = "TRIANGLE", type.implication.func = "ZADEH") 

### Arguments

 data.train a matrix (m \times n) of normalized data for the training process, 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. popu.size the size of the population which is generated in each generation. num.labels a matrix describing the number of linguistic terms. persen_cross a real number between 0 and 1 representing the probability of crossover. persen_mutant a real number between 0 and 1 representing the probability of mutation. max.gen the maximal number of generations for the genetic algorithm. range.data.ori a matrix containing the ranges of the original data. type.defuz the type of the defuzzification method. For more detail, see defuzzifier. The default value is WAM. 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.mf the type of shape of membership function. See fuzzifier. type.implication.func the type of implication function. See WM.

### Details

This method was developed by Thrift using Mamdani's model as fuzzy IF-THEN rules. In this method, we consider a table as a genotype with alleles that are fuzzy set indicators over the output domain. The phenotype is produced by the behavior produced by the fuzzification, max-* composition, and defuzzification operations. A chromosome (genotype) is formed from the decision table by going rowwise and producing a string of numbers from the code set. Standard crossover and mutation operators can act on these string.

### References

P. Thrift, "Fuzzy logic synthesis with genetic algorithms", In Proceedings of the Fourth International Conference on Genetic Algorithms (ICGA91), San Diego (United States of America), pp. 509 - 513 (1991).

GFS.Thrift.test, frbs.learn, and predict