public override IGeneratorConf getConf(int CountFeatures)
        {
            IGeneratorConf result = new InitEveryoneWithOptimal();

            result.Init(CountFeatures);
            return(result);
        }
        public override SAFuzzySystem Generate(SAFuzzySystem Approximate, IGeneratorConf config)
        {
            SAFuzzySystem result = Approximate;

            Systems_ready_to_test = new List <KnowlegeBaseSARules>();
            errors_of_systems     = new List <double>();

            InitEveryoneWithOptimal config1 = config as InitEveryoneWithOptimal;

            type_func        = config1.IEWOTypeFunc;
            count_slice_vars = config1.count_terms;


            List <int> Varians_of_run_system = new List <int>();

            for (int i = 0; i < Approximate.CountFeatures; i++)
            {
                int count_terms_for_var = count_slice_vars[i];
                Varians_of_run_system.Add(count_terms_for_var);
            }

            Varians_of_run_system.Sort();
            Generate_all_variant_in_pool(Varians_of_run_system);

            for (int i = 0; i < Pull_of_systems.Count; i++)
            {
                Approximate.RulesDatabaseSet.Clear();

                GeneratorRulesEveryoneWithEveryone.InitRulesEveryoneWithEveryone(Approximate, type_func, Pull_of_systems[i].ToArray());
                Systems_ready_to_test.Add(Approximate.RulesDatabaseSet[0]);
                errors_of_systems.Add(result.approxLearnSamples(result.RulesDatabaseSet[0]));
            }

            int best_index = errors_of_systems.IndexOf(errors_of_systems.Min());

            result.RulesDatabaseSet.Clear();
            result.RulesDatabaseSet.Add(Systems_ready_to_test[best_index]);
            for (int i = 0; i < count_slice_vars.Count(); i++)
            {
                count_slice_vars[i] = result.RulesDatabaseSet[0].TermsSet.Count(x => x.NumVar == i);
            }
            Console.WriteLine(Pull_of_systems.Count());
            result.RulesDatabaseSet[0].TermsSet.Trim();
            GC.Collect();

            return(result);
        }
Exemple #3
0
 public override int Run(string[] args)
 {
     Console.WriteLine("Start");
     fill_params(args);
     Console.WriteLine("Params get \nfile tra {0} \nfile name tst {1} ", file_learn, file_test);
     Class_learn_set = new SampleSet(file_learn);
     Console.WriteLine("Tra create");
     Class_test_set = new SampleSet(file_test);
     Console.WriteLine("Tst create");
     conf = new InitEveryoneWithOptimal();
     conf.Init(Class_learn_set.CountVars);
     conf.loadParams(confParams);
     Console.WriteLine("Conf Filed");
     Class_Pittsburg = new PCFuzzySystem(Class_learn_set, Class_test_set);
     Console.WriteLine("Classifier created");
     generator       = new GeneratorRulesEveryoneWithOptimal();
     Class_Pittsburg = generator.Generate(Class_Pittsburg, conf) as PCFuzzySystem;
     Console.WriteLine("Gereration complite");
     PCFSUFSWriter.saveToUFS(Class_Pittsburg, file_out);
     Console.WriteLine("Saved");
     return(1);
 }