Input: instance set , regression value set , the number of fuzzy granular regression tree |
Output: boosted fuzzy granular regression trees |
(1) | Get a fuzzy granular vector rule base by parallel fuzzy granulation of the dataset (see Algorithm 2, Algorithm 4, and Algorithm 5.) |
(2) | Create tasks, namely, |
(3) | Execute the following operations for each independent task (): |
MapFunction(key, value), where key = offset of instance and indicates that fuzzy granular vectors are randomly |
//selected from . |
//Randomly select attributes from the attribute set (constitutes attribute subset , that is, ) |
//Form a fuzzy granular rule set , build a fuzzy granular regression tree , and get its RMSE |
, where . |
(4) | FOR to instances-total-number |
(5) | SubsetID = i mod J |
(6) | context.write(SubsetID, FuzzyGranularVector) |
(7) | END FOR |
END MapFunction |
(8) | ReduceFunction(key, value)//Here, key = SubsetID, value = FuzzyGranualrVector |
(9) | Job.addCache(FuzzyGranularVector[SubsetID]) |
(10) | = train(SubsetID, FuzzyGranularVector)//(See Step 6–Step 9 of Algorithm 2.) |
(11) | context.write(1,()) |
END ReduceFunction |
(12) | //Calculate BFGRT composed of the linear combination of fuzzy granular regression trees. |
Where . |