示例#1
0
        public override ILearnAlgorithmConf getConf(int CountFeatures)
        {
            ILearnAlgorithmConf result = new UnionTermsConf();

            result.Init(CountFeatures);
            return(result);
        }
示例#2
0
        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);
        }