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); }
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); }