public override ILearnAlgorithmConf getConf(int CountFeatures) { ILearnAlgorithmConf result = new UnionTermsConf(); result.Init(CountFeatures); return(result); }
public override PCFuzzySystem TuneUpFuzzySystem(PCFuzzySystem Classifier, ILearnAlgorithmConf conf) { PCFuzzySystem result = Classifier; double minValue = 1; int minFeature = 0; int minATerm = 0; int minBTerm = 0; int indexDatabase = 0; UnionTermsConf Config = conf as UnionTermsConf; allowbyBorder = Config.UTCPercentCrossBorder / 100; allowbySqare = Config.UTCPercentCrossSquare / 100; for (int i = 0; i < result.CountFeatures; i++) { List <Term> soureceByFeature = result.RulesDatabaseSet[indexDatabase].TermsSet.Where(x => x.NumVar == i).ToList(); for (int j = 0; j < soureceByFeature.Count(); j++) { for (int k = j + 1; k < soureceByFeature.Count(); k++) { double temp = TermOnterpreting.getG3(soureceByFeature[j], soureceByFeature[k], soureceByFeature.Count(), result.LearnSamplesSet.InputAttributes[i].Scatter, allowbySqare, allowbyBorder); if (temp < minValue) { minValue = temp; minATerm = j; minBTerm = k; minFeature = i; } } } } result = UniTerm(result, minFeature, minATerm, minBTerm, indexDatabase); result.RulesDatabaseSet[0].TermsSet.Trim(); return(result); }